如果填充没有面积属性,会出错
本帖最后由 myjping 于 2014-8-11 11:55 编辑用(vla-get-Area (vlax-ename->vla-object (car(entsel))))获取填充的面积时,如果填充没有面积属性,用这一句时会出错,如何避免呢 _$ (vlax-property-available-p myCircle 'area)
T
试过了,填充本身问题,无法避免,估计只能用出错处理。
(defun ss-get-area (ent / area)
(if (= (type ent) 'ENAME) (setq ent (ss-en2x ent)))
(vl-catch-all-apply
'(lambda () (setq area (vla-get-area ent)))
)
area
)
vl-catch-all-apply Area: 237.6616 关注,很早以前写程序就碰到一样的问题,貌似边界拉伸得有凹角面积属性就会有问题,等高手解答。 本帖最后由 xyp1964 于 2014-8-11 13:49 编辑
估计对于特别复杂的填充,只能重建边界后,利用region实体进行相关面域增减处理后求得面积。
这个填充不知道是怎么来的是不是非acad的hatch生成,重建的边界有个十字形,一般用hatch命令填充不出这样的边界,重建边界填充是会有面积属性的。
页:
[1]