 - [FONT=courier new](load "xyp_lib.vlx") ;版本 V.20060430
- ;|下载和加载通用函数(可在签名栏直接下载后放到搜索路径下)
- 利用以下任何一种方式(首选第一种)即可加载和运行通用函数内的所有子程序:
- ★1·在acad.lsp中增加(load"xyp_lib.vlx")
- ■2·在每个程序内增加(load"xyp_lib.vlx")
- ■3·在command下,输入(load"xyp_lib.vlx")
- ■4·在菜单.mnl中增加(load"xyp_lib.vlx")
- ■5·将xyp_lib.vlx文件直接拽到cad屏幕
- [COLOR=red] ★通用函数下载地址:[/COLOR]
- [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
- [url]http://free.ys168.com/?xyp1964[/url]
- |;
- ;;; 四边形土方量:
- ;;; 拾取四边形的四个角点坐标计算四边形面积s
- ;;; 拾取施工高度h1、h2、h3、h4
- ;;; v=S*(h1+h2+h3+h4)/4
- (defun c:SBXTFL (/ pt0 en s a1 a2 a3 a4 b1 b2 b3 b4 V v1 pt)
- (CMDLASC0)
- (setvar "osmode" 0)
- (XYP-MkLaCo "temp" 2)
- (setq pt0 (getpoint "\n点取四边形内一点: "))
- (command "-boundary" "a" "o" "r" "" pt0 "")
- (setq en (entlast))
- (if (/= en nil)
- (progn
- (setq s (vla-get-Area (vlax-ename->vla-object en))
- a1 (car (USEL 0 "TEXT" "\n屏幕拾取四边形施工高度1: "))
- a2 (car (USEL 0 "TEXT" "\n屏幕拾取四边形施工高度2: "))
- a3 (car (USEL 0 "TEXT" "\n屏幕拾取四边形施工高度3: "))
- a4 (car (USEL 0 "TEXT" "\n屏幕拾取四边形施工高度4: "))
- b1 (atof (xyp-get-dxf 1 a1))
- b2 (atof (xyp-get-dxf 1 a2))
- b3 (atof (xyp-get-dxf 1 a3))
- b4 (atof (xyp-get-dxf 1 a4))
- V (* s (/ (+ b1 b2 b3 b4) 4))
- V1 (rtos V 2 2)
- pt (vlax-safearray->list
- (vlax-variant-value
- (vla-get-centroid (vlax-ename->vla-object en))
- )
- )
- )
- (if (> v 0)
- (setq v1 (strcat "+" v1))
- )
- (mkla "土方量2" 4)
- (xyp-Text 5 pt v1)
- ;;(entdel en)
- )
- (princ "\n此区域不封闭! ")
- )
- (CMDLA1)
- )
- (PXYP "SBXTFL (四边形土方量)")[/FONT]
|