Tharwat 发表于 2022-7-6 07:06:20

 
试试这个。。。
 

((lambda (j / sn e)
(while (setq sn (ssname ss (setq j (1+ j))))
    (setq e (entget sn))
    (if (eq "LINE" (cdr (assoc 0 e)))
      (setq l (+ l (distance (cdr (assoc 10 e)) (cdr (assoc 11 e)))))
      (setq l (+ l (vla-get-arclength (vlax-ename->vla-object sn))))
    )
)
)
-1
)

Lee Mac 发表于 2022-7-6 07:09:29

为了避免转换为VLA对象,您也可以使用该关系:
 
s=rθ
 
其中s是弧长,r是弧半径,θ是弧跨距的角度。

tarektm 发表于 2022-7-6 07:14:03

完美的
再次感谢,我想我们是认识的。还记得哈马吗?第十六单元和第17单元?

tarektm 发表于 2022-7-6 07:16:46

 
谢谢你的建议,但是我仍然是Lisp的初学者,我认为我还没有得到避免VLA对象的好处。
我要学的东西太多了

Tharwat 发表于 2022-7-6 07:18:04

 
好的,这就是我能得出的公式。
 
希望知道你对它的看法。
 
不客气,
 
但很抱歉,我不知道你说的哈马克和第十六单元是什么意思?

Lee Mac 发表于 2022-7-6 07:21:55

 
几点建议:
 
 
[列表]
[*]DXF组50和51已存储圆弧的起点和终点角度,因此无需检索中心、起点和终点来计算这些角度。
[/列表]
 
[列表]
[*]不需要与度之间的转换。
[/列表]
 
[列表]
[*]使用端点穿过WCS X轴的圆弧测试功能,例如:(_arclength (entmakex '((0 . "ARC") (10 0 0) (40 . 1.0) (50 . -0.5236) (51 . 3.6652))))
[/列表]

tarektm 发表于 2022-7-6 07:27:04

工作中的一些注意事项,
 
在这里,我从我的工作文件中拿出了一个真实的例子。
 
注释是lisp没有读取文本,但它可以与多行文字一起使用,第二个是在实际的mm文件大小中,块非常小,
 
我有一些问题,如附图所示。
Dlen_lisp。图纸

pBe 发表于 2022-7-6 07:29:19

 
就这么简单,嗯?我喜欢数学方法。

Tharwat 发表于 2022-7-6 07:31:00

 
这是由于文本字符串而不是文本或多行文字实体本身造成的,我修改了代码以适应并解决这个问题,如下所示。
 
 
我很匆忙地阅读了笔记,但我认为答案是否定的,但如果你清楚地解释了这些问题的需要,我们可能会找到另一种方法来做笔记,当然,在一个新的线程。
 
对于块大小,我想我已经用单位或cm而不是mm制作了块,所以忽略它,用一个新名称创建一个新块,并将其添加到代码中。
 
祝你好运
 
7

Lee Mac 发表于 2022-7-6 07:34:36

 
这种简单的几何关系源自弧度的定义,弧度是弧长等于其半径的弧扫掠的角度,即对于围绕中心转动的每个弧度,您沿着弧穿过的距离等于半径。
页: 1 [2]
查看完整版本: 组合多行长度a