你能解释一下这个代码吗。删除4个字符和8个数字之间有什么关系?
我认为是文件扩展名和点和3个字符,正确吗?
正如Kerry所建议的,为了理解代码,最好评估每个表达式(从最内部的表达式向外开始),查看和了解每个表达式返回的值,以及该返回值如何传递给另一个表达式。
由于许多DIESEL表达式具有AutoLISP等价物,您可以评估等效的AutoLISP表达式(正如Kerry在上面建议的那样),或者,您可以使用
menucmd
函数直接评估DIESEL表达式,例如:
- _$ (menucmd "m=$(getvar,dwgname)")
- "Drawing1-R00.dwg"
- _$ (menucmd "m=$(strlen,$(getvar,dwgname))")
- "16"
- _$ (menucmd "m=$(-,$(strlen,$(getvar,dwgname)),8)")
- "8"
- _$ (menucmd "m=$(substr,$(getvar,dwgname),1,$(-,$(strlen,$(getvar,dwgname)),8))")
- "Drawing1"
关于减去8个字符以从绘图名称中删除4个字符,关键点
DWGNAME
系统变量将返回绘图文件名
,包括文件扩展名
-因此DIESEL表达式正在删除修订和文件扩展名:
"-R00.dwg"
=8个字符。
李 |