UG爱好者

标题: 用表达式提取文件名,自动填写图号和名称 [打印本页]

作者: thinkon007    时间: 2016-8-30 09:23
标题: 用表达式提取文件名,自动填写图号和名称
首先,感谢唐工,以下的分享,来自于唐工的工程图视频教程的启发。
我是在小公司做设备的开发,文件命名都是采用"图号+空格+名称”的形式,例如 model 零件1.prt
在设计中,文件名的更改非常频繁,工程图的图号和名称的填写就成为了一个繁琐而且容易出错的工作
直接上图

上面是每一步的过程,表达式综合起来如下:
No=ug_setpartattrvalue("DB_PART_NO",First(splitstring(replaceString(ug_askcurrentworkpart(),".prt","")," ")))
Name=ug_setpartattrvalue("DB_PART_NAME",Second(splitstring(replaceString(ug_askcurrentworkpart(),".prt","")," ")))

只要导入这个表达式,就可以自动填写图号和名称属性了

在变更文件名之后,图号和名称的属性并不会自动更新,要进行一下操作:

但是,如果你的装配比较复杂,这样更新速度会很慢很慢很慢
建议大家录制一个宏,然后设置一个快捷键,就可以做到一键自动更新图号和名称属性了,
注意,如果当前已经有表达式了,重新导入表达式的时候,还是不会自动更新的
所以在录制宏的时候,要先导入表达式,然后删除表达式,然后再次导入表达式,这样就更新了

作者: 阿弥陀了个佛    时间: 2016-8-30 11:16
很实用,支持一下
作者: 思维空间    时间: 2016-11-5 09:51
师兄,我刚学UG可以交流一下吗?我的软件怎么看不到 DB_PART_NAME这个属性?
作者: 思维空间    时间: 2016-11-7 08:57
这个表达式怎么链接的,老大,我才学,能录个视频吗?
作者: 爱醇香    时间: 2016-11-7 13:14
参与/回复主题参与/回复主题参与/回复主题参与/回复主题是正确的

作者: lensum*    时间: 2016-11-10 14:58
高手。
作者: aaguiyan    时间: 2016-11-13 16:07
学了一招,感谢thinkon007
作者: thinkon007    时间: 2016-12-7 10:30
思维空间 发表于 2016-11-7 08:57
这个表达式怎么链接的,老大,我才学,能录个视频吗?

直接写入表达式就可以啊   自动读取文件名  并且分割开来 赋值给图号和名称
作者: tiger2002*    时间: 2016-12-13 09:54
方法不错 比较麻烦 其实NX是可以把这个问题解决的 软件内部的一个信息关联 他们怎么不做呢?搞不懂 NX的工程图用起来效率真吧高 或许是我没学会吧 但是和其他软件比起来 的确是复杂了
作者: thinkon007    时间: 2017-7-3 11:59
tiger2002 发表于 2016-12-13 09:54
方法不错 比较麻烦 其实NX是可以把这个问题解决的 软件内部的一个信息关联 他们怎么不做呢?搞不懂 NX的工 ...

内部的一个信息关联,具体怎么操作?请指点...
作者: iicoou    时间: 2017-8-3 15:13
太厉害了,这个找了很久了
作者: thinkon007    时间: 2017-8-18 15:05
iicoou 发表于 2017-8-3 15:13
太厉害了,这个找了很久了

呵呵  相互学习
作者: UGjack    时间: 2018-1-10 13:40
可以可以,灰常好用
作者: thinkon007    时间: 2018-2-25 00:25
UGjack 发表于 2018-1-10 13:40
可以可以,灰常好用

相互学习
作者: 白天睡得香    时间: 2018-3-11 21:46
这个真的是牛逼了!请问要懂什么,才能达到你这个水平啊!!!
作者: design*    时间: 2018-5-4 11:24
方法是好方法,可惜更新比较慢,
作者: zdm8158    时间: 2018-5-7 09:05
不错的方法,顶起!!!
作者: baoqingyun1990    时间: 2018-9-20 11:30
楼主经过改良把“空格”改为“-”也是可以用的,现在主要问题是我在外部改名字,它根本没反应,我只好把原来表达式删除在导进来,然后就好了
作者: baoqingyun1990    时间: 2018-9-20 11:32
而且有没有一种方式 让它自己更新
作者: xiao_yan    时间: 2018-11-3 10:42
谢谢楼主的分享,太有用了,谢谢!
作者: 123.321123    时间: 2018-11-5 09:37
666666
作者: 航宇工作室    时间: 2018-12-10 12:53
能不能写个过程,我输入e=Second(c)时输不进去,报警。
作者: 航宇工作室    时间: 2018-12-10 14:15
这个问题解决了,谢谢。

No=ug_setpartattrvalue("DB_PART_NO",First(splitstring(replaceString(ug_askcurrentworkpart(),".prt","")," ")))
Name=ug_setpartattrvalue("DB_PART_NAME",Second(splitstring(replaceString(ug_askcurrentworkpart(),".prt","")," ")))
还有这个综合起来的表达式类型是什么。
作者: 260225476    时间: 2019-1-4 09:03
大大所多
作者: xinkqd    时间: 2019-3-7 09:06
感谢楼主分享了,每次修改文件名后都要更新零件属性,有了这个方法方便了好多
作者: 369369963    时间: 2019-5-9 09:47
厉害,支持一下
作者: w_y8266*    时间: 2019-5-10 09:31
不需这么麻烦的
作者: 四海晴空    时间: 2019-5-10 12:38
w_y8266* 发表于 2019-5-10 09:31
不需这么麻烦的

兄弟有啥妙招么?
作者: gxf880    时间: 2019-5-16 22:46
谢谢分享
作者: 雨夜月魂*    时间: 2019-7-11 08:25
直接做到属性里,改名字后就可以更新了
作者: YANQH80    时间: 2019-7-11 08:53
相互学习,共同进步!
作者: 火皇月神    时间: 2019-7-19 18:05
大师详细讲下

1563530619(1).png (44.04 KB, 下载次数: 135)

1563530619(1).png

作者: 飞使    时间: 2019-7-31 14:56
火皇月神 发表于 2019-7-19 18:05
大师详细讲下

貌似文件名没有空格
作者: 火皇月神    时间: 2019-7-31 18:59
飞使 发表于 2019-7-31 14:56
貌似文件名没有空格

是的,没有空格,已经解决了,谢谢
作者: Z5003011    时间: 2019-9-21 00:43
用了以下網站內容設定自动填写图号和名称,圖框跟BOM表都沒問題
但組合件零件明細表屬性怎設定都沒辦法
請問各位高手有決解方法嗎?
http://www.ugsnx.com/forum.php?m ... hlight=%CD%BC%BA%C5
作者: Z5003011    时间: 2019-9-21 00:44
用了以下網站內容設定自动填写图号和名称,圖框跟BOM表都沒問題
但組合件零件明細表屬性怎設定都沒辦法
請問各位高手有決解方法嗎?
http://www.ugsnx.com/forum.php?m ... hlight=%CD%BC%BA%C5
作者: thinkon007    时间: 2020-1-29 10:38
飞使 发表于 2019-7-31 14:56
貌似文件名没有空格

是的 要用空格  或者其他分隔符
作者: thinkon007    时间: 2020-1-29 10:39
思维空间 发表于 2016-11-5 09:51
师兄,我刚学UG可以交流一下吗?我的软件怎么看不到 DB_PART_NAME这个属性?

自己定义就好
作者: 春风轻轻吹    时间: 2020-2-9 02:18
方法是好方法,可惜更新比较慢,
作者: a175367864*    时间: 2020-2-19 22:21
谢谢了,学习到了,找了好久,关键是没搜索到相关关键词所以一直没看到这个帖子,受教了。终于找到相关函数了,最终实现了图样代号+名称的文件命名法时,图样代号和名称属性的自动填写,美中不足的就是属性更新需手动。不过发现一个特点,就是在装配中将所有零件名称改到位了,在装配体中/更新以获取外部链接,则所有零件的属性就都一次性更新了。
作者: w_y8266*    时间: 2020-5-29 11:05
有更简单的方法啊,为什么要这么麻烦
作者: 缘水翔*    时间: 2020-8-8 10:33
w_y8266* 发表于 2020-5-29 11:05
有更简单的方法啊,为什么要这么麻烦

请大神,展示您的技艺。小弟观摩学习一下。
作者: andyoa    时间: 2020-8-23 15:17
点个赞,值得学习!
作者: 雨夜月魂*    时间: 2020-9-4 11:43
我现在用这个方法只能更新当前文件的名称跟图号,装配体内部的改不了,还要单独打开零部件 一个一个点更新 ,不知道是怎么回事
作者: 设计创奇    时间: 2020-9-9 15:07
看看......
作者: wcy0236    时间: 2021-1-6 12:05
baoqingyun1990 发表于 2018-9-20 11:32
而且有没有一种方式 让它自己更新

你用表格输入<W@$SH_PART_NAME>
就可以

作者: lin2431    时间: 2021-2-2 17:51
1112455
作者: imutgz    时间: 2021-7-13 00:01

作者: zhufulin*    时间: 2021-10-25 19:02
大神这个操作可不可以不用加到单个零件的表达式里,而是直接加到零件明细表里自己筛选,求回复
作者: jzybljh    时间: 2022-1-10 17:41
我用的UGNX1899版本软件,没有splitstring这个函数,请问什么问题?
作者: cuanh    时间: 2022-3-14 15:23
装配里面新增加一个零件,想单独更新以获取外部更改,有没有什么办法,每次都要更新已打开的所有零件,费时间。
作者: 思维空间    时间: 2022-5-26 08:09
有没有哪个插件可以做到呢?我也是这种方式命名方式,但我用的是solid edge
作者: wulishan*    时间: 2022-7-5 23:11
jzybljh 发表于 2022-1-10 17:41
我用的UGNX1899版本软件,没有splitstring这个函数,请问什么问题?

我用的2007 也是找不到 请问兄弟解决了吗
作者: wulishan*    时间: 2022-7-6 10:21
wulishan* 发表于 2022-7-5 23:11
我用的2007 也是找不到 请问兄弟解决了吗

终于搞出来了 直接用这一句就可以提取到对应的First(splitstring(replaceString(ug_askcurrentworkpart(),".prt","")," "))
这样用splitstring不会报错
感谢楼主
作者: 设计时空    时间: 2022-8-13 08:01
楼上的朋友可以讲下详细操作步骤吗?谢谢
作者: cocosky    时间: 2022-10-11 16:32
a175367864* 发表于 2020-2-19 22:21
谢谢了,学习到了,找了好久,关键是没搜索到相关关键词所以一直没看到这个帖子,受教了。终于找到相关函数 ...

烦就烦在所以的都给更新,当你装配体大很了,公式关联多了,又或者高版本用了结构设计,更新起来就哪才叫一个恼火,还不如手动输入属性快。
如果能窗口打开零件,要更新那个就更新那个就好了,可惜不行,他全都给你更新,连抑制掉的都要给你更新,除非抑制掉退出软件在打开,但是这样操作就更加不方便了。

作者: 夏季里那丝清凉    时间: 2022-10-18 11:49
工程图标题栏获取文件名和图号,我还是不喜欢用这种表达式的方式,缺点很明显~~~
还是用西门子给的属性吧,<W@$SH_PART_NAME>和<W@$SH_MASTER_PART_NAME>。其中<W@$SH_MASTER_PART_NAME>是在主模型出图时显示(急新建工程图文档调用主模型文件)。用这两个属性,主模型文件名作为零件名称,工程图文件名作为图号
作者: 伊甸园里的狼    时间: 2022-11-3 14:50
强烈建议楼主出个视频
作者: wang_jp    时间: 2022-11-3 16:05
这个厉害了。。。。
作者: ctma1007    时间: 2022-11-13 10:59
我一开始没摸透楼主的方法,理解后做了一点自己尝试,效果还行。谢谢楼主,
1、文件名统一命名为:图号-名称  (系统的3D建模模板没有空格符,但是有"-"符)
2、进入系统模板文件,修改初始的3D建模模板,将表达式写入并保存。(如果系统安装在C盘,需要转存出来后改好,再替换回去)
取得效果:
1、任意建模,表达式已提前写入模型文件。
2、在装配导航器对零件进行外部更新,整个体系的名称都会更新,大文件未尝试,测试几个·小文件速度还可以。
3、制图内明细栏表现正常,外部引用库零件,显示正常。
作者: 詹妮弗-1997    时间: 2023-3-10 14:32
很实用哦,感谢
作者: stanmy    时间: 2023-4-13 00:03
属性不知如何添加求指教

微信图片_20230413000042.png (45.46 KB, 下载次数: 167)

微信图片_20230413000042.png

作者: gavin9    时间: 2023-5-6 14:14
本帖最后由 gavin9 于 2023-5-6 14:19 编辑


作者: 想飞的小小鱼    时间: 2023-5-6 14:20
gavin9 发表于 2023-5-6 14:14
我也碰到了这个问题:实际图号和名称之间是空格,但是模板文件里没有空格,不知道怎么才能把公式保存到模 ...

这个问题可以解决:先把模板文件改为带空格的形式,加入公式后再改回模板文件名,但不要更新,模板就完成了
作者: gavin9    时间: 2023-5-6 14:44
a175367864* 发表于 2020-2-19 22:21
谢谢了,学习到了,找了好久,关键是没搜索到相关关键词所以一直没看到这个帖子,受教了。终于找到相关函数 ...

我试了一下,装配体内点击更新,并不能更新所有零件。
作者: gavin9    时间: 2023-5-6 15:07
cocosky 发表于 2022-10-11 16:32
烦就烦在所以的都给更新,当你装配体大很了,公式关联多了,又或者高版本用了结构设计,更新起来就哪才叫 ...

我试着,怎么只能一个一个更新,不是全都更新呀
作者: 东B    时间: 2023-5-16 15:21
雨夜月魂* 发表于 2020-9-4 11:43
我现在用这个方法只能更新当前文件的名称跟图号,装配体内部的改不了,还要单独打开零部件 一个一个点更新  ...

目前应该没有,只能一个个打开,一个个更改
作者: 东B    时间: 2023-5-16 15:22
cocosky 发表于 2022-10-11 16:32
烦就烦在所以的都给更新,当你装配体大很了,公式关联多了,又或者高版本用了结构设计,更新起来就哪才叫 ...

哈哈,是的,有没有办法解决啊
作者: 毅勇123    时间: 2023-6-28 10:17
航宇工作室 发表于 2018-12-10 12:53
能不能写个过程,我输入e=Second(c)时输不进去,报警。

您好,怎么操作的,我这也是报警,谢谢
作者: 风雨并肩行*    时间: 2024-3-11 22:13
ug_askcurrentworkpart() 这个表达式无法自动更新。
作者: 复仇云    时间: 2024-3-12 11:13
感谢分享
作者: 九点水    时间: 2024-3-16 19:49
许多公司如一个模具,打开一个装配图档,里面有许多零件,鼠标停在上面就显示这个零件的命名。如前模用2字开头,后模用5字头,行位用3字开头!要2D图只点该零件的画图模式,很快切换成工程图。每个零件四位数字加英文字母来控制版本号。而国内把这些零件用图层来管控。没那么方便!做到这些是NX的二次开发吗
作者: IWHW    时间: 2024-5-20 20:24
夏季里那丝清凉 发表于 2022-10-18 11:49
工程图标题栏获取文件名和图号,我还是不喜欢用这种表达式的方式,缺点很明显~~~
还是用西门子给的属性吧 ...

你好 能像你了解一些主模型出图  属性设置的问题吗?
作者: 夏季里那丝清凉    时间: 2024-5-21 22:40
IWHW 发表于 2024-5-20 20:24
你好 能像你了解一些主模型出图  属性设置的问题吗?

你直接说问题呗
作者: 派大星AK    时间: 前天 08:49
夏季里那丝清凉 发表于 2024-5-21 22:40
你直接说问题呗

你好,标题栏怎么单独提取文件名前几个字符呢?
比如文件名:2DXXX-AX-A  只提取2DXXX可以吗?




欢迎光临 UG爱好者 (https://www.ugsnx.com/) Powered by Discuz! X3.2