yansu 发表于 2014-4-2 09:30:21

申请编制视口比例刷

由于本人不懂编程,但图纸很多,标注图纸比例工作量很大,请高人帮我编制一把视口比例刷,在布局作图中将视口比例刷到图纸标签的图纸比例属性中,并且关联,即视口比例变化图纸标签中的图纸比例也相应变化。如果不能关联,也可以不关联。先谢谢啦

zheng209 发表于 2014-7-30 21:39:56

如果能实现还是非常有用的,顶一下

qmqyqj 发表于 2015-3-15 16:32:22

还没没看到

danxingpen 发表于 2015-4-22 10:37:58

本帖最后由 danxingpen 于 2022-4-16 17:02 编辑

;今天闲的逛了一下,改一下
;要想进行关联的话需要进行反应器的编写,很久没有接触了,先搞个手动的给你用用。
;主要功能是根据视口的比例调整图框的比例属性----
(defun c:vtob( / ss ent scale SetAttrib)
(vl-load-com)
(defun SetAttrib(obj sear val / attrs)
                  (setq attrs (vlax-invoke obj 'getattributes))
                  (foreach x attrs
                      (if (= (strcase (vlax-get x 'tagstring)) (strcase sear))(vlax-put x 'textstring val)))
                  )
(princ "\n请选择视口:")
(if (setq ss (ssget ":s" '((0 . "VIEWPORT"))))
    (progn
      (setq ent(entget (ssname ss 0)))
      (setq scale(/ (cdr(assoc 41 ent))(cdr(assoc 45 ent))))
      (setq scale(/ (fix(* scale 1000000)) 1000000.0))
      (princ "\n选择要调整视口比例的图块:")
      (if (setq ss (ssget ":s" '((0 . "INSERT"))))
      (progn
          (SetAttrib (setq ent(vlax-ename->vla-object (ssname ss 0))) "比例" (strcat "1:" (rtos (/ 1.0 scale) 2 0)))
          (vla-update ent)
      )
      )
      
    )
)
(princ)
)

zwf100 发表于 2016-4-5 22:28:02

可以把所有的视口选择后修改它的特性——标准比例

00放飞梦想00 发表于 2022-2-14 12:01:03

您好,这个代码帮改下,改好的比例不是小数点吗?
;主要功能是根据视口的比例调整图框的比例属性----
(defun c:vtob( / ss ent scale SetAttrib)
(vl-load-com)
(defun SetAttrib(obj sear val / attrs)
                  (setq attrs (vlax-invoke obj 'getattributes))
                  (foreach x attrs
                      (if (= (strcase (vlax-get x 'tagstring)) (strcase sear))(vlax-put x 'textstring val)))
                  )
(princ "\n请选择视口:")
(if (setq ss (ssget ":s" '((0 . "VIEWPORT"))))
    (progn
      (setq ent(entget (ssname ss 0)))
      (setq scale(/ (cdr(assoc 41 ent))(cdr(assoc 45 ent))))
      (setq scale(/ (fix(* scale 1000000)) 1000000.0))
      (princ "\n选择要调整视口比例的图块:")
      (if (setq ss (ssget ":s" '((0 . "INSERT"))))
      (progn
          (SetAttrib (setq ent(vlax-ename->vla-object (ssname ss 0))) "比例" (vl-princ-to-string scale))
          (vla-update ent)
      )
      )
      
    )
)
(princ)
)

00放飞梦想00 发表于 2022-2-14 12:02:53

danxingpen 发表于 2015-4-22 10:37
要想进行关联的话需要进行反应器的编写,很久没有接触了,先搞个手动的给你用用。
;主要功能是根据视口的 ...

麻烦您改下,刷好的比例要整数,谢谢

00放飞梦想00 发表于 2022-2-14 12:05:52

您好,我刷了下是小数点,您刷好是什么样的呢?

1993063 发表于 2022-2-16 18:09:44

感谢各位大神分享,学习了!
页: [1]
查看完整版本: 申请编制视口比例刷