通过单击获取多段线区域
你好,我有一个LisP文件,可以帮助我获得闭合多段线的面积值,并将其分配给文本。它需要在内部拾取一个点,然后围绕拾取的点创建最近的多段线。
但是,我的图形已经有一些多段线,我想通过单击多段线本身来获得它们的面积。
不幸的是,我对LisP一无所知。希望你们能帮我解决这个问题。
Thx太多了!
(详见附件)
DTICH。LSP (defun c:test ( / a b c)
(if (setq a (ssget '((0 . "*polyline"))))
(progn
(setq b 0)
(repeat (setq i (sslength a))
(setq b
(+ (vla-get-area
(vlax-ename->vla-object (ssname a (setq i (1- i))))
)
b
)
)
)
(setq c (strcat "\nComponent Area : " (rtos b 2 5)))
(alert c)
(prompt c)
)
)
(princ)
) 似乎您的LisP用于获取多段线的面积之和。有没有关于分隔多段线的想法?
谢谢你的评论! 您可以在此时选择其他选项 这一条用多段线起点处的区域标记文本。
(defun c:测试(/a b c)(vl load com)(if(setq a(ssget’((0.*多段线)))(repeat(setq i(sslength a))(setq b(vlax ename->vla object(ssname a(setq i(1-i))))(setq c(vlax get b‘坐标))(command.text“c”“\u non”(list(car c)(cadr c))50; 另一种方法是仍然使用bpoly获取其区域,然后擦除最后一个并写入文本。我认为GP的代码有一个出色的区域例程,它可以计算出文本位置的区域中心。
页:
[1]