乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 175|回复: 12

DIESEL: substr右起4个字符

[复制链接]

98

主题

339

帖子

7

银币

中流砥柱

Rank: 25

铜币
731
发表于 2014-11-1 12:48:15 | 显示全部楼层 |阅读模式
此线程的连续http://www.theswamp.org/index.php?topic=48081.0;all
Can substr从右到左工作。
我们在文件名末尾添加了一个版本(R00, R01,...)。但不应该出现在dwg标题中。
文件名:3120B01-D-A101-R00
dwg标题:3120B01-D-A101
我创建了这个DIESEL Expresion,
  1. $(substr,$(getvar,DWGNAME),1,14)

但并不是每次文件名都是18个字符,所以有没有办法从右开始substr 4个字符

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

98

主题

339

帖子

7

银币

中流砥柱

Rank: 25

铜币
731
发表于 2014-11-1 13:52:34 | 显示全部楼层
尝试:
  1. $(substr,$(getvar,dwgname),1,$(-,$(strlen,$(getvar,dwgname)),8))

回复

使用道具 举报

8

主题

241

帖子

23

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
257
发表于 2014-11-1 14:30:21 | 显示全部楼层
工作完美,谢谢李
有链接解释柴油。
回复

使用道具 举报

98

主题

339

帖子

7

银币

中流砥柱

Rank: 25

铜币
731
发表于 2014-11-1 15:03:31 | 显示全部楼层
http://www.fourmilab.ch/diesel/
http://www.crlf.de/Dokumente/Diesel/Diesel.html
回复

使用道具 举报

98

主题

339

帖子

7

银币

中流砥柱

Rank: 25

铜币
731
发表于 2014-11-2 05:52:51 | 显示全部楼层

感谢曲柄
回复

使用道具 举报

116

主题

996

帖子

9

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1466
发表于 2014-11-4 03:38:14 | 显示全部楼层

您能解释一下这个代码吗?删除4个字符和数字8之间有什么关系?
我认为这是文件扩展名和点和3个字符,是正确的吗?
回复

使用道具 举报

98

主题

339

帖子

7

银币

中流砥柱

Rank: 25

铜币
731
发表于 2014-11-4 04:00:29 | 显示全部楼层
在命令行中,什么是
  1. (getvar 'dwgname)
  2. (strlen (getvar 'dwgname))
  3. (strlen "-R00.dwg")
  4. ( -  (strlen (getvar 'dwgname )) 8)
  5. (substr
  6.    (getvar 'dwgname )
  7.    1
  8.    ( -  (strlen (getvar 'dwgname )) 8)
  9. )

评估起来真的很简单。
回复

使用道具 举报

61

主题

792

帖子

35

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1015
发表于 2014-11-4 04:44:54 | 显示全部楼层

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

关于减去8个字符以从绘图名称中删除4个字符,关键点
DWGNAME
系统变量将返回绘图文件名
,包括文件扩展名
-因此DIESEL表达式正在删除修订和文件扩展名:
"-R00.dwg"
=8个字符。
回复

使用道具 举报

98

主题

339

帖子

7

银币

中流砥柱

Rank: 25

铜币
731
发表于 2014-11-4 08:10:12 | 显示全部楼层
谢谢 Kerry
谢谢 Lee
OK,如何找出 DIESEL 和 Lisp 之间的常见表达方式?
回复

使用道具 举报

194

主题

592

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1380
发表于 2014-11-4 08:46:06 | 显示全部楼层
翻译错误代码(429):请求 QPS 超过限制。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 00:25 , Processed in 0.880700 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表