乐筑天下

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

[编程交流] 添加多段线

[复制链接]

24

主题

141

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
123
发表于 2022-7-6 09:00:08 | 显示全部楼层 |阅读模式
你好
 
我对Lisp几乎没有经验。
我总是测量多段线(直线段)的一部分,并将其长度相加。仍然只有部分,没有库尔弗!
我到处都找了,但没有找到合适的。
我的问题是:是否有一个lisp,其中可以选择许多不同的多段线,并添加这些长度。总和应以毫米为单位花费在命令行上。
我的英语不好!我的朋友是谷歌翻译!
谢谢你的帮助!
 
马丁
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:09:59 | 显示全部楼层

 
  1. (defun c:Test (/ ss n sset l)
  2. ;; Tharwat 25. 08. 2011
  3. (setq n 0)
  4. (if (setq ss (ssget "_:L" '((0 . "*POLYLINE"))))
  5.    (progn
  6.      (repeat (setq i (sslength ss))
  7.        (setq sset (ssname ss (setq i (1- i))))
  8.        (setq l (vlax-curve-getDistatPoint
  9.                  sset
  10.                  (vlax-curve-getEndPoint sset)
  11.                )
  12.        )
  13.        (setq n (+ n l))
  14.      )
  15.      (princ (strcat "The Total Length: " " " (rtos n 2)))
  16.    )
  17.    (princ)
  18. )
  19. (princ)
  20. )

 
塔瓦特
回复

使用道具 举报

24

主题

141

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
123
发表于 2022-7-6 09:17:59 | 显示全部楼层
Tharwat你好!
 
谢谢你的快速帮助!
我忘了写它们都是闭合多段线。
它应该是单独的部分,因此可以在顶点之间选择段。
我有一个矩形。为此,我选择了一个子段。现在,我从子线段中选择另一条多段线。等然后,所有选定的元素应形成一个总和。
我希望它是写在一个可以理解的?
 
马丁
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:23:44 | 显示全部楼层
 
我什么都不懂?
 
为了达到你想要的目标,最好在前后都展示一张图片。
回复

使用道具 举报

24

主题

141

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
123
发表于 2022-7-6 09:24:22 | 显示全部楼层
Tharwat你好!
 
例子:
我画了三个矩形。这些有4页。矩形1:第1页第2页第3页第4页。
Rechteck2:第1页第2页第3页第4页
Rechteck3:Page-1 Page-2 Page-3 Page-4。
现在我必须总是选择不同矩形的不同边。
示例:我在第3页选择了一个矩形,在第1页Rechteck2等等。。
最后,在命令行上发出以毫米或米为单位的ausgewälten页面的总和。
你能帮助我吗?
 
你好,马丁!
回复

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

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

铜币
438
发表于 2022-7-6 09:33:08 | 显示全部楼层
当你不需要的时候,停止过滤锁定的对象!
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:39:51 | 显示全部楼层
 
观点已被采纳。
 
谢谢
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 09:42:17 | 显示全部楼层
 
我会尽我最大的努力,如果我做不到,这里有很多好朋友可以帮你。但首先我们应该了解
你们需要的重点。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 09:53:14 | 显示全部楼层
如果我理解正确,请快速阅读一段代码:
 
  1. (defun c:addpl ( / e l p x ) (vl-load-com) (setq x 0.0)
  2.    (while
  3.        (progn (setvar 'ERRNO 0) (setq e (entsel "\nSelect Polyline Segment: "))
  4.            (cond
  5.                (   (= 7 (getvar 'ERRNO))
  6.                    (princ "\nMissed, try again.")
  7.                )
  8.                (   (not e)
  9.                    nil
  10.                )
  11.                (   (eq "LWPOLYLINE" (cdr (assoc 0 (entget (car e)))))
  12.                    (princ
  13.                        (strcat "\nSegment: "
  14.                            (rtos
  15.                                (setq l
  16.                                    (-
  17.                                        (vlax-curve-getdistatparam (car e)
  18.                                            (1+
  19.                                                (setq p
  20.                                                    (fix
  21.                                                        (vlax-curve-getparamatpoint (car e)
  22.                                                            (vlax-curve-getclosestpointto (car e) (trans (cadr e) 1 0))
  23.                                                        )
  24.                                                    )
  25.                                                )
  26.                                            )
  27.                                        )
  28.                                        (vlax-curve-getdistatparam (car e) p)
  29.                                    )
  30.                                )
  31.                            )
  32.                        )
  33.                    )
  34.                    (princ (strcat "\tTotal: " (rtos (setq x (+ x l)))))
  35.                )
  36.                (   (princ "\nPlease select an LWPolyline.")   )
  37.            )
  38.        )
  39.    )
  40.    (if (< 0.0 x)
  41.        (princ (strcat "\nTotal: " (rtos x)))
  42.    )
  43.    (princ)
  44. )
回复

使用道具 举报

24

主题

141

帖子

115

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
123
发表于 2022-7-6 09:58:41 | 显示全部楼层
早上好@Tharwat@Lee@alanjt
 
谢谢你的帮助!
 
@塔尔瓦:Lisp程序不起作用。我不知道为什么。
@Alanjt:谢谢你的帮助。
 
@李:你完全明白我的意思!
非常感谢你。会有很大的解脱!
 
我只能说:伟大的论坛和伟大的人!
 
非常感谢。
 
问候Martin
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-7 06:32 , Processed in 0.340938 second(s), 72 queries .

© 2020-2025 乐筑天下

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