Autor | Wypowiedź |
Konstruktor
2020-08-29, 12:40
Pomógł 0 raz(y).
|
Witam Czy jest ktoś mi w stanie pomóc w napisanie bardzo prostego macro do zapisania aktualnie tworzonego/stworzonego pliku rysunku .SLDDRW (który jeszcze nie został zapisany w żadnej lokalizacji), o tej samej nazwie i lokalizacji co Część do którego tyczy się rysunek? Pracuje na wielu folderach i czasami mi się zdarza zapisać rysunek w złym folderze (nie tym samym co część), a klikanie i zatwierdzenie lokalizacji dla rysunku przy jego zapisie jest dla mnie zbędną czynnością ponieważ i tak zawsze chce żeby rysunek był w tej samej lokalizacji co część. Mam macro'sy które zapisują Rysunek jako PDF czy DXF ale one bazują zawsze na zapisanym rysunku. Nie da się zapisać otwartego pliku jako .SLDDRW przez te podobne macro'sy zmieniając tylko rozszerzenie ponieważ macrosy odwołują się zawsze do tego zapisanego pliku. |
|
|
.
2020-08-31, 09:03
Pomógł 52 raz(y).
|
To by było coś takiego: Dim swApp As Object Sub main() Dim swModelRysunku As SldWorks.ModelDoc2 Dim PlikModelu As String Dim PlikRysunku As String Dim swView As SldWorks.View Dim Longstatus As Long Set swApp = Application.SldWorks Set swDraw = swApp.ActiveDoc Set swView = swDraw.GetFirstView Set swView = swView.GetNextView PlikModelu = swView.GetReferencedModelName PlikRysunku = Left(PlikModelu, Len(PlikModelu) - 7) + ".SLDDRW" Longstatus = swDraw.SaveAs(PlikRysunku) End Sub lub krócej : Sub main() Dim PlikModelu As String Dim Longstatus As Long PlikModelu = Application.SldWorks.ActiveDoc.GetFirstView.GetNextView.GetReferencedModelName Longstatus = Application.SldWorks.ActiveDoc.SaveAs(Left(PlikModelu, Len(PlikModelu) - 7) + ".SLDDRW") End Sub |
Konstruktor
2020-08-31, 20:16
Pomógł 0 raz(y).
|
Super, działa jedno i drugie :) Bardzo dziekuje! |
|
|