lxxl 发表于 2016-4-22 14:08:00

求助,VBA编程,计算CAD任意图形的面积的程序。紧急

二次开发,用VBA做一个CAD图形面积计算程序

437271963 发表于 2016-4-22 19:36:00


(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加载。

lxxl 发表于 2016-4-24 10:24:00


你好,请问这是什么语言,我看不太懂

437271963 发表于 2016-4-25 10:56:00


已经加了注释,能够看懂了吧!

lxxl 发表于 2016-4-25 14:51:00


谢谢你,能够看懂了,但是需要VBA语言的

lxxl 发表于 2016-4-25 14:56:00


谢谢你,能够看懂了,但是需要VBA语言的

437271963 发表于 2016-9-28 06:55:00


autolisp兼容所有版本的cad,纯粹的VBA操作cad本人不会。

xjjq2008 发表于 2016-10-4 11:50:00

面积?首先得是个封闭的图形。。。
那么,每个拐点都是有坐标的,应用坐标解析法1/2[(x1+x2)(y2-y1)+(x2+x3)(y3-y2)....],实际应用时,点选封闭的图形,做个小循环,累加下,面积可得

天罡亮 发表于 2018-5-24 14:51:00

请看我的头像,谨此代表我的此时此刻的内心深处

672277923 发表于 2018-5-26 09:12:00

我最近也在做这个,我也用的vba,我主要是计算公路工程的挖填方,两条多段线(或者2d polyline)相交,求交点,然后把交点排序,最后在两交点范围内的所有顶点连线形成一个数组,最后生成多段线,求取面积。不过我在最后调试的时候,发现用IntersectWith这个方法,选项为acExtendNone的时候,如果线条复杂了,会有那么一两个点在延伸线上面,导致面积不准确,卡了一周了,没找到解决办法。。。
页: [1]
查看完整版本: 求助,VBA编程,计算CAD任意图形的面积的程序。紧急