wjj992 发表于 2007-10-9 22:55:00

求助,计算面积的想法

<p>那位老大能开发个按不同的填充图案计算面积,也就是框选填充所有图案后分别计算出各图案的面积(相同图案的总面积,比如说填充了两块地方用了net图案,两个地方用了土壤的图案。框选后计算出分别计算出两块net图案的总面积,两个地方用了土壤图案的总面积和所有图案的总面积),最好还能检查一下有没有漏算那个填充图案。这样对计算面积很方便。</p>

wjj992 发表于 2007-10-11 02:11:00

哇,都没人支持。想法太烂了嘛。很多算面积要分开不同的统计,又需要总的面积。用pl线无法区分啊。

sailorcwx 发表于 2007-10-11 13:47:00

<p>高版本很容易实现,低版本很难实现</p>

wjj992 发表于 2007-10-11 15:40:00

06是大家用的最多的。就以他为版本。这个应该不低吧

wjj992 发表于 2007-10-11 20:09:00

老大,简单就帮忙写一个吧。帮帮忙。

sailorcwx 发表于 2007-10-11 20:40:00


(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)
)

wjj992 发表于 2007-10-11 22:33:00

非常感谢你,能抽出时间来帮助一个素未谋面的人,有了你这个程序,以后算各种绿化和绿化总面积就太方便了。再次感谢你。

wjj992 发表于 2007-10-11 23:39:00

楼上这位老大,((夯实土壤 . 9.21176e+007) (钢筋混凝土 . 2.0e+006) (总面积 . 9.41176e+007)),这个9.2+007平方能不能就标成92平方呢。刚才脑袋没转过弯来,还以为是9.2平方。是不是吹毛求癖了点,如果工作量较大那就算了。这样也很好了。

wjj992 发表于 2007-10-12 00:00:00

<p>拿以前的图框选会出这个(各类填充比较多,也比较碎),以后填充时要注意什么嘛。</p><p>命令: cs<br/>选择对象: 指定对角点: 找到 163 个<br/>选择对象:<br/>Automation 错误。 输入无效</p>

sailorcwx 发表于 2007-10-12 00:04:00

<p>不介意的话把图发上来或者发到我的邮箱我看看<a href="mailto:sailorcwx@163.com">sailorcwx@163.com</a></p><p>还有提醒一下,最后结果列出来的数字单位不一定是平方米,而是CAD的单位面积。<br/>比如1米在cad中表示是1000的话,那它的单位就是平方毫米,如果表示1的话,那它的单位就是平方米</p><p></p>
页: [1] 2 3
查看完整版本: 求助,计算面积的想法