与多段线点的距离
大家好!你能帮我用一个lsp程序自动生成从多段线的点到参考线的线性尺寸吗,因为用经典的comand(dimlinear)我可以一次画出每个点的尺寸线。我附上了一张图纸,以便您更好地理解。请原谅我的英语!谢谢
多段线点到参照线的距离。图纸 试试这个:
(defun c:DimTwo(/ aDoc Space pl ReFL pt pt2 ss)
(vl-load-com)
(setq aDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq Space
(if (= 1 (getvar "CVPORT"))
(vla-get-PaperSpace aDoc)
(vla-get-ModelSpace aDoc)
)
)
(prompt "\nSelect Polyline:")
(if (and
(setq Pl (ssget ":E:S:L" '((0 . "LWPOLYLINE"))))
(progn (prompt "\nSelect Reference Line:")
(setq RefL (ssget ":E:S:L" '((0 . "*LINE"))))
)
)
(progn
(setq RefL (vlax-ename->vla-object (ssname RefL 0)))
(foreach pt (mapcar
'cdr
(vl-remove-if-not
'(lambda (x) (= (car x) 10))
(entget (ssname pl 0))
)
)
(vla-addDimRotated
space
(vlax-3d-point (append pt '(0.0)))
(vlax-3d-point
(setq pt2 (vlax-curve-getclosestpointto RefL pt))
)
(vlax-3d-point
(mapcar (function (lambda (a b) (/ (+ a b) 2.))) pt pt2)
)
1.57079633
)
)
)
)(princ)
)
希望这有帮助 它工作得很好!非常感谢你!
不客气,约翰宁
很高兴它对你有用。
干杯
你好
有人能帮我吗?
在Lisp中,这会产生以下错误消息:
“不正确的字符串ssget模式”
谢谢你的帮助!
马丁 (ssget“_:E:S:L”'((0。“LWPOLYLINE”)));
但不确定 这是我的猜测,因为OP的地点是奥地利。 不幸的是,没有。错误仍然存在。
错误消息:选择参考线:错误:字符串ssget模式不正确
问候Martin 我有兴趣阅读奥地利acad*dev.chm可用的SSGET模式 是否可以将其修改为也适用于水平距离?即基准线是垂直的。
干杯
页:
[1]
2