iCAx开思网

标题: 求助,批量打开及保存的 宏制作方法,原因内详 [打印本页]

作者: gg555gg555    时间: 2014-9-22 11:07
标题: 求助,批量打开及保存的 宏制作方法,原因内详
小弟,以前机械做的多,现在做钣金,展开后标注的方法,把展开后的长宽,连接到BOM,现在发现直接用切割清单的边界框,可以省掉标注的过程,但的问题是,钣金修改后,不论是标注的,还是切割清单都不会自动更新,必须用一下展开,再恢复折弯状态,才会变化,现在我只能一个一个打开点击2次展开,再保存,最后在批量更新工程图。录制宏也只是建模模式下,依次打开文件,再依次保存,不知道怎么搞。求大神指导
作者: gt.adan    时间: 2014-9-22 14:47
本帖最后由 gt.adan 于 2014-9-22 15:20 编辑

樓主是如何將數值放到BOM的?貌似沒有任何問題的呀?


[attach]1207352[/attach]


作者: gg555gg555    时间: 2014-9-22 15:14
谢谢大神回复,现在的情况如下图
作者: gg555gg555    时间: 2014-9-22 15:41
钣金展开L和W 是我在展开状态下做的参考尺寸,再把尺寸连接到自定义属性里,出装配总图的时候bom里就会直接有,导出到EXECL,做个自动汇总,就给财务去核算成本了
我看了下大神的标注是工程图的那个展开,那个确实会变尺寸也是正常的,但在模型里的参考尺寸必修展开再折弯才会更新,请参看我的图片
作者: gt.adan    时间: 2014-9-22 15:55
本帖最后由 gt.adan 于 2014-9-22 15:59 编辑
gg555gg555 发表于 2014-9-22 15:41
钣金展开L和W 是我在展开状态下做的参考尺寸,再把尺寸连接到自定义属性里,出装配总图的时候bom里就会直接 ...

樓主這樣的連結方式除了多此一舉,更是連結錯誤…請看…
猜猜看為何我不用再做展開的動作來重整模型?
提示:打開特徵樹,每一個"+"都打開看!答案就在裡面~

[attach]1207360[/attach]


作者: gg555gg555    时间: 2014-9-22 17:06
谢谢版主大神回复,您的那个边界框尺寸是自动生成的?我标注的是边界框的尺寸,不是实体的尺寸,而且要保持折弯的状态,因为是在装配体里
作者: wutong490    时间: 2014-9-22 17:24
看了看了帮助  里面还有其他属性
又跟丹版学东西了
[attach]1207364[/attach]
[attach]1207365[/attach]
作者: gg555gg555    时间: 2014-9-22 18:02
wutong490 发表于 2014-9-22 17:24
看了看了帮助  里面还有其他属性
又跟丹版学东西了

边界框什么的属性必须展开才会更新,现在我改后要手动用2次展开命令,现在改成1次宏按钮,想要批量打开,保存退出,求大神指导

作者: gt.adan    时间: 2014-9-23 00:36
給樓主參考了…不必2012的邊界框,不必2013的邊界盒…
不必任何自定義屬性…不必手動展開折彎,即可以達到尺寸更新的要求。

[attach]1207377[/attach]

[attach]1207378[/attach]

[attach]1207379[/attach]

[attach]1207380[/attach]

作者: gg555gg555    时间: 2014-9-23 08:15
谢谢版主大大的回复,您的设置是在工程图中的标注连接到表格吧,小弟愚钝,不知理解的对不对。那在总装配中出BOM,如何体现单个零件的展开尺寸呢?
作者: gt.adan    时间: 2014-9-23 12:45
本帖最后由 gt.adan 于 2014-9-23 12:50 编辑

我有些搞糊塗了…
樓主的具體要求,是要在「總裝配」的BOM中顯示鈑金的展開尺寸,對不?
您的版本是多少?
現在是直接用焊件屬性清單中的邊界框長寬?
還是仍用手動標註邊界框另做自定義屬性呢?

不同的版本有不同的做法…
而焊件屬性的調用更是有版本的限制…
盼覆…

作者: Francis    时间: 2014-9-23 13:22
暫時不管樓主處理屬性方法是否正確, 基本素求(批量處理類同鳥事)不無道理.
樓主可參閱:
https://www.icax.org/thread-926875-1-1.html
作者: gt.adan    时间: 2014-9-23 14:36
Francis 发表于 2014-9-23 13:22
暫時不管樓主處理屬性方法是否正確, 基本素求(批量處理類同鳥事)不無道理.
樓主可參閱:
https://bbs.icax. ...

原本還在想就版本的新舊與樓主討論不同的做法。
但最多只能討論正確的連結方式和設置新模板,以備將來可以使用。
然而對於這些「已經做好」的舊文件,批量修改就完全仰賴悶大分享的宏代碼了!
謝謝悶大無私分享!


作者: gt.adan    时间: 2014-9-23 14:39
本帖最后由 gt.adan 于 2014-9-23 14:56 编辑

搭配悶大#12 連結中分享的宏代碼,再多加幾行代碼,
應當可以「批次解決」樓主目前遇到的問題。執行結果如下:

【已設變的鈑金件】底面長寬按零件AA~DD:30X20, 35X25, 40X30, 45X35
[attach]1207419[/attach]

【工程圖並未跟著更新】
[attach]1207420[/attach]

【全部關閉後執行代碼】再次打開資料夾內所有工程圖,都更新了!
[attach]1207421[/attach]


作者: gt.adan    时间: 2014-9-23 14:52
本帖最后由 gt.adan 于 2014-9-25 00:16 编辑
Francis 发表于 2014-9-23 13:22
暫時不管樓主處理屬性方法是否正確, 基本素求(批量處理類同鳥事)不無道理.
樓主可參閱:
https://bbs.icax. ...
下方是將「特定資料夾」底下的零件檔批次處理的代碼,
另#24有悶大教學:運行宏代碼時可以指定資料夾的代碼!-----2014/09/25

===============================================================
再次謝謝悶大的即時雨!
以下是阿丹按悶大分享的代碼新增的內容,請悶大指導不足之處,
  1. Dim swApp As Object
  2. Dim Part As Object
  3. Dim boolstatus As Boolean
  4. Dim longstatus As Long, longwarnings As Long
  5. Sub Test()
  6. Set swApp = Application.SldWorks
  7. PartPath = "C:\自行輸入資料夾路徑" '設定目錄
  8. PartFileName = Dir(PartPath & "*.sldprt") '搜尋首個零件檔案名稱
  9. Do Until PartFileName = "" '直至搜尋到空值
  10.     Set Part = swApp.OpenDoc(PartPath & PartFileName, 1) '開啟零件
  11.     '展開鈑金
  12.     boolstatus = Part.Extension.SelectByID2("Flat-Pattern1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
  13.     Part.ClearSelection2 True
  14.     longstatus = Part.SetBendState(2)
  15.     boolstatus = Part.EditRebuild3()
  16.     '抑制展開
  17.     boolstatus = Part.Extension.SelectByID2("Flat-Pattern1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0)
  18.     Part.ClearSelection2 True
  19.     longstatus = Part.SetBendState(3)
  20.     boolstatus = Part.EditRebuild3()
  21.     Part.Save '保存
  22.     swApp.CloseDoc (PartFileName) '關閉零件
  23.     PartFileName = Dir '搜尋下一個零件檔案名稱
  24. Loop '循環搜尋
  25. End Sub
复制代码

作者: gt.adan    时间: 2014-9-23 16:17
軟件是一直在進步的…
2014版本,邊界框會隨零件設變自動更新尺寸。



作者: Francis    时间: 2014-9-23 21:49
樓主失踪了, 只剩下丹哥和悶人傻呼呼討論, 還打算提供"多目錄"的更新宏, 看來可以節省一下了.
作者: gt.adan    时间: 2014-9-23 23:57
Francis 发表于 2014-9-23 21:49
樓主失踪了, 只剩下丹哥和悶人傻呼呼討論, 還打算提供"多目錄"的更新宏, 看來可以節省一下了.

悶大!阿丹要!!能不能接續討論!!(乞討狀…)

作者: gg555gg555    时间: 2014-9-24 08:06
gt.adan 发表于 2014-9-23 12:45
我有些搞糊塗了…
樓主的具體要求,是要在「總裝配」的BOM中顯示鈑金的展開尺寸,對不?
您的版本是多少? ...

谢谢版主大神回复,昨天比较忙,没有上,用的是12板,边界框用切割和手动标注是一样的,只是切割的时候多一行,要调整,现有的还是用的手动标注边界框

作者: gg555gg555    时间: 2014-9-24 08:08
Francis 发表于 2014-9-23 13:22
暫時不管樓主處理屬性方法是否正確, 基本素求(批量處理類同鳥事)不無道理.
樓主可參閱:
https://bbs.icax. ...

太感谢了,我先学习下

作者: gt.adan    时间: 2014-9-24 10:57
gg555gg555 发表于 2014-9-24 08:06
谢谢版主大神回复,昨天比较忙,没有上,用的是12板,边界框用切割和手动标注是一样的,只是切割的时候多 ...

我知道樓主的問題依然沒有解決,
能否發一個文件,(含零件和工程圖的)
看看是如何連結尺寸的,再用當前版本討論相應對的做法。


作者: gg555gg555    时间: 2014-9-24 11:18
gt.adan 发表于 2014-9-23 16:17
軟件是一直在進步的…
2014版本,邊界框會隨零件設變自動更新尺寸。

谢谢版大,看过2位版大的贴,现在但文件夹下的简单的重复劳动搞定了,太感谢了。
但是有新的疑问,指定文件夹如何变成运行时手工选定呢,就像工程图转换的宏可以指定文件夹,小弟愚笨,不知代码怎么可以从工程图转换到零件

作者: gg555gg555    时间: 2014-9-24 11:49
gt.adan 发表于 2014-9-24 10:57
我知道樓主的問題依然沒有解決,
能否發一個文件,(含零件和工程圖的)
看看是如何連結尺寸的,再用當前 ...

谢谢版大百忙之中回复,附件是一般的工作流程,建立实体,引用实体建立零件,BOM中一个是手工测量的,边界框为系统自带,属性,但边界框需右键更新方能生成,更新的话,点右键或是命令展开才会变化竖直。
建模方式麻烦点,但是改起来比较方便,也想学习大家的思路

作者: Francis    时间: 2014-9-24 23:05
gg555gg555 发表于 2014-9-24 11:18
谢谢版大,看过2位版大的贴,现在但文件夹下的简单的重复劳动搞定了,太感谢了。
但是有新的疑问,指定文 ...

15樓的代碼中
PartPath = "C:\自行輸入資料夾路徑\" '設定目錄
改為
PartPath = InputBox("请输入需要XXXXXXX所在位置")


作者: Francis    时间: 2014-9-24 23:07
本帖最后由 Francis 于 2014-9-25 01:45 编辑

另外, 有請樓主看看17樓的帖子.
作者: gt.adan    时间: 2014-9-25 00:17
Francis 发表于 2014-9-24 23:05
15樓的代碼中
PartPath = "C:\自行輸入資料夾路徑\" '設定目錄
改為

謝謝悶大!按代碼操作,大成功!!!

作者: Francis    时间: 2014-9-25 09:33
gt.adan 发表于 2014-9-25 00:17
謝謝悶大!按代碼操作,大成功!!!

謝謝丹哥測試.

還有那個"多目錄"宏, 應該對於從事系列零件的丹哥有點幫助的.


作者: gg555gg555    时间: 2014-9-25 10:23
Francis 发表于 2014-9-24 23:05
15樓的代碼中
PartPath = "C:\自行輸入資料夾路徑\" '設定目錄
改為

膜拜版大,太厉害了,各位都是神人呀!

作者: gt.adan    时间: 2014-9-25 10:46
Francis 发表于 2014-9-25 09:33
謝謝丹哥測試.

還有那個"多目錄"宏, 應該對於從事系列零件的丹哥有點幫助的.

悶大日安~「多目錄」豈止有點幫助?阿丹以為大家都應該受益無窮呀!
願聞其詳,請悶老大指導!!~~






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