求助,计算面积的想法
<p>那位老大能开发个按不同的填充图案计算面积,也就是框选填充所有图案后分别计算出各图案的面积(相同图案的总面积,比如说填充了两块地方用了net图案,两个地方用了土壤的图案。框选后计算出分别计算出两块net图案的总面积,两个地方用了土壤图案的总面积和所有图案的总面积),最好还能检查一下有没有漏算那个填充图案。这样对计算面积很方便。</p> 哇,都没人支持。想法太烂了嘛。很多算面积要分开不同的统计,又需要总的面积。用pl线无法区分啊。 <p>高版本很容易实现,低版本很难实现</p> 06是大家用的最多的。就以他为版本。这个应该不低吧 老大,简单就帮忙写一个吧。帮帮忙。(defun c:cs(/ YH_AREA YH_ENT YH_HACOUNT YH_HAREA YH_HNAME YH_INDEX YH_OBJ YH_SLT)
(vl-load-com)
(setq YH_slt (ssget '((0 . "HATCH"))))
(if YH_slt
(progn
(setq YH_area '()
YH_index 0
)
(repeat (sslength YH_slt)
(setq YH_ent (ssname YH_slt YH_index)
YH_obj (vlax-ename->vla-object YH_ent)
YH_hname (vla-get-PatternName YH_obj)
YH_harea (vla-get-area YH_obj)
YH_hacount (assoc YH_hname YH_area)
)
(if YH_hacount
(setq YH_area (subst (cons YH_hname (+ (cdr YH_hacount) YH_harea)) YH_hacount YH_area))
(setq YH_area (append YH_area (list (cons YH_hname YH_harea))))
)
(redraw YH_ent 3)
(setq YH_index (1+ YH_index))
)
(princ (append YH_area (list (cons "总面积" (apply '+ (mapcar 'cdr YH_area))))))
)
)
(princ)
)
非常感谢你,能抽出时间来帮助一个素未谋面的人,有了你这个程序,以后算各种绿化和绿化总面积就太方便了。再次感谢你。 楼上这位老大,((夯实土壤 . 9.21176e+007) (钢筋混凝土 . 2.0e+006) (总面积 . 9.41176e+007)),这个9.2+007平方能不能就标成92平方呢。刚才脑袋没转过弯来,还以为是9.2平方。是不是吹毛求癖了点,如果工作量较大那就算了。这样也很好了。 <p>拿以前的图框选会出这个(各类填充比较多,也比较碎),以后填充时要注意什么嘛。</p><p>命令: cs<br/>选择对象: 指定对角点: 找到 163 个<br/>选择对象:<br/>Automation 错误。 输入无效</p> <p>不介意的话把图发上来或者发到我的邮箱我看看<a href="mailto:sailorcwx@163.com">sailorcwx@163.com</a></p><p>还有提醒一下,最后结果列出来的数字单位不一定是平方米,而是CAD的单位面积。<br/>比如1米在cad中表示是1000的话,那它的单位就是平方毫米,如果表示1的话,那它的单位就是平方米</p><p></p>