Mystogan 发表于 2022-7-5 15:06:58

闭环多段线总长度

大家好,
 
我一直在网上搜索,在那里我可以得到一个lisp,它可以给出总长度而不是周长。
 
我试过李和特维尔,他们都有相同的结果,这是一个周长。
 
在这个场景中,我有一条闭合的多段线,形成了矩形。这个矩形看起来像一个电缆槽,肯定是电气部分用来布线电缆的电缆槽。我需要测量总长度,如果我要一个接一个地测量,这将花费我很多时间来获得总长度。这些物体有100多种不同的路径和大小(宽度)。
 
希望你能帮我
 
提前谢谢你

BIGAL 发表于 2022-7-5 15:13:14

你在两天前试过这个“星期帖子”吗?答案是肯定的。

Roy_043 发表于 2022-7-5 15:17:03

如果我正确理解OP,他想要的是电缆槽的长度,而不是轮廓。这与比加尔最近似乎所指的有所不同。

Mystogan 发表于 2022-7-5 15:21:43

是的,先生,我需要的是电缆槽的长度,而不是周长

BIGAL 发表于 2022-7-5 15:25:15

现在了解,如果电缆桥架是一个已知宽度和矩形,则可以得到pline的4个点,看长度2边减去宽度边,再加上另一侧,得到总数。您还可以添加更多关于宽度的规则,例如倍数。
 
 

so pt1 pt2 pt3 pt4
len1 pt1-pt2 len2=pt2-pt3
if len1=width skip else add.

Roy_043 发表于 2022-7-5 15:30:09

主要问题实际上是确定矩形的哪一侧代表宽度:
150x300->L=300或L=150?
 
另一个问题:
如果选择不同宽度的托盘,会发生什么情况:
150x300
150x2000
300x2000

BIGAL 发表于 2022-7-5 15:36:34

Roy_043我确实在我的帖子中提到了不同宽度的可能性,并对此进行了检查。
 
我进一步思考了这一点,然后快速跳转到代码中,我们正在以错误的方式处理它,忘记一个pline矩形,应该使用的是一个1x1大小的块,并在X和Y中缩放,然后很容易添加所有的X,或者使用一个动态块,再次您可以检索所有的X值并将其相加。动态块允许在块中重复图案。
 
更进一步说,选择两个点,插入多个托盘,因为它们具有最大长度,然后添加最后一个奇数。
 
好的,我做了一个名为200tray的块,它的大小是200x1,插入并使用属性更改其x比例。做了一些。
 
十分钟,包括编码。
 

(defun AHtray ( / ss len tot)
(setq tot 0.0)
(setq ss (ssget (list(cons 0 "INsert"))))
(repeat (setq x (sslength ss))
(setq len (vla-get-xscalefactor(vlax-ename->vla-object(ssname ss (setq x (- x 1))))))
(setq tot (+ tot len))
)
(alert (strcat "tray length is " (rtos tot 2 2)))
(princ)
)
(ahtray)

 
下一步是添加起点最大尺寸等,添加一些错误检查,但没有要比较的dwg或规则。
 
提醒我下一步做一个表格,有多少全尺寸和所有的奇数,所以你有一个零件清单。啊,是的,我一直在找时间做的另一件事,使用求和块属性。

Tharwat 发表于 2022-7-5 15:39:19

你好
 
只是一个想法-如果电缆槽是一个动态块(我认为在这种情况下应该是这样),那么你可以通过从选定的块引用中收集距离参数来获得这些电缆槽的长度,非常容易和精确,否则就无法判断输出是否只是闭合矩形或L字母形状,因为我知道这样的工作。

BIGAL 发表于 2022-7-5 15:44:27

我同意你的观点,那就是重新思考整个方法。直道、L、T。
 
如果我能找到它,我就把它贴在这里的电缆槽里。lsp和缆车2。lsp用于将电缆桥架绘制为特定样式。现在请记住,T形三通具有半径或倒角。
 
我相信谷歌会透露电缆槽lisp的。
 
我正在处理的块到表允许您选择多个块,它根据名称和属性加起来有多少块是相同的,因此可以得到一个完整的列表,比如说一个大小不同的块。Tharwat这对您的排水软件创建数量有用吗?

Tharwat 发表于 2022-7-5 15:49:32

我认为应该从这些托盘的中心线进行测量,而不管托盘的形状如何。
 
 
谢谢你,比格尔,我很久以前已经写过一个,就是DRBOM,可以在这里找到
页: [1] 2
查看完整版本: 闭环多段线总长度