土木在线论坛 \ 建筑结构 \ 武汉老庄结构院 \ 测量封闭区域面积.lsp

测量封闭区域面积.lsp

发布于:2012-06-20 23:12:20 来自:建筑结构/武汉老庄结构院 [复制转发]
看到有人贴的测量封闭区域面积LSP不咋滴,所以贴2个好点的lsp程序出来。。。是经的起时间的考验的(呵呵)。

复制到记事本中,另存为 XX.lsp 然后在CAD中 工具-加载应用程序 中加载。文中 (defunC:TT(/XYSIZESSAREASTRTMP)
C:后的,TT 为使用时要输入的命令。


(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)
)

全部回复(2 )

只看楼主 我来说两句抢地板
  • lvxue123
    lvxue123 沙发
    不错,很好用,要是TT可以框选就了,一个一个的点不怎么方便
    2013-11-30 15:10:30

    回复 举报
    赞同0
  • zwb1986421
    zwb1986421 板凳
    能用 顶顶 谢谢楼主
    2012-11-02 16:52:02

    回复 举报
    赞同0
这个家伙什么也没有留下。。。

武汉老庄结构院

返回版块

10.49 万条内容 · 521 人订阅

猜你喜欢

阅读下一篇

结构新手求好心人指点

我是刚毕业的学生,刚进设计院,公司这阵没有工程,整天看规范,也不太理解,有好心的前辈指点一下吗?需要学习那些东西,刚开始应该做什么?谢谢了

回帖成功

经验值 +10