乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 16|回复: 5

[编程交流] CAD Lisp代码多边形线顶点

[复制链接]

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 15:49:49 | 显示全部楼层 |阅读模式
你好
 
我正在使用Lee Mac cad lisp程序“PolyInfo V 1.3”用于导出多段线顶点坐标。但为了充分发挥工作的乐趣,我需要一些修改。
 
程序的URL:http://www.lee-mac.com/polyinfo.html
代码的URL:http://www.lee-mac.com/lisp/html/PolyInfoV1-3.html
 
正如您所见,该程序导出了有关多段线的大量信息。所以我想修改代码,只导出两列中的多段线起点顶点x和y坐标(我的cad版本信息导出到txt文件)。
 
结果应该如下所示:
________________________________
多段线起点x
649542.45
649542.35
649542.28
 
多段线起点y
 
495232.54
495232.23
495232.41
________________________________
 
有人能帮我弄清楚我必须修改代码的哪一部分才能得到我想要的结果吗?请
回复

使用道具 举报

66

主题

1552

帖子

1514

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
325
发表于 2022-7-5 16:04:56 | 显示全部楼层
你试过他的积分经理吗?
回复

使用道具 举报

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
5
发表于 2022-7-5 16:23:14 | 显示全部楼层
不幸的是,我使用了,但我使用的不是精确的AutoCAD程序。我正在使用ZW CAD。我是cad程序的廉价版本。因此,命令行promt“**对话框文件无法写入**”。有时并非所有的lisp程序都能工作。
 
我刚刚找到了一个导出X-Y坐标的简单代码。
 
URL:http://www.eng-tips.com/viewthread.cfm?qid=195727
 
这几乎是我所需要的。代码结果:(x坐标)、(Y坐标)
(x坐标)、(Y坐标)
 
但是,我可以更改coords打印的代码,而不是在一行中,而是在单独的列中吗?例如:
(x坐标)
(x坐标)
 
(Y坐标)
(Y坐标)
回复

使用道具 举报

106

主题

1万

帖子

101

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1299
发表于 2022-7-5 16:37:17 | 显示全部楼层
您可以回到第一步的基础知识,使用“getcoordinates”函数,然后以您想要的方式导出您想要的内容。看看这个例子。
 
  1. ; pline co-ords example
  2. ; By Alan H
  3. (defun getcoords (ent)
  4. (vlax-safearray->list
  5.    (vlax-variant-value
  6.      (vlax-get-property
  7.    (vlax-ename->vla-object ent)
  8.    "Coordinates"
  9.      )
  10.    )
  11. )
  12. )
  13. (defun co-ords2xy ()
  14. ; convert now to a list of xy as co-ords are x y x y x y if 3d x y z x y z
  15. (setq len (length co-ords))
  16. (setq numb (/ len 2)) ; even and odd check required
  17. (setq I 0)
  18. (repeat numb
  19. (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords) ))
  20. ; odd (setq xy (list (nth i co-ords)(nth (+ I 1) co-ords)(nth (+ I 2) co-ords) ))
  21. (setq co-ordsxy (cons xy co-ordsxy))
  22. (setq I (+ I 2))
  23. )
  24. )
  25. ; program starts here
  26. (setq co-ords (getcoords (car (entsel "\nplease pick pline"))))
  27. (co-ords2xy) ; list of 2d points making pline
  28. (princ co-ordsxy)
回复

使用道具 举报

3

主题

20

帖子

17

银币

初来乍到

Rank: 1

铜币
15
发表于 2022-7-5 16:44:16 | 显示全部楼层
想要改变这个
 
标记N,E坐标与领导者-David B.Stewart
 
(定义C:LP(/PNT1 P1X P1Y STDY DY COORDN COORDE PTXT)
(setq PNT1(getpoint
“\n点击坐标点:”)
(setq P1X(car pnt1));x坐标
(setq P1Y(cadr pnt1));y坐标
(setq STDX(rtos P1X 2 2))
(setq STDY(rtos P1Y 2 2))
(setq坐标(strcat“N=“STDY))
(setq坐标(strcat“E=“STDX))
(setq PTXT(获取点
“\n点击文本位置:”)
(命令“LEADER”PNT1 PTXT“COORDN COORDE”)
(普林斯)
)
 
 
这边走
 
N=8566159.79
E=505422.47
 
 
想这样吗
 
N=8.566.159,79
E=505.422,47
 
 
想知道是否有可能默认
回复

使用道具 举报

5

主题

956

帖子

963

银币

初来乍到

Rank: 1

铜币
35
发表于 2022-7-5 16:54:45 | 显示全部楼层
 
从未见过这样的数字格式,逗号作为小数点?
 
不是这个?
N=8566159.79
E=505422.47
 
谷歌“用千位分隔符格式化数字”还有许多其他语言的例子
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 13:06 , Processed in 0.631455 second(s), 64 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表