请求高手帮忙解决或修改“自动标注面积周长”的lisp文件,不胜感激!
www.dimcax.com
请求高手帮忙解决或修改“自动标注面积周长”的lisp文件,不胜感激!
各位高手大侠好!
初学lisp纯粹瞎编的,点击封闭区域自动标注面积周长,正常运行了几天,但之后出现下面的问题无法解决,请求高手达人帮忙解决或者修改lisp,不胜感激!!!
命令:
命令: mj \n请点取要标注的范围内一点:-boundary
指定内部点或 [高级选项(a)]: 正在选择所有对象...
正在选择所有可见对象...
正在分析所选数据...
正在分析内部孤岛...
指定内部点或 [高级选项(a)]:
boundary 已创建 1 个多段线
命令: mj 未知命令“mj”。按 f1 查看帮助。
命令: ; 错误: activex 服务器返回错误: 未知名称: perimeter
命令:
请求高手达人帮忙解决或者修改lisp或者编个类似的,不胜感激需要修改的代码如下:
(defun c:mj (/ pt a b c s ss tt ttt )
(vl-load-com)
(setq pt (getpoint "请点取要标注的范围内一点:"))
(command "-boundary" pt "" "")
(setq a (entlast))
(setq b (vlax-ename->vla-object a))
(setq s (vla-get-area b))
(setq ss (rtos (/ s 1000000)2 2))
(setq tt (vla-get-perimeter b))
(setq ttt (rtos (/ tt 1000)2 2))
(command "textsize"
d
为明经做贡献啦
d
vla-get-perimeter的对象只能是面域!
d
谢谢大家
对的vla-get-perimeter有问题
改为vla-get-length即可
d
已经修改正确,点击区域自动封闭标注面积周长很小的lisp:
(defun c:mj (/ pt a b c s ss tt ttt )
(vl-load-com)
(setq pt (getpoint "请点取要标注的范围内一点:"))
(command "-boundary" pt "" "")
(setq a (entlast))
(setq b (vlax-ename->vla-object a))
(setq s (vla-get-area b))
(setq ss (rtos (/ s 1000000)2 2))
(setq tt (vla-get-length b))
(setq ttt (rtos (/ tt 1000)2 2))
(command "textsize"