获取长度并创建
亲爱的,有人知道我如何得到一个弧或一个物体(不止一个)的长度,并在其之后构造一条线,所有长度在每个弧或物体之间的特定空间内分开。
谢谢 仅限于圆弧和圆?或者包括多段线和椭圆?为了它的价值,让我们加入“台词”。 Noop,它们的数量很大,所以通常是多段线或圆。。。有必要获取它,并用测量的长度更改一行上的长度(按每个长度,而不是总长度)。。。 没有弧,只有普林斯?
(Defun c:demo ( / pt ent len )
(if (setq pt nil ss (ssget))
(repeat (setq i (sslength ss))
(setq ent (ssname ss (Setq i (1- i)))
len (vlax-curve-getDistAtParam ent (vlax-curve-getEndParam ent )))
(if (null pt)
(progn (setq pt (getpoint "\nPick start point:"))
(Setq dst (getdist pt "\nDistance between lines:")))
(setq pt (polar pt 0.0 dst)))
(entmakex (list (cons 0 "LINE")
(cons 10 pt)
(cons 11 (polar pt (* pi 1.5) len))))
)
)(princ)
)
对不起,pBe。。。它有弧、普林斯和圆!!。。。 好的,pBe。。。它工作得很好!!!。。。非常感谢。在“简单”的台词中,你帮了我很多!!!。。。我和一些朋友花了很多时间手动操作!!!。。。
不客气,很高兴它对你有用。
很乐意帮忙
干杯 尊敬的pBe:,
我在命令上遇到了一些问题,你能帮我查找附件以尝试解决问题,或者告诉我该怎么做吗!?。。。谢谢
PLs的长度。图纸 这个怎么样:
(defun C:test (/ ss e l i p d)
(setq ss (ssget "_:L" '((0 . "CIRCLE,ARC,LWPOLYLINE")))
p(getpoint "\nPick a point")
d(getdist p "\nDistance between lines ; ")
)
(repeat (setq i (sslength ss))
(setq e (vlax-ename->vla-object (ssname ss (setq i (1- i))))
l (cond
((vlax-property-available-p e 'length) (vla-get-length e))
((vlax-property-available-p e 'circumference) (vla-get-circumference e))
((vlax-property-available-p e 'arclength) (vla-get-arclength e))
)
)
(entmake
(list
'(0 . "LINE")
(cons 10 p)
(cons 11 (polar p (* pi 1.5) l))
)
)
(setq p (polar p 0 d))
)
(princ)
) 努普。。。然而对象的长度与创建的线不同。。。
PLs 2的长度。图纸
页:
[1]
2