明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2189|回复: 10

[提问] Diesel 表达式求助!给块加入字段,要求表达式为文件名的前8位文字。

[复制链接]
发表于 2020-9-20 12:56:27 | 显示全部楼层 |阅读模式
10明经币
本帖最后由 cheefeel 于 2020-9-20 13:04 编辑

Diesel 表达式求助,情况如下:通常我工作时为一个项目会创建一个CAD文件,
这个CAD文件的命名规则为【项目编号】+【项目名称】,
例如:X0X0X0X0上海李总别墅
那么,就需要图框的块能够自动填入【项目编号】和【项目名称】,
自带的字段类别中只有文件名%<\AcVar Filename \f "%fn2">%这一种表达式,不足以满足要求。
对于块属性定义插入字段时如何用Diesel 表达式来表达
【项目编号】=文件名的前8位
【项目名称】=文件名第9位开始完后的部分




最佳答案

查看完整内容

你还可以这么写:$(substr,$(getvar,"dwgname"),1,8) 完整的字段代码:%% 从第9位开始:%% 去掉后缀:%% 去后缀更简单的写法,你试下:%%

点评

去后缀更简单的写法,你试下:%<\AcDiesel $(substr,$(getvar,"dwgname") ,9) \f "%fn2">%  发表于 2020-9-24 13:26
发表于 2020-9-20 12:56:28 | 显示全部楼层
本帖最后由 gaics 于 2020-9-24 13:26 编辑
cheefeel 发表于 2020-9-24 09:44
经测试,结果如下图↓
点击确定后自动转译为当前文件名,无法保留完整的表达式。
也就是说此公式为一次 ...

你还可以这么写:$(substr,$(getvar,"dwgname"),1,8)
完整的字段代码:%<\AcDiesel $(substr,$(getvar,"dwgname"),1,8)>%

从第9位开始:%<\AcDiesel $(substr,$(getvar,"dwgname"),9)>%
去掉后缀:%<\AcDiesel $(substr,$(getvar,"dwgname"),9,$(-,$(-,$(strlen,$(getvar,"dwgname")),4),8))>%

去后缀更简单的写法,你试下:%<\AcDiesel $(substr,$(getvar,"dwgname") ,9) \f "%fn2">%

点评

非常感谢你的热心帮助!给我日常工作带来了极大的帮助。  发表于 2020-9-24 12:51

评分

参与人数 1明经币 +1 收起 理由
xvjiex + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2020-9-21 09:54:11 | 显示全部楼层
这个应该不难吧?难道Diesel 表达式并不具备这样丰富的功能?
回复

使用道具 举报

 楼主| 发表于 2020-9-22 15:31:12 | 显示全部楼层
真的没有这么功能吗?事不过三,下次不顶贴了。
回复

使用道具 举报

发表于 2020-9-23 16:22:57 | 显示全部楼层
本帖最后由 gaics 于 2020-9-23 16:25 编辑

【项目编号】=$(substr,%<\AcVar Filename \f “%fn2”>%,1,8)
【项目名称】=$(substr,%<\AcVar Filename \f “%fn2”>%,9)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2020-9-24 09:44:00 | 显示全部楼层
本帖最后由 cheefeel 于 2020-9-24 10:03 编辑
gaics 发表于 2020-9-23 16:22
【项目编号】=$(substr,%%,1,8)
【项目名称】=$(substr,%%,9)

经测试,结果如下图↓
点击确定后自动转译为当前文件名,无法保留完整的表达式。
也就是说此公式为一次性静态直译了,并不能的根据文件名的变化而动态更新。








本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

 楼主| 发表于 2020-9-24 14:27:55 | 显示全部楼层
本帖最后由 cheefeel 于 2020-9-24 14:30 编辑
gaics 发表于 2020-9-20 12:56
你还可以这么写:$(substr,$(getvar,"dwgname"),1,8)
完整的字段代码:%%

%<\AcDiesel $(substr,$(getvar,"dwgname") ,9) \f "%fn2">%
实测这个表达式↑一样有用,相对简单了很多。
应该是借鉴了CAD自带的这个去后缀名表达式↓吧。
%<\AcVar Filename \f "%fn2">%




纯小白简单理解了一下。

回复

使用道具 举报

发表于 2020-9-24 15:01:34 | 显示全部楼层
cheefeel 发表于 2020-9-24 14:27
%%
实测这个表达式↑一样有用,相对简单了很多。
应该是借鉴了CAD自带的这个去后缀名表达式↓吧。

是的。你可以多试试字段里的功能,也许还有新发现。

点评

嗯嗯,最近在整理一些动态块。对字段合理的应该用,对于日常工作效率的提高宝珠太大了。我得好好多研究一下。  发表于 2020-9-24 15:07
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-6-26 10:31 , Processed in 0.200753 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表