区域属性行为
我有以下代码来识别块中多段线的面积(混凝土板的轮廓)和用于识别其中一个块/板中孔的多段线累积面积:[代码我继承了逻辑,它确实有效,并将其重构到这个例程中,以标准化输出……这让我询问生成的数字 ;这些don#039;对我来说没有意义;Slabrea变量报告板面积减去孔的累积面积 
此属性的帮助https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2016/ENU/AutoCAD-ActiveX/files/GUID-2D31D8C1-9BEC-48CF-8B73-E2AD38A08D74-htm.html不#039;不要说任何关于这种行为和它的事;这不是我所期望的 ;但软件正在运行
谁能给我解释一下为什么这些闭合多段线区域会从主轮廓多段线的总面积中删除
保罗,你好
您的代码不是VBA one,但您的问题是与代码无关的。SLABREA被评估为块中所有对象中的最大区域。根据您所写的,这些区域(或至少是面积最大的区域)很可能是两个或多个原始区域上的某些预差布尔运算的结果,因此
面积等于该区域中所有对象的组合面积&引用
而holeArea则被评估为属于两个特定层的所有实体的总和,这两个层可能只包含;“简单”;多段线或面域(但圆弧、圆、椭圆、图案填充和样条曲线也适用于面积特性)
您可能希望发布dwg以查看什么';s在it中 谢谢 ;本人';我一直在使用论坛的这一部分,因为尽管我关注的大多数代码都是基于ActiveX/COM的,而不是真正的.NET ;但是,如果我用.NET部分来回答这种问题,我以后会的
那么块中的每个区域都将面积存储为属性,而不是在运行时计算 ;这对我来说似乎有点奇怪,但它不是#039;我第一次觉得AutoCAD有点奇怪;你';重述似乎正是发生的事情 ;将孔添加到楼板区域或单个楼板的代码执行以下操作:
.....
explodedRegion = holeRegion.Explode
'Subtract the hole from the slab outline
'This actually changes the outline of the slab!
floorOutlineRegion.Boolean(AcBooleanType.acSubtraction, holeRegion)
.....
其中FloorRoutlineRegion是每个楼板最终铺设到的整个楼层面积(一些包含孔,或孔成为槽口,一些根本没有)
谢谢,现在说得通了 ;本人';我知道以后要找什么。
页:
[1]