明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3260|回复: 11

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

[复制链接]
发表于 2016-4-22 14:08:25 | 显示全部楼层 |阅读模式
AutoCAD二次开发,用VBA做一个CAD图形面积计算程序
发表于 2016-4-22 19:36:25 | 显示全部楼层
本帖最后由 437271963 于 2016-4-25 11:01 编辑
  1. (defun c:tes1 ( / &mj ent1)
  2. (setvar "cmdecho" 0)
  3. (setvar "blipmode" 0)
  4. (if (null vlax-dump-object) (vl-load-com) );加载VLAX函数
  5. (if (setq ent1 (entsel "\n请选择要计算面积的对象"));选择对象
  6.   (progn
  7.    (setq ent1 (vlax-ename->vla-object (car ent1)));转换为VLAX对象
  8.    (if (vl-catch-all-error-p (setq &mj (vl-catch-all-apply 'vla-get-AREA (list ent1))));检查面积;针对所有对象
  9.     (princ "\n这个对象没有面积");如果这个对象没有面积就提示
  10.     (princ (strcat "\n对象面积是:" (rtos &mj) "平方毫米"));如果有面积,就显示面积。
  11.    )
  12.   )
  13. )
  14. (princ)
  15. );以【.lsp】为后缀命名。autolisp加载。
 楼主| 发表于 2016-4-24 10:24:32 | 显示全部楼层
437271963 发表于 2016-4-22 19:36

你好,请问这是什么语言,我看不太懂[em0]
发表于 2016-4-25 10:56:15 | 显示全部楼层
lxxl 发表于 2016-4-24 10:24
你好,请问这是什么语言,我看不太懂

已经加了注释,能够看懂了吧!
 楼主| 发表于 2016-4-25 14:51:42 | 显示全部楼层
437271963 发表于 2016-4-25 10:56
已经加了注释,能够看懂了吧!

谢谢你,能够看懂了,但是需要VBA语言的
 楼主| 发表于 2016-4-25 14:56:38 | 显示全部楼层
437271963 发表于 2016-4-25 10:56
已经加了注释,能够看懂了吧!

谢谢你,能够看懂了,但是需要VBA语言的
发表于 2016-9-28 06:55:47 | 显示全部楼层
lxxl 发表于 2016-4-25 14:56
谢谢你,能够看懂了,但是需要VBA语言的

autolisp兼容所有版本的cad,纯粹的VBA操作cad本人不会。
发表于 2016-10-4 11:50:36 | 显示全部楼层
面积?首先得是个封闭的图形。。。
那么,每个拐点都是有坐标的,应用坐标解析法1/2[(x1+x2)(y2-y1)+(x2+x3)(y3-y2)....],实际应用时,点选封闭的图形,做个小循环,累加下,面积可得
发表于 2018-5-24 14:51:00 | 显示全部楼层
请看我的头像,谨此代表我的此时此刻的内心深处
发表于 2018-5-26 09:12:10 | 显示全部楼层
我最近也在做这个,我也用的vba,我主要是计算公路工程的挖填方,两条多段线(或者2d polyline)相交,求交点,然后把交点排序,最后在两交点范围内的所有顶点连线形成一个数组,最后生成多段线,求取面积。不过我在最后调试的时候,发现用IntersectWith这个方法,选项为acExtendNone的时候,如果线条复杂了,会有那么一两个点在延伸线上面,导致面积不准确,卡了一周了,没找到解决办法。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 06:56 , Processed in 0.166512 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表