jhonnying 发表于 2022-7-6 08:39:45

与多段线点的距离

大家好!你能帮我用一个lsp程序自动生成从多段线的点到参考线的线性尺寸吗,因为用经典的comand(dimlinear)我可以一次画出每个点的尺寸线。我附上了一张图纸,以便您更好地理解。请原谅我的英语!
 
谢谢
多段线点到参照线的距离。图纸

pBe 发表于 2022-7-6 08:45:15

试试这个:
(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)
)
 
希望这有帮助

jhonnying 发表于 2022-7-6 08:49:23

它工作得很好!非常感谢你!

pBe 发表于 2022-7-6 08:52:55

 
不客气,约翰宁
很高兴它对你有用。
 
干杯

martinle 发表于 2022-7-6 08:59:28

 
你好
有人能帮我吗?
在Lisp中,这会产生以下错误消息:
 
“不正确的字符串ssget模式”
 
谢谢你的帮助!
 
马丁

pBe 发表于 2022-7-6 09:02:53

(ssget“_:E:S:L”'((0。“LWPOLYLINE”)));
 
但不确定

alanjt 发表于 2022-7-6 09:06:39

这是我的猜测,因为OP的地点是奥地利。

martinle 发表于 2022-7-6 09:09:41

不幸的是,没有。错误仍然存在。
错误消息:选择参考线:错误:字符串ssget模式不正确
 
问候Martin

BlackBox 发表于 2022-7-6 09:12:15

我有兴趣阅读奥地利acad*dev.chm可用的SSGET模式

Least 发表于 2022-7-6 09:18:17

是否可以将其修改为也适用于水平距离?即基准线是垂直的。
干杯
页: [1] 2
查看完整版本: 与多段线点的距离