martinle 发表于 2022-7-6 09:00:08

添加多段线

你好
 
我对Lisp几乎没有经验。
我总是测量多段线(直线段)的一部分,并将其长度相加。仍然只有部分,没有库尔弗!
我到处都找了,但没有找到合适的。
我的问题是:是否有一个lisp,其中可以选择许多不同的多段线,并添加这些长度。总和应以毫米为单位花费在命令行上。
我的英语不好!我的朋友是谷歌翻译!
谢谢你的帮助!
 
马丁

Tharwat 发表于 2022-7-6 09:09:59


 

(defun c:Test (/ ss n sset l)
;; Tharwat 25. 08. 2011
(setq n 0)
(if (setq ss (ssget "_:L" '((0 . "*POLYLINE"))))
   (progn
   (repeat (setq i (sslength ss))
       (setq sset (ssname ss (setq i (1- i))))
       (setq l (vlax-curve-getDistatPoint
               sset
               (vlax-curve-getEndPoint sset)
               )
       )
       (setq n (+ n l))
   )
   (princ (strcat "The Total Length: " " " (rtos n 2)))
   )
   (princ)
)
(princ)
)

 
塔瓦特

martinle 发表于 2022-7-6 09:17:59

Tharwat你好!
 
谢谢你的快速帮助!
我忘了写它们都是闭合多段线。
它应该是单独的部分,因此可以在顶点之间选择段。
我有一个矩形。为此,我选择了一个子段。现在,我从子线段中选择另一条多段线。等然后,所有选定的元素应形成一个总和。
我希望它是写在一个可以理解的?
 
马丁

Tharwat 发表于 2022-7-6 09:23:44

 
我什么都不懂?
 
为了达到你想要的目标,最好在前后都展示一张图片。

martinle 发表于 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页面的总和。
你能帮助我吗?
 
你好,马丁!

alanjt 发表于 2022-7-6 09:33:08

当你不需要的时候,停止过滤锁定的对象!

Tharwat 发表于 2022-7-6 09:39:51

 
观点已被采纳。
 
谢谢

Tharwat 发表于 2022-7-6 09:42:17

 
我会尽我最大的努力,如果我做不到,这里有很多好朋友可以帮你。但首先我们应该了解
你们需要的重点。

Lee Mac 发表于 2022-7-6 09:53:14

如果我理解正确,请快速阅读一段代码:
 
(defun c:addpl ( / e l p x ) (vl-load-com) (setq x 0.0)
   (while
       (progn (setvar 'ERRNO 0) (setq e (entsel "\nSelect Polyline Segment: "))
         (cond
               (   (= 7 (getvar 'ERRNO))
                   (princ "\nMissed, try again.")
               )
               (   (not e)
                   nil
               )
               (   (eq "LWPOLYLINE" (cdr (assoc 0 (entget (car e)))))
                   (princ
                     (strcat "\nSegment: "
                           (rtos
                               (setq l
                                 (-
                                       (vlax-curve-getdistatparam (car e)
                                           (1+
                                             (setq p
                                                   (fix
                                                       (vlax-curve-getparamatpoint (car e)
                                                         (vlax-curve-getclosestpointto (car e) (trans (cadr e) 1 0))
                                                       )
                                                   )
                                             )
                                           )
                                       )
                                       (vlax-curve-getdistatparam (car e) p)
                                 )
                               )
                           )
                     )
                   )
                   (princ (strcat "\tTotal: " (rtos (setq x (+ x l)))))
               )
               (   (princ "\nPlease select an LWPolyline.")   )
         )
       )
   )
   (if (< 0.0 x)
       (princ (strcat "\nTotal: " (rtos x)))
   )
   (princ)
)

martinle 发表于 2022-7-6 09:58:41

早上好@Tharwat@Lee@alanjt
 
谢谢你的帮助!
 
@塔尔瓦:Lisp程序不起作用。我不知道为什么。
@Alanjt:谢谢你的帮助。
 
@李:你完全明白我的意思!
非常感谢你。会有很大的解脱!
 
我只能说:伟大的论坛和伟大的人!
 
非常感谢。
 
问候Martin
页: [1] 2
查看完整版本: 添加多段线