簡體   English   中英

VBA Solidworks 宏幫助 - 在多張圖紙上替換工程圖中的 Model

[英]VBA Solidworks Macro Help - Replace Model in drawings over multiple sheets

我真的希望有人能幫助我 :),我今天一整天都在用頭撞牆,試圖讓它發揮作用。

所以我發現有時需要為多個零件創建相同的圖紙。

因此,我創建了一個宏,要求用戶創建所需的圖紙,然后當宏運行時,它會將所有 rest 的零件替換到圖紙中,同時將圖紙另存為新圖紙姓名。 因此,當宏完成后,您將擁有與零件數量相同的圖紙,並且每個相關圖紙都將包含其相關零件。 可能會有需要重新附加的懸空尺寸,但是,這比復制圖紙、替換視圖上的 model 或在圖紙啟動時引用 model 等更快。

這是問題所在。

我已經創建了宏,它運行得很好。 它基本上遵循以下步驟:

  1. 打開參考圖

  2. 用新的 model 替換所有視圖

  3. 用新名稱保存繪圖。

通過反復試驗,我發現我需要關閉繪圖並在每個循環中重新打開它。 否則,出於某種原因,會打開多個(不可見的)solidworks 應用程序,並且會損壞參考工程圖文件。

打開和關閉文檔往往需要時間。 因此,我發現您可以使用:

swApp.DocumentVisible False, swDocDRAWING

然后它不會每次都打開繪圖。 這允許宏快速通過並創建我需要的東西......對於單張圖紙......

當我嘗試使用雙張圖紙(圖紙 1 和圖紙 2)時,我發現它會一樣快,但是,只有每張圖紙的圖紙 2 上的視圖會更新為新的 model..

我想通了,如果繪圖文檔不可見,那么移動指針的命令如下:

swModel.ActivateSheet vSheets(0)

不工作。 指針卡在最后一張紙(第 2 張)上。 這導致每張圖紙只修改圖紙 2。

現在,如果我把它拿走,並保持文檔可見,它就可以正常工作。但是,它很慢,因為它正在打開和關閉文檔。

有誰知道如何在不可見的情況下修改繪圖? 或者如何在不可見的情況下在工作表之間移動指針?

任何幫助,將不勝感激

斯科特

一種更好的方法和最快的方法:

  • 復制圖形文件並為其命名
  • 關閉新圖紙:使用ReplaceReference (來自 SolidWorks Document Manager 庫)或ReplaceReferencedDocument將舊零件的路徑替換為新零件的路徑
  • 打開圖紙。

抱歉,來晚了,但我還是會發布的。 它可能對某人有用。

要更改基礎視圖所基於的 model,您既不需要 select 也不需要激活工作表或基礎視圖。

您可以訪問基本視圖 object,然后使用 DrawingDoc object 的 ReplaceViewModel 方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM