测量封闭区域面积(2种方法)
zml1984
zml1984 Lv.3
2009年09月08日 17:08:47
只看楼主

[code](setvar "CMDECHO" 0)(vl-load-com);;;=================================================================*;;;功能:测量封闭区域的面积(可分别设置XY比例) *;;;日期:zml84 于 2009-06-07 *(defun C:TT (/ X Y SIZE SS AREA STR TMP)

[code](setvar "CMDECHO" 0)
(vl-load-com)
;;;=================================================================*
;;;功能:测量封闭区域的面积(可分别设置XY比例) *
;;;日期:zml84 于 2009-06-07 *
(defun C:TT (/ X Y SIZE SS AREA STR TMP)
;; 0 初始化
(or *TEST_TMP*
(setq *TEST_TMP* '(1000 100 2.5))
)
(setq X (nth 0 *TEST_TMP*)
Y (nth 1 *TEST_TMP*)
SIZE (nth 2 *TEST_TMP*)
)

;; 1
(while
(progn
(princ
(strcat
"\n当前设置:X比例="
(rtos X)
",X比例="
(rtos Y)
",字高="
(rtos SIZE)
)
)
(initget "X Y Size")
(princ
"\n点取要测量面积的封闭对象,或 [X比例(X)/Y比例(Y)/字高(S)]: "
)
(setq SS (entsel ""))
)
(cond ((= SS "X")
(if (and (setq TMP (getreal "\n设置X向比例: "))
(> TMP 0)
)
(setq X TMP)
)
)
((= SS "Y")
(if (and (setq TMP (getreal "\n设置Y向比例: "))
(> TMP 0)
)
(setq Y TMP)
)
)
((= SS "Size")
(if (and (setq TMP (getreal "\n设置字体高度: "))
(> TMP 0)
)
(setq SIZE TMP)
)
)
((and (setq
AREA (vla-get-area
(vlax-ename->vla-object (car SS))
)
)
(setq AREA (/ AREA 1.0 X Y)
STR (rtos AREA 2 3)
)
(princ (strcat "\n**面积 = " STR))
(setq PT (getpoint "\n文字的位置: "))
)
(command "_.TEXT" "non" PT SIZE 0 STR)
)
)

)

;; 2
(setq *TEST_TMP* (list X Y SIZE))
(princ)

)






;;;=================================================================*
;;;功能:点取内部一点,测量封闭区域的面积(可分别设置XY比例) *
;;;日期:zml84 于 2009-06-07 *
(defun C:TT2 (/ X Y SIZE PT EN AREA STR TMP)
;; 0 初始化
(or *TEST_TMP*
(setq *TEST_TMP* '(1000 100 2.5))
)
(setq X (nth 0 *TEST_TMP*)
Y (nth 1 *TEST_TMP*)
SIZE (nth 2 *TEST_TMP*)
)

;; 1
(while
(progn
(princ
(strcat
"\n当前设置:X比例="
(rtos X)
",X比例="
(rtos Y)
",字高="
(rtos SIZE)
)
)
(initget "X Y Size")
(princ
"\n点取要测量的位置,或 [X比例(X)/Y比例(Y)/字高(S)]: "
)
(setq PT (getpoint ""))
)
(cond ((= PT "X")
(if (and (setq TMP (getreal "\n设置X向比例: "))
(> TMP 0)
)
(setq X TMP)
)
)
((= PT "Y")
(if (and (setq TMP (getreal "\n设置Y向比例: "))
(> TMP 0)
)
(setq Y TMP)
)
)
((= PT "Size")
(if (and (setq TMP (getreal "\n设置字体高度: "))
(> TMP 0)
)
(setq SIZE TMP)
)
)
((and
(setq EN (bpoly PT))
(setq
AREA (vla-get-area
(vlax-ename->vla-object EN)
)
)
;;(progn (command "REGEN") (redraw EN 3) t)
(entdel EN)

(setq AREA (/ AREA 1.0 X Y)
STR (rtos AREA 2 3)
)
(princ (strcat "\n**面积 = " STR))
)
(command "_.TEXT" "non" PT SIZE 0 STR)
)
)

)

;; 2
(setq *TEST_TMP* (list X Y SIZE))

(princ)
)[/code]
免费打赏
lin_461045462
2010年08月13日 06:15:16
12楼
测量封闭区域面积(2种方法)收藏了
下来慢慢看看学习学习.
谢谢楼主的无私贡献
回复
zhoumin129
2010年08月13日 14:42:33
13楼
这个工具还要编啊,呵呵
回复
wudingyi
2010年08月14日 11:02:41
14楼
测量封闭区域面积(2种方法)收藏了
下来慢慢看看学习学习.
测量封闭区域面积(2种方法)收藏了
下来慢慢看看学习学习.
回复
浪迹天涯
2010年08月15日 23:18:16
15楼
收下了,慢慢学习中,对于编程不是懂,只能慢慢研究了:handshake
回复
cjw19992002
2010年08月26日 21:56:46
16楼
终于见到发源程序了,可以学习
回复
woshiwujianqiang
2010年08月27日 14:03:10
17楼
看不懂 好难啊
回复
wtftmzx
2010年08月31日 15:35:52
18楼
直接list好了
回复
jqka
2010年09月04日 13:05:35
19楼
lisp原文,好。
测量封闭区域面积(2种方法)收藏了
下来慢慢看看学习学习.
感谢楼主的无私贡献
回复
hongyan13
2010年10月18日 14:24:32
20楼
谢谢楼主的无私奉献,正缺少这方面的资料,太谢谢了
回复
lyd511
2010年10月18日 21:57:23
21楼
是呀,用LI命令就好呀!
回复

相关推荐

APP内打开