DIESEL: substr右起4个字符
此线程的连续http://www.theswamp.org/index.php?topic=48081.0;allCan substr从右到左工作。
我们在文件名末尾添加了一个版本(R00, R01,...)。但不应该出现在dwg标题中。
文件名:3120B01-D-A101-R00
dwg标题:3120B01-D-A101
我创建了这个DIESEL Expresion,
$(substr,$(getvar,DWGNAME),1,14)
但并不是每次文件名都是18个字符,所以有没有办法从右开始substr 4个字符
**** Hidden Message ***** 尝试:
$(substr,$(getvar,dwgname),1,$(-,$(strlen,$(getvar,dwgname)),8))
工作完美,谢谢李
有链接解释柴油。 http://www.fourmilab.ch/diesel/
http://www.crlf.de/Dokumente/Diesel/Diesel.html
感谢曲柄
您能解释一下这个代码吗?删除4个字符和数字8之间有什么关系?
我认为这是文件扩展名和点和3个字符,是正确的吗? 在命令行中,什么是
(getvar 'dwgname)
(strlen (getvar 'dwgname))
(strlen "-R00.dwg")
( -(strlen (getvar 'dwgname )) 8)
(substr
(getvar 'dwgname )
1
( -(strlen (getvar 'dwgname )) 8)
)
评估起来真的很简单。
你能解释一下这个代码吗。删除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个字符。
李 谢谢 Kerry
谢谢 Lee
OK,如何找出 DIESEL 和 Lisp 之间的常见表达方式?
翻译错误代码(429):请求 QPS 超过限制。
页:
[1]
2