申请编制视口比例刷
由于本人不懂编程,但图纸很多,标注图纸比例工作量很大,请高人帮我编制一把视口比例刷,在布局作图中将视口比例刷到图纸标签的图纸比例属性中,并且关联,即视口比例变化图纸标签中的图纸比例也相应变化。如果不能关联,也可以不关联。先谢谢啦如果能实现还是非常有用的,顶一下 还没没看到 本帖最后由 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)
) 可以把所有的视口选择后修改它的特性——标准比例 您好,这个代码帮改下,改好的比例不是小数点吗?
;主要功能是根据视口的比例调整图框的比例属性----
(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)
) danxingpen 发表于 2015-4-22 10:37
要想进行关联的话需要进行反应器的编写,很久没有接触了,先搞个手动的给你用用。
;主要功能是根据视口的 ...
麻烦您改下,刷好的比例要整数,谢谢 您好,我刷了下是小数点,您刷好是什么样的呢? 感谢各位大神分享,学习了!
页:
[1]