美文网首页AutoCAD宝典
DWG文件名与文件内的图名、图号关联修改

DWG文件名与文件内的图名、图号关联修改

作者: 资深刘刘 | 来源:发表于2019-07-22 16:29 被阅读90次

    著作权归作者所有,任何形式的转载都请联系作者。

      今天有朋友告诉我有的DWG文件很方便,DWG文件名中的图名和图号一修改,文件图框中的图名和图号相应的修改了。虽然二次开发和设计使用AutoCAD较为深入,对AutoCAD比较了解,但还是第一次听说这样的方式。于是要求将文件发过来看看。

      DWG文件名字为“S4-9-02,右港三桥,全桥工程数量表.dwg”,很显然,文件名中包含了图纸的图号、桥梁名称和图纸名称三项内容。打开文件一看,图框内的图名为两行,“右港三桥 全桥工程数量表”,图号为S4-9-02,内容与文件名完全一致。文字为普通的Text文本,与正常无异,唯一不同的是背景有灰色阴影。

      经过深入地研究发现,该文本使用了“字段”,字段里使用了Diesel表达式。图号的Diesel表达式为$(index, 0 ,$(substr,$(getvar,dwgname),1[,$(-,$(strlen,$(getvar,dwgname)),4)]))。看上去很复杂,难以理解,但这里面见到了熟悉的函数名称,如substr、getvar、strlen等,dwgname为文件名变量。经过认真研究Diesel语言的函数,终于完全理解前述表达式。解读如下:

      1、$(getvar,dwgname) 返回DWG的文件名,含文件扩展名“.dwg”4个字符;

      2、$(strlen,string) 返回string的字符长度;

      3、$(substr,string,start[,length]) 返回string的子串,该子串从字符start(编号从1开始)开始,长度为length;

      4、$(-,val1[,val2,…,val9]) 返回从数字val1中减去val2至val9的结果。上述表达式中为减去扩展名".dwg"4个字符长度;

      5、$(index,which,string) 返回以逗号分隔的字符串中的指定成员,which编号从0开始。

      6、$(index, 0 ,$(substr,$(getvar,dwgname),1[,$(-,$(strlen,$(getvar,dwgname)),4)]))这里面的“[]”是可以不需要的,即可以简化为$(index, 0 ,$(substr,$(getvar,dwgname),1,$(-,$(strlen,$(getvar,dwgname)),4)))。

      进一步研究,文件名中逗号分隔的内容有n项(也就是有n-1个逗号)时,除了最后一项需要采用上述表达式去掉文件扩展名外,其他项的表达式可以优化为$(index, i ,$(getvar,dwgname)),其中i为项数(编号从0开始),简单明了。

      在AutoCAD里,字段不仅可以单独插入,还可以在单行文字、多行文字与属性文字的值中插入字段。单独插入字段的话,直接输入Field命令,或者在菜单中选择:插入→字段,编辑Diesel表达式即可。对于单行文字,双击单行文字或输入DDEdit进入编辑状态,右键菜单“插入字段”或Ctrl+F,进入字段编辑界面。对于多行文字,进入MText编辑界面,在“文字格式”窗口点击“插入字段”,进入字段编辑界面。对于属性文字,点击“属性文字”界面“默认”最右侧的按钮,进入字段编辑界面。

      AutoCAD提供了很多预定义的字段可以在DWG中使用,包括打印、对象、日期和时间、图纸集、文档、链接和其他共七类。同时,也提供了自定义的方式。在菜单“文件→图纸特性→自定义”中可以添加自定义属性,在“文档”类别字段中可以引用。如在标准图框文件中定义了“工程名称”属性,值为空,在图框的工程名称栏通过字段引用工程名称;在图纸中,同样定义“工程名称”属性,值为“××至××公路初步设计”,此时无论是直接插入还是外部参照,图框中的工程名称自动改为“××至××公路初步设计”,很是方便。“”字段”和"图纸特性”的自定义或许还有很多其他用途,等待发掘。

    相关文章

      网友评论

        本文标题:DWG文件名与文件内的图名、图号关联修改

        本文链接:https://www.haomeiwen.com/subject/zszilctx.html