明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 6517|回复: 11

lisp CAD坐标批量提取(大神请进)

  [复制链接]
发表于 2014-3-11 15:28:26 | 显示全部楼层 |阅读模式
    如何利用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程序因为。因为好多这种剖面图企图坐标,一个个点击太麻烦了。。。非常感谢!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1明经币 +1 收起 理由
WSvaee + 1 很给力!

查看全部评分

 楼主| 发表于 2014-3-11 15:32:08 | 显示全部楼层
       自己先顶下,免得沉了!!
    自己再机械CAD论坛里讨论过都没有提供太好的意见,这里说是高手如云,希望能解决。因为急着用,有哪位高手看到会的话,看看能不能编个小程序,小弟非常感谢!!
 楼主| 发表于 2014-3-12 14:58:16 | 显示全部楼层
看来利用图元类似方法还是有难度的。。
 楼主| 发表于 2014-3-12 21:57:20 | 显示全部楼层
看来还是自己用老办法吧
 楼主| 发表于 2014-3-21 12:39:05 | 显示全部楼层
已解决,这么专业的论坛,还没有百度知道效率
发表于 2014-4-28 16:03:25 | 显示全部楼层
怎么解决的不发上来,菜鸟学习下
发表于 2014-7-26 08:14:44 | 显示全部楼层
怎么解决的,可以发上来给大家共享下啊,共同提高学习。虽然你当时没有得到本论坛的大师们及时解决,但不代表大师们不会,可能是因为他们没空或者当时没看到而已。
发表于 2014-9-21 16:03:03 | 显示全部楼层
这么专业的论坛,自己好幸运
发表于 2015-2-2 22:21:09 | 显示全部楼层
.........................
 楼主| 发表于 2015-7-10 17:20:40 | 显示全部楼层
gzbccy 发表于 2014-7-26 08:14
怎么解决的,可以发上来给大家共享下啊,共同提高学习。虽然你当时没有得到本论坛的大师们及时解决,但不代 ...

(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)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 05:20 , Processed in 0.199589 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表