Y~_H_~K 发表于 2016-1-17 13:10:55

帮忙加个框选 感谢

(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:53

程序需要用户交互逐一点取封闭区域内部点,是不可能支持框选的。

香田里浪人 发表于 2016-1-20 10:06:37

不生成面域并在其内标注面积(亩)和质心才能支持框选的。这类程序在论坛里有。

Y~_H_~K 发表于 2016-1-21 08:49:03

kozmosovia 发表于 2016-1-19 15:50 static/image/common/back.gif
程序需要用户交互逐一点取封闭区域内部点,是不可能支持框选的。

能不能把互逐一点取封闭区域内部点去掉   直接修改成框选

Y~_H_~K 发表于 2016-1-21 08:50:13

香田里浪人 发表于 2016-1-20 10:06 static/image/common/back.gif
不生成面域并在其内标注面积(亩)和质心才能支持框选的。这类程序在论坛里有。

找到了就是单位不是亩 是平方

香田里浪人 发表于 2016-1-22 16:31:26

Y~_H_~K 发表于 2016-1-21 08:50 static/image/common/back.gif
找到了就是单位不是亩 是平方

平方米除以666.67就是亩,程序稍微修改一下即可。

Y~_H_~K 发表于 2016-1-23 08:59:56

本帖最后由 Y~_H_~K 于 2016-1-23 09:15 编辑

香田里浪人 发表于 2016-1-22 16:31 static/image/common/back.gif
平方米除以666.67就是亩,程序稍微修改一下即可。
嗯,明白了。谢谢。
页: [1]
查看完整版本: 帮忙加个框选 感谢