570
文章
·
29056
阅读
570
文章
·
29056
阅读

有49人阅读过 cad中获取圆心位置 并写入txt
发布于2021/12/16 更新于2021/12/16
[ 教程仅保证更新时有效,请自行测试。]

circle.rar

加载方式:

cad输入appload,选择lsp文件

使用方式:

输入设定命令SX3

输出文件位置:

d://圆心到TXT.txt


 (defun C:sx3 ( / n ss &kw L ff &k1 %k1 %k2);批量选择圆心坐标到记事本

 (setvar "cmdecho" 0) ;;关闭变量

 (setvar "blipmode" 0);;关闭控制点

 (setvar "dimzin" 0)

 (vl-load-com)        ;;加载vlax扩展函数

 (setq n 0 ss '())    ;;取得一个空表

 (princ "\n请选择文字")

 (setq &kw (ssget '((0 . "CIRCLE"))));选择圆

 (if (/= &kw nil);;如果有选择了圆

  (progn

   (setq L (sslength &kw)

         ff (open "d://圆心到TXT.txt" "w");在D盘建立文本<圆心到TXT>

   );;

   (repeat L

    (setq &k1 (entget (ssname &kw n))

          %k1 (cdr (assoc 10 &k1)) ;;取得圆心坐标

          ss (cons %k1 ss)         ;;加入选择集

          n (+ n 1)

    )

   )

   (setq ss (vl-sort ss (function (lambda (x y)(< (fix (car x)) (fix (car y)))))));;X排序从左到右

   (setq ss (vl-sort ss (function (lambda (x y)(> (fix (cadr x)) (fix (cadr y)))))));;Y排序从上到下

   (setq n 0)

   (repeat L

    (setq &k1 (nth n ss)

          %k1 (rtos (car &k1) 2 3) ;;取得X坐标,小数点后三位

          %k2 (rtos (cadr &k1) 2 3);;取得Y坐标,小数点后三位

          n (+ n 1)

    )

    (princ "X=" ff)  ;;先输入X=(自己决定是否输入,不输入这句话删除,删除"X="即输出时直接输出X坐标)

    (princ %k1 ff)   ;;然后输入X坐标

    (princ " " ff)   ;;一个空格分开

    (princ "Y=" ff)  ;;然后输入Y=(自己决定是否输入,不输入这句话删除,删除“Y="即输出时直接输出Y坐标)

    (princ %k2 ff)   ;;然后输入Y坐标,输出结果为一行一个坐标点,X Y坐标由空格分开

    (princ "\n" ff)  ;;换一行计算

   )

   (close ff);;关闭文本

  )

 )

 (prin1);;结束;;(记事本里面的数据可以导入表格)

)

(prompt "\n《C:SX3》坐标写入记事本")

(prin1)


        (princ)

          ; 清除 nil

)   ;函数定义结束


文章对你有帮助吗?
  • 一般[0]
  • 很赞[0]
  • 没用[0]
  • 垃圾[0]
  • 无语[0]
扫一扫,手机浏览手机访问本站