【已解决】Diesel表达式提取文件名
本帖最后由 yangchao2005090 于 2019-5-26 11:17 编辑cad中提取图号和文件名格式:
工程,STX0701-002,平面布置图
表达式分别是
$(index,0,$(substr,$(getvar,dwgname),1[,$(-,$(strlen,$(getvar,dwgname)),4)]))
$(index,1,$(substr,$(getvar,dwgname),1[,$(-,$(strlen,$(getvar,dwgname)),4)]))
$(index,2,$(substr,$(getvar,dwgname),1[,$(-,$(strlen,$(getvar,dwgname)),4)]))
但是院里要求文件名格式:(,改空格,请问上面代码这个改怎么改一下呀)
工程 STX0701-002 平面布置图
不懂diesel,大概推测下楼主的意思,是根据dwg的文件名来读取相关信息,原来的文件名是用逗号分隔的,现在改为空格分隔。
百度了下diesel以及index
dieselAUTOCAD中自定义宏语言。使用的DIESEL可以控制AutoCAD系统变量MODEMACRO的值,也可用来编写菜单宏,但只能用来处理字符串。
index
返回以逗号分隔的字符串中的指定成员。$(index,which,string)假定string参数包含一个或多个由宏参数分隔符字符(逗号)分隔的值。which参数选择这些值中的一个值进行提取,第一项编号为0。此函数通常用于从$(getvar)返回的点坐标中提取X、Y或Z坐标值。使用此函数,应用程序可从USERS1-5系统变量中检索存储为以逗号分隔的字符串的值。
这个index是强制以逗号做分隔符的,建议找一下diesel里面有没有替换字符的函数,先把空格换成逗号,然后再用原来的表达式。
lostbalance 发表于 2019-5-24 09:12
不懂diesel,大概推测下楼主的意思,是根据dwg的文件名来读取相关信息,原来的文件名是用逗号分隔的,现在 ...
谢谢,这个不是很懂
(setq fn(vl-filename-base (getvar 'dwgname))
lst (xyp-Str2Lst (xyp-String-Subst " " "," fn))
) 本帖最后由 1291500406 于 2020-7-27 07:55 编辑
字段表达式挺难
1291500406 发表于 2019-5-24 23:22
http://www.fourmilab.ch/diesel/
http://bbs.mjtd.com/thread-179597-1-1.html
这个可以帮忙看一下吗
页:
[1]