请问如何把该LSP标注改为“米”为单位?
这是在国外找到的一个标注面积小程序,做规划时候很方便但是做建筑时候就成了毫米级的单位,请问如何缩小1000000倍?
谢谢各位老大!
===================================================
(defun c:at (/ area cth loc ss str th vevo)
(while
(setq ss (car (entsel "\nSelect a object")))
(setq vevo (vlax-ename->vla-object ss))
(setq area (vlax-get vevo 'area))
(setq loc (getpoint "\nClick location for text<0,0,0>: "))
(if (= loc nil)(setq loc '(0 0 0)))
(setq str (strcat "" (rtos area)))
(setq cth (rtos (getvar "textsize")))
(setq th (getdist (strcat "\nEnter new text height < " cth " > : ")))
(if (= th nil)(setq th cth))
(command "_text" loc th "" str 0)
) ; while
(princ)
) ; defun
==============================================
本帖最后由 Andyhon 于 2012-12-25 12:55 编辑
(setq area (vlax-get vevo 'area)
area (/ area 1000000) ; 倍率
)
Andyhon 发表于 2012-12-25 12:46 static/image/common/back.gif
(setq area (vlax-get vevo 'area))
area (/ area 1000000) ; 倍率
)
大侠你好
我不太明白这句怎么加上去呢
能完整贴一下么?
谢谢:) (setq area (vlax-get vevo 'area))
==>
(setq area (vlax-get vevo 'area)
area (/ area 1000000) ; 倍率
) Andyhon 发表于 2012-12-25 12:56 static/image/common/back.gif
(setq area (vlax-get vevo 'area))
==>
(setq area (vlax-get vevo 'area)
太棒了!谢谢!! 强啊,长老都来帮你了 本帖最后由 jokingw 于 2012-12-25 14:32 编辑
Andyhon 发表于 2012-12-25 12:56 static/image/common/back.gif
(setq area (vlax-get vevo 'area))
==>
(setq area (vlax-get vevo 'area)
大侠还有没办法可以另该程序实现以下功能:
不需要每次都设定标注文字的位置,自动标注在线框里,或者是的几何中心点?
谢谢! 1000000改为1000000. 或1.0e6似乎更稳妥些, 能确保是实数运算 这个好办,原程序修改如下:
(defun c:at (/ area cth loc ss str th vevo)
(while
(setq ss (car (entsel "\n选择对象")))
(setq vevo (vlax-ename->vla-object ss))
(setq area (vlax-get vevo 'area))
(setq loc (getpoint "\n点击标注位置<0,0,0>: "))
(if (= loc nil)(setq loc '(0 0 0)))
(setq str (strcat "s=" (rtos area 2 2 )"㎡")));;;此句可以显示面积标注单位
(setq cth (rtos (getvar "textsize")))
(setq th (getdist (strcat "\n输入字体大小 < " cth " > : ")))
(if (= th nil)(setq th cth))
(mkla "面积标注" 3);;;此句可以显示面积标注颜色,1红色2黄色3绿色
(command "_text" loc th "" str 0)
) ; while
(princ)
) ; defun
页:
[1]