试试这个。。。
((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
)
为了避免转换为VLA对象,您也可以使用该关系:
s=rθ
其中s是弧长,r是弧半径,θ是弧跨距的角度。 完美的
再次感谢,我想我们是认识的。还记得哈马吗?第十六单元和第17单元?
谢谢你的建议,但是我仍然是Lisp的初学者,我认为我还没有得到避免VLA对象的好处。
我要学的东西太多了
好的,这就是我能得出的公式。
希望知道你对它的看法。
不客气,
但很抱歉,我不知道你说的哈马克和第十六单元是什么意思?
几点建议:
[列表]
[*]DXF组50和51已存储圆弧的起点和终点角度,因此无需检索中心、起点和终点来计算这些角度。
[/列表]
[列表]
[*]不需要与度之间的转换。
[/列表]
[列表]
[*]使用端点穿过WCS X轴的圆弧测试功能,例如:(_arclength (entmakex '((0 . "ARC") (10 0 0) (40 . 1.0) (50 . -0.5236) (51 . 3.6652))))
[/列表] 工作中的一些注意事项,
在这里,我从我的工作文件中拿出了一个真实的例子。
注释是lisp没有读取文本,但它可以与多行文字一起使用,第二个是在实际的mm文件大小中,块非常小,
我有一些问题,如附图所示。
Dlen_lisp。图纸
就这么简单,嗯?我喜欢数学方法。
这是由于文本字符串而不是文本或多行文字实体本身造成的,我修改了代码以适应并解决这个问题,如下所示。
我很匆忙地阅读了笔记,但我认为答案是否定的,但如果你清楚地解释了这些问题的需要,我们可能会找到另一种方法来做笔记,当然,在一个新的线程。
对于块大小,我想我已经用单位或cm而不是mm制作了块,所以忽略它,用一个新名称创建一个新块,并将其添加到代码中。
祝你好运
7
这种简单的几何关系源自弧度的定义,弧度是弧长等于其半径的弧扫掠的角度,即对于围绕中心转动的每个弧度,您沿着弧穿过的距离等于半径。
页:
1
[2]