有49人阅读过
cad中获取圆心位置 并写入txt
发布于2021/12/16 更新于2021/12/16
[ 教程仅保证更新时有效,请自行测试。]
[ 教程仅保证更新时有效,请自行测试。]
加载方式:
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]