属性块的图框自动填写比例尺,请大侠给建议
本帖最后由 lidaxiu 于 2011-11-25 17:16 编辑想编写属性块的图框自动填写比例尺,请大侠给建议
就是画完图纸后框选 图框,自动改写图框比例
比如图框是1:2的,比例项就填写1:2
比如图框是1:5的,比例项就填写1:5
学习,学无止境,感谢明经。 字符串,就可以 应该和自动编写页码的代码意思差不多 图框的比例可以算出来
以前做程序时参考过类似代码:(defun C:kbl (/ xscale yscale zscale
blockname sourceblkobj targetblkobj
blklist ss i n
)
(setq sourceblkobj (entsel "\n请选择块,查看比例:"))
(if (null sourceblkobj) (exit))
(setq sourceblkobj (vlax-ename->vla-object (car sourceblkobj)))
(if (/= "AcDbBlockReference" (vla-get-objectname sourceblkobj))
(progn
(princ
"\nThe object you selected was not block reference. Application terminated."
)
(exit)
)
)
(setq blockname (vla-get-name sourceblkobj)
xscale (vla-get-xscalefactor sourceblkobj)
yscale (vla-get-yscalefactor sourceblkobj)
zscale (vla-get-zscalefactor sourceblkobj)
)
)
,感觉主要难点是比例是属性文字,并且随块比例大小变化 lidaxiu 发表于 2011-11-26 00:23 static/image/common/back.gif
图框的比例可以算出来
以前做程序时参考过类似代码:(defun C:kbl (/ xscale yscale zscale
blockname s ...
这个太简单了。你把你的标题栏dwg文件贴出来。每个公司的定义是不一样的。 本帖最后由 lidaxiu 于 2011-11-26 23:18 编辑
谢谢大师出手相助!!!上面已经把我公司的图框上传,我只想做完图纸后,改图框的比例尺时简单些! 其实我倒有另外一种思路,就是图框全部放到布局里边,标注也在布局里边,这样所有的图框和标注都是1:1的,但是图纸还是有比例的。应该还是好解决的。 才看到“修改块中文字属性值的程序”的贴子里,里面有相似内容,可以适当改下程序就能完成该需求了
;替换图块属性 ZZXXQQ 2007.10.28
(DEFUN CHATTRIB (OLDATT NEWATT)
(IF (AND (PRINC "\nSelect Block with attribute 选择带属性图块 :")
(SETQ SS (SSGET '((0 . "INSERT") (66 . 1))))) (PROGN
(SETQ I -1)
(REPEAT (SSLENGTH SS)
(SETQ ENT (ENTGET (SSNAME SS (SETQ I (1+ I))))
ENT1 ENT)
(WHILE (= (CDR (ASSOC 0 (SETQ ENT1 (ENTGET (ENTNEXT (CDR (ASSOC -1 ENT1))))))) "ATTRIB")
(IF (= (CDR (ASSOC 1 ENT1)) OLDATT) (PROGN
(SETQ ENT1 (SUBST (CONS 1 NEWATT) (ASSOC 1 ENT1) ENT1))
(ENTMOD ENT1)
(ENTMOD ENT)
))
)
)
))
(PRINC)
)
(DEFUN C:A ()
(CHATTRIB "1:1" "1:kbl")
(PRINC)
) 用反应器解决会好些 楼上的大侠,反应器程序在哪里,本站里有么?
页:
[1]
2