查看: 1508|回复: 0

[转帖]修改Hatch比例

[复制链接]
2443725 发表于 2004-6-12 15:23 | 显示全部楼层 |阅读模式
<FONT face=宋体>;;
;;今天在一张规划图(别人绘制的)上画图,图中的填充非常密实,搞的PIII933+256M+TNT2(36M)跑起来都吃力,
;;系统资源被占用绝大部分,临时写了个程序修改填充比例,For 2000+
;;非solid填充在非常密的情况下,尽量用单选的方式
;;
(defun c:hatscl        (/ kw tf en scl ss e oldscl)
  ;;(ea:begin '("osmode"))
  (initget "1 2")
  (setq kw (getkword "\n[1 - 匹配 / 2 - 变比]&lt;2&gt;: "))
  (if (or (not kw) (= kw ""))
    (setq kw "2")
  )
  (if (= kw "1")
    (progn
      (setq tf t)
      (while tf
        (setq en (entsel "\n选择填充: "))
        (if en
          (cond
            ((=        (vla-get-objectname (vlax-ename-&gt;vla-object (car en)))
                "AcDbHatch"
             )
             (setq tf nil)
            )
            (t (princ "\n选择为非填充实体! 重新选择..."))
          )
        )
      )
      (setq scl        (vla-get-patternscale
                  (vlax-ename-&gt;vla-object (car en))
                )
      )
    )
    (setq scl (getreal "\n缩放比例: "))
  )
  (princ "\n选择范围....")
  (setq ss (ssget '((0 . "hatch"))))
  (if ss
    (progn
      (setq n 0)
      (repeat (sslength ss)
        (setq e (vlax-ename-&gt;vla-object (ssname ss n)))
        (setq oldscl (vla-get-patternscale e))
        (vla-put-patternscale
          e
          (if (= kw "1")
            scl
            (* scl oldscl)
          )
        )
        (setq n (1+ n))
      )
    )
  )
;(ea:end)
  (princ)
)</FONT>
您需要登录后才可以回帖 登录 | [加入论坛]

本版积分规则

化工技术网- 赠人玫瑰 手有余香 ( 苏ICP备14035884号 )

快速回复 返回顶部 返回列表