帮忙加个框选 感谢
(defun c:mj();生成面域并在其内标注面积(亩)和质心;(VL-LOAD-COM)
;(setq AcadObject (vlax-get-acad-object)
;AcadDocument (vla-get-ActiveDocument AcadObject)
;mSpace (vla-get-ModelSpace AcadDocument)
;)
(setq p1 t)
(while p1
(if *error*
;(command "_boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "A" "o" "R" "" "")
;(command "_boundary" (setq p1 (getpoint "点取封闭区域内部的一点:")) "Y" "A" "o" "R" "" "")
(command "_boundary" (setq p1 (getpoint "n点取封闭区域内部的一点:"))"")
)
(setq EN (entlast))
(command "area" "o" EN)
(setq AA (getvar "area"))
(setq aa (/ aa 2000))
(setq aa (* aa 3))
(setq sss (RTOS aa 2 4))
(setq sss (strcatsss"亩"))
;(setq Centriod (vla-get-Centroid (vlax-ename->vla-object EN)))
;(setq x (vlax-safearray-get-element (vlax-variant-value Centriod) 0))
;(setq y (vlax-safearray-get-element (vlax-variant-value Centriod) 1))
(if (=ffsize nil)
(progn
(setq ffsize 0.5)
)
)
(setq ss (strcat "n输入字体的高度<" (rtos ffsize 2 1) ">:"))
(setq ffsize1 (getreal ss))
(ifffsize1
(setq ffsize ffsize1)
)
(COMMAND "TEXT" p1 ffsize 0 sss)
;(COMMAND "TEXT" (list x y 0) 0.5 0 sss)
;(entdel en) ;把;号去掉就可以把生成的区域线删掉
;(command "circle" (list x y 0) 500 "")
)
nil
)
程序需要用户交互逐一点取封闭区域内部点,是不可能支持框选的。 不生成面域并在其内标注面积(亩)和质心才能支持框选的。这类程序在论坛里有。
kozmosovia 发表于 2016-1-19 15:50 static/image/common/back.gif
程序需要用户交互逐一点取封闭区域内部点,是不可能支持框选的。
能不能把互逐一点取封闭区域内部点去掉 直接修改成框选 香田里浪人 发表于 2016-1-20 10:06 static/image/common/back.gif
不生成面域并在其内标注面积(亩)和质心才能支持框选的。这类程序在论坛里有。
找到了就是单位不是亩 是平方 Y~_H_~K 发表于 2016-1-21 08:50 static/image/common/back.gif
找到了就是单位不是亩 是平方
平方米除以666.67就是亩,程序稍微修改一下即可。 本帖最后由 Y~_H_~K 于 2016-1-23 09:15 编辑
香田里浪人 发表于 2016-1-22 16:31 static/image/common/back.gif
平方米除以666.67就是亩,程序稍微修改一下即可。
嗯,明白了。谢谢。
页:
[1]