waityou5683 发表于 2014-3-11 15:28:00

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程序因为。因为好多这种剖面图企图坐标,一个个点击太麻烦了。。。非常感谢!!

waityou5683 发表于 2014-3-11 15:32:00

自己先顶下,免得沉了!!
    自己再机械CAD论坛里讨论过都没有提供太好的意见,这里说是高手如云,希望能解决。因为急着用,有哪位高手看到会的话,看看能不能编个小程序,小弟非常感谢!!

waityou5683 发表于 2014-3-12 14:58:00

看来利用图元类似方法还是有难度的。。

waityou5683 发表于 2014-3-12 21:57:00

看来还是自己用老办法吧

waityou5683 发表于 2014-3-21 12:39:00

已解决,这么专业的论坛,还没有百度知道效率

蟋蟀的帅 发表于 2014-4-28 16:03:00

怎么解决的不发上来,菜鸟学习下

gzbccy 发表于 2014-7-26 08:14:00

怎么解决的,可以发上来给大家共享下啊,共同提高学习。虽然你当时没有得到本论坛的大师们及时解决,但不代表大师们不会,可能是因为他们没空或者当时没看到而已。

看天的小树 发表于 2014-9-21 16:03:00

这么专业的论坛,自己好幸运

chbddzx12 发表于 2015-2-2 22:21:00

.........................

waityou5683 发表于 2015-7-10 17:20:00


(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]
查看完整版本: lisp CAD坐标批量提取(大神请进)