iCAx开思网

标题: 通过方程式直接将文件名写入到自定义属性的问题 [打印本页]

作者: ieidea    时间: 2011-6-1 16:18
标题: 通过方程式直接将文件名写入到自定义属性的问题
看到论坛上这个帖子https://fans.solidworks.com.cn/enewsletter/2011/05/cad_04.html获益匪浅,可惜自己不懂程序语言,E文也不怎么好,找不到更进一步的资料。
我们单位的零件号编制方法中零件编码并不是固定的9位,比如“GLD2000-2010 槽体焊件”或者“GLD2000-52 截割总成”

请问,如何用方程式的方法,取空格前面的所有字符写入到属性中的“零件号”,空格后面的所有字符写入到属性中的“零件名称”?

我尝试着用Excel的函数来取值:
dummy=part.Extension.CustomPropertyManager("").Set("零件号",Left(part.GetTitle,FIND(" ",part.GetTitle)-1))

可惜在sw里出现错误。
请高手帮帮忙具体应该怎么写?望指教。


作者: 大鹿    时间: 2011-6-1 22:18
1 這回事跟英文無關
2 有嘗試精神,只是耐心不足。


[attach]1082328[/attach]
[attach]1082329[/attach]
作者: kuanghaijun    时间: 2011-6-2 07:54
ddddddddddddddddddddddddddddd
作者: kuanghaijun    时间: 2011-6-2 07:55
这鬼东东复杂,完全不知道是怎么回事,,,不知道从何学起啊,有好心人愿意指点一下嘛,谢谢
作者: 大鹿    时间: 2011-6-2 10:15
kuanghaijun 发表于 2011-6-2 07:55
这鬼东东复杂,完全不知道是怎么回事,,,不知道从何学起啊,有好心人愿意指点一下嘛,谢谢

急躁乃學習之大忌也。
作者: colt110    时间: 2011-6-2 10:20
学习了  多谢大鹿~
作者: 大鹿    时间: 2011-6-2 13:23
樓主不顧而去。

唉!慨嘆這些“夕陽職業”,究竟是因還是果?
作者: liumengll    时间: 2011-6-2 13:54
不知道是不是一种陌落。。
作者: 大鹿    时间: 2011-6-7 12:09
對樓豬這種行為極其失望!
作者: kuanghaijun    时间: 2011-6-7 14:03
大鹿师傅,,,指点一下,学习这方面该从何入手?
作者: kuanghaijun    时间: 2011-6-7 14:04
你高手来无影去无踪的,我都没法联系上你,,真诚求指教,我留下我的联系方式:QQ50324507
或是你看到之后留下你的联系方式好吗??谢谢,
作者: kuanghaijun    时间: 2011-6-7 14:11
5# 大鹿 大鹿师傅,,,真诚求教,指点一下,学习这方面该从何入手? 谢谢,我QQ50324507
作者: 大鹿    时间: 2011-6-7 14:34
kuanghaijun 发表于 2011-6-7 14:04
你高手来无影去无踪的,我都没法联系上你,,真诚求指教,我留下我的联系方式:QQ50324507
或是你看到之后留下你的联系方式好吗??谢谢,

來無影去無蹤??在說俺嗎?
俺實實在在回答樓主的提問,卻換來這樣的奚落,合理嗎?

話說回來,論壇本身就是最好不過的討論平台。
有些人偏偏另覓蹊徑,企圖與用心令人費解。
作者: ieidea    时间: 2011-6-9 09:45
这几天忙于一个合同一直在外,没条件上网,回到家又大睡一天,实在不是有意怠慢各位乐于助人的兄弟。特别是大鹿兄,回答的很及时,鄙人受教。兄弟愚钝,发贴前也是尝试了许久,只因实在不懂API和相关函数,只得寻求于论坛,见笑了。望“大鹿”兄海涵。
作者: ieidea    时间: 2011-6-9 10:28
用大鹿兄的代码,在win7+Solidworks 2011下面试了多次,均无法正确取值。不得已用那篇文章上的代码来取,竟然也不能正确取到!到底是哪里出问题了!
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

本帖最后由 ieidea 于 2011-6-9 10:29 编辑
作者: 大鹿    时间: 2011-6-9 23:36
ieidea兄提供的教程,的確值得學習。

可是ieidea兄本身就沒有細心閱讀教程,變成得物無所用,可惜!

反而給俺偷學了。
作者: w_hs    时间: 2011-6-10 11:05
15# ieidea

可以的呀!

[attach]1083410[/attach]

[attach]1083408[/attach]

当系统隐藏后缀名时用上图,当系统显示后缀名时用下图。

本帖最后由 w_hs 于 2011-6-10 11:25 编辑
作者: ieidea    时间: 2011-6-13 15:56
又试了好多次,还是无法取值,真不知道哪里错了……
现附上源文件,2011版本的,请那位大哥帮忙看看。

多谢了!!

[attach]1084099[/attach]
作者: tigerguo    时间: 2011-6-14 01:07
可以用宏。功能更全。也没有方程式错误和影响大型装配体速度的困扰
作者: tigerguo    时间: 2011-6-14 01:08
类似的帖子,在本论坛可以找到。
作者: gneful    时间: 2011-6-14 13:21
原来方程式还可以这样用

学习了
作者: suhang2020    时间: 2011-6-27 10:11
17# w_hs 我也用这个方法试了一下,可是为什么我的属性显示总是“-1”啊,是不是还有什么需要注意的地方啊,求指点
作者: 哥桑    时间: 2013-3-8 11:25
w_hs 发表于 2011-6-10 11:05
15# ieidea

可以的呀!

你好,我想问一下,我试用了这个方法,可行,但是有一个问题,Set的文件属性名称在英文的情况下是可行的,如果设置的是中文名称就不行了,这是怎么回事,我的系统是win7 64位 solidworks 版本是2011 sp5

作者: wxg263    时间: 2013-3-13 22:32
果然英文 的就是好啊, 我用WIN7+2013虽然 输入可以输入但是 确定以后就什么也没有了,奇怪了
作者: ning58    时间: 2013-11-23 15:07
大鹿 发表于 2011-6-1 22:18
1 這回事跟英文無關
2 有嘗試精神,只是耐心不足。

在SW2006没有运行成功。
在SW2011可以运行。

作者: liuzhanping9605    时间: 2014-8-23 15:58
看半天vb就知道了
作者: zyf0732    时间: 2014-11-1 20:00
大鹿 发表于 2011-6-1 22:18
1 這回事跟英文無關
2 有嘗試精神,只是耐心不足。

请高手指点,我在sw2014的评估方程式里面输入Dummy1=Part.Extension.CustomPropertyManager("").Set("序号",Right(Part.GetTitle),Len(Part.GetTitle)-InStr(Part.GetTitle,"-")))怎么一直提示句法错误?

作者: 大鹿    时间: 2014-11-4 12:03
本帖最后由 大鹿 于 2014-11-4 12:08 编辑
zyf0732 发表于 2014-11-1 20:00
请高手指点,我在sw2014的评估方程式里面输入Dummy1=Part.Extension.CustomPropertyManager("").Set("序 ...

此法已成历史

作者: zyf0732    时间: 2014-11-4 16:09
大鹿 发表于 2014-11-4 12:03
此法已成历史

请问鹿大侠,是不是说sw2014以后的方程式不再支持这种句法了?那支持的句法还可以实现上述的功能吗?

作者: zhg.x    时间: 2014-11-5 06:29
zyf0732 发表于 2014-11-4 16:09
请问鹿大侠,是不是说sw2014以后的方程式不再支持这种句法了?那支持的句法还可以实现上述的功能吗?

2014我也试过,貌似不可以。大鹿也说了,那种做法已经是历史了;
这个问题蛮好,难保以后不会遇到,期待有人指导吧

作者: longwish    时间: 2014-11-21 14:29
难怪我的也不行,还望高人指点哈。
作者: ldhzg1991    时间: 2014-12-13 20:02
本帖最后由 ldhzg1991 于 2014-12-13 20:03 编辑
大鹿 发表于 2011-6-2 13:23
樓主不顧而去。

唉!慨嘆這些“夕陽職業”,究竟是因還是果?

你好师傅,麻烦帮我分析写这个问题点啊。

part.Extension.CustomPropertyManager("").Set("零件图号",Left(part.GetTitle,14))
part.Extension.CustomPropertyManager("").Set("零件名称",right(part.gettitle,len(part.gettitle)-14))
第一个图号没问题了,。  第二个是要达成这样的




作者: jixiecad    时间: 2015-6-7 13:09
ldhzg1991 发表于 2014-12-13 20:02
你好师傅,麻烦帮我分析写这个问题点啊。

part.Extension.CustomPropertyManager("").Set("零件图号", ...

这里貌似不能用这种函数。

作者: huyaomeng    时间: 2015-10-26 16:12
本帖最后由 huyaomeng 于 2016-2-22 20:44 编辑

文件命名规则:xxx yyy_zzz.cccccc;提取xxx到代号;
提取yyy到名称;
提取zzz到项目。
方程如下:
"Dummy1"=part.Extension.CustomPropertyManager("").Set("代号",Left(part.GetTitle,InStr(part.GetTitle," ")-1))
"Dummy2"=part.Extension.CustomPropertyManager("").Set("名称",Mid(part.GetTitle,InStr(part.GetTitle," ")+1,Len(part.GetTitle)-InStr(part.GetTitle,"_")-7))
"Dummy3"=part.Extension.CustomPropertyManager("").Set("项目",Right(part.GetTitle,Len(part.GetTitle)-InStr(part.GetTitle,"_")-7))


作者: weik    时间: 2015-10-31 16:34
本帖最后由 weik 于 2015-10-31 16:36 编辑

我编了个宏文件,可以实现此功能,就是要手动执行一次,要是每次打开零件后自动执行就好了 https://www.icax.org/thread-957549-1-1.html
作者: 魍书生    时间: 2016-10-2 09:19
亲测2014是可以使用上述代码的,提示语法错误无视就好,直接确定就可以了
作者: 188chp    时间: 2016-10-2 18:04
好东西,谢谢,收下
作者: 陈江宏    时间: 2019-8-9 10:00
大鹿 发表于 2011-6-2 10:15
急躁乃學習之大忌也。

你好大鹿 我弄怎么不行啊 能加一下我QQ1004720953教一下我吗 谢谢





欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3