求助,VBA编程,计算CAD任意图形的面积的程序。紧急
AutoCAD二次开发,用VBA做一个CAD图形面积计算程序本帖最后由 437271963 于 2016-4-25 11:01 编辑
(defun c:tes1 ( / &mj ent1)
(setvar "cmdecho" 0)
(setvar "blipmode" 0)
(if (null vlax-dump-object) (vl-load-com) );加载VLAX函数
(if (setq ent1 (entsel "\n请选择要计算面积的对象"));选择对象
(progn
(setq ent1 (vlax-ename->vla-object (car ent1)));转换为VLAX对象
(if (vl-catch-all-error-p (setq &mj (vl-catch-all-apply 'vla-get-AREA (list ent1))));检查面积;针对所有对象
(princ "\n这个对象没有面积");如果这个对象没有面积就提示
(princ (strcat "\n对象面积是:" (rtos &mj) "平方毫米"));如果有面积,就显示面积。
)
)
)
(princ)
);以【.lsp】为后缀命名。autolisp加载。 437271963 发表于 2016-4-22 19:36 static/image/common/back.gif
你好,请问这是什么语言,我看不太懂 lxxl 发表于 2016-4-24 10:24 static/image/common/back.gif
你好,请问这是什么语言,我看不太懂
已经加了注释,能够看懂了吧! 437271963 发表于 2016-4-25 10:56 static/image/common/back.gif
已经加了注释,能够看懂了吧!
谢谢你,能够看懂了,但是需要VBA语言的 437271963 发表于 2016-4-25 10:56 static/image/common/back.gif
已经加了注释,能够看懂了吧!
谢谢你,能够看懂了,但是需要VBA语言的 lxxl 发表于 2016-4-25 14:56
谢谢你,能够看懂了,但是需要VBA语言的
autolisp兼容所有版本的cad,纯粹的VBA操作cad本人不会。 面积?首先得是个封闭的图形。。。
那么,每个拐点都是有坐标的,应用坐标解析法1/2[(x1+x2)(y2-y1)+(x2+x3)(y3-y2)....],实际应用时,点选封闭的图形,做个小循环,累加下,面积可得 请看我的头像,谨此代表我的此时此刻的内心深处 我最近也在做这个,我也用的vba,我主要是计算公路工程的挖填方,两条多段线(或者2d polyline)相交,求交点,然后把交点排序,最后在两交点范围内的所有顶点连线形成一个数组,最后生成多段线,求取面积。不过我在最后调试的时候,发现用IntersectWith这个方法,选项为acExtendNone的时候,如果线条复杂了,会有那么一两个点在延伸线上面,导致面积不准确,卡了一周了,没找到解决办法。。。
页:
[1]
2