wjj992 发表于 2008-12-10 12:36:00

<p>随便拿一张比较多的填充的图,框选后总会出现</p><p>“命令: cs<br/>选择对象: 指定对角点: 找到 228 个<br/>选择对象:<br/>建模操作错误:<br/>&nbsp;&nbsp;&nbsp;&nbsp; 操作失败。<br/>Automation 错误。 输入无效”</p>

wjj992 发表于 2008-12-10 12:40:00

<p>或者是</p><p>命令: cs<br/>选择对象: 指定对角点: 找到 7 个<br/>选择对象:<br/>Automation 错误。 输入无效</p><p>算不出来,还有能不能加一句命令把算出来的自动删除掉,这样能知道那些计算好了,不会重复</p>

wjj992 发表于 2008-12-13 03:03:00

我检查了一下,那个计算不出来是应为填充图案没面积,cad自带aa也计算不出来,那能不能自动过滤掉这些计算不了的图案,只计算可以计算的图案面积,计算完后可以删除掉可以计算的图案(把要计算的填充拷一份出来就可以了),这样可以看到那些不能计算的地方,再用pl线去求那些没有面积的图案

wjj992 发表于 2008-12-13 03:50:00

而且每个单独的填充图案能不能文字标出每个图案面积

wjj992 发表于 2008-12-13 03:55:00

感觉提这么多要求,工程量挺巨大。不好意思各位

wjj992 发表于 2009-4-10 21:27:00

晓东论坛上有位大侠优化了一下,他把计算不了的图案自动过滤改成红色,其他的照样可以计算,相信这个对植物种植计算很有帮助,下面是调整后的代码
(vl-load-com)
(defun c:mj (/ thisdrawing modelspace cset hname area ll na)
(setq        thisdrawing (vla-get-activedocument (vlax-get-acad-object))
        modelspace(vla-get-modelspace thisdrawing)
)
(if (not (vl-catch-all-error-p
             (setq cset
                  (vl-catch-all-apply
                      'vla-item
                      (list
                        (vla-get-selectionsets
                          thisdrawing
                        )
                        "CURRENT"
                      )
                  )
             )
           )
      )
    (vla-delete cset)
)
(if (ssget '((0 . "hatch")))
    (progn
      (vlax-for        obj (vla-get-activeselectionset thisdrawing)
        (setq hname (vla-get-patternname obj)
              area(vl-catch-all-apply 'vla-get-area (list obj))
        )
        (if (= (type area) 'REAL)
          (if ll
          (if        (setq na (assoc hname ll))
              (setq ll (subst (list hname (+ area (cadr na))) na ll))
              (setq ll (cons (list hname area) ll))
          )
          (setq ll (cons (list hname area) ll))
          )
          (progn
          (vla-put-color obj acred)
          (vla-highlight obj actrue)
          )
        )
      )
    )
)
(princ ll)
(princ)
)
页: 1 2 [3]
查看完整版本: 求助,计算面积的想法