lisp CAD坐标批量提取(大神请进)
如何利用lisp程序一次性提取CAD中点的坐标。因为我的图是CAD剖面图自己进行了网格划分,然后提取网格上的点(从左向右竖直方向的网格线进行0,1,2这样编号,便于到excel中数据处理方便)。看到网上有个说是批量lisp输出坐标程序如下,
(defun c:md()
(setvar "cmdecho" 0)
(COMMAND ".UNDO" "BE")
(command "-units" "2" "3" "2" "3" "" "")
(setq fp (open "d:/点编号坐标.xls" "a") s (getvar "cmdecho") n (getint "\n请输入总节点数! "))
(princ "点编号" fp)(princ "\t" fp)
(princ "X坐标值" fp)(princ "\t" fp)
(princ "Y坐标值" fp)(princ "\n" fp)
(repeat n
(setq k (getstring "\n输入点编号(如:K1)!")
p (getpoint "\n选取节点!")
x (strcat "X=" (rtos (nth 0 p)))
y (strcat "Y=" (rtos (nth 1 p))))
(princ k fp)(princ "\t" fp)
(princ x fp)(princ "\t" fp)
(princ y fp)(princ "\n" fp))
(close fp)
(setvar "cmdecho" s))
(princ "\n提示:输入 MD 命令来运行本程序!")
(princ)
不过加载后运行只能是一个个点击导出坐标太麻烦了。从网上看到说是可以利用什么“图元集”的方法,自己也不懂看看老师能不能帮个忙在您空闲时,可以批量提取坐标的lisp小程序。
这是我要提取点坐标的dwg图,图中红色网格是自己划分的。就是提取红色网格每个交点的坐标,并从左向右编号批量提取出来。。。望各位老师、高手帮忙看下,自己也不懂lisp程序因为。因为好多这种剖面图企图坐标,一个个点击太麻烦了。。。非常感谢!!
自己先顶下,免得沉了!!
自己再机械CAD论坛里讨论过都没有提供太好的意见,这里说是高手如云,希望能解决。因为急着用,有哪位高手看到会的话,看看能不能编个小程序,小弟非常感谢!! 看来利用图元类似方法还是有难度的。。 看来还是自己用老办法吧 已解决,这么专业的论坛,还没有百度知道效率 怎么解决的不发上来,菜鸟学习下 怎么解决的,可以发上来给大家共享下啊,共同提高学习。虽然你当时没有得到本论坛的大师们及时解决,但不代表大师们不会,可能是因为他们没空或者当时没看到而已。 这么专业的论坛,自己好幸运 ......................... gzbccy 发表于 2014-7-26 08:14 static/image/common/back.gif
怎么解决的,可以发上来给大家共享下啊,共同提高学习。虽然你当时没有得到本论坛的大师们及时解决,但不代 ...
(defun c:tqzb( )
(setvar "cmdecho" 0)
(COMMAND ".UNDO" "BE")
(command "-units" "2" "3" "2" "3" "" "")
(setq fp (open "e:/三维CAD坐标值.xls" "a") s (getvar "cmdecho") n (getint "\n请输入总点数! "))
(princ "序号" fp)(princ "\t" fp)
(princ "X坐标值" fp)(princ "\t" fp)
(princ "Y坐标值" fp)(princ "\t" fp)
(princ "Z坐标值" fp)(princ "\n" fp)
(setq k 0)
(repeat n
(setq k (1+ K)
p (getpoint "\n选取节点!")
x (strcat (rtos (nth 0 p)))
y (strcat (rtos (nth 1 p)))
z (strcat (rtos (nth 2 p))) )
(princ(strcat "K" (itoa k)) fp) (princ "\t" fp)
(princ x fp)(princ "\t" fp)
(princ y fp)(princ "\t" fp)
(princ z fp)(princ "\n" fp) )
(close fp)
(setvar "cmdecho" s))
(princ "\n提示:输入 tqzb 命令来运行本程序!")
(princ)
页:
[1]
2