Odłączone, dołączone zdjęcia makro?

Witam

Wszystkie nasze pliki planów są w trybie odłączonym w SolidWorks i mam wymiary, które przeskakują.

Chcę mieć pewność, że ujęcia są solidne.

Czy wiesz, czy istnieje makro, które sprawia, że pliki planu są odłączane, dołączane?

en masse byłby a + (4000 planów)

1 polubienie

W tej chwili nie znam niczego istniejącego, co by to zrobiło.

Pozostawię to profesjonaliście API, aby udzielić pełniejszej odpowiedzi

2 polubienia

Witam

 

Miałem ten sam problem 2 lata temu, rozwiązany za pomocą narzędzia do aktualizacji w wersji MyCADServices.

 

Musisz odznaczyć opcję "nie konwertuj plików już w wersji, która ma być konwertowana" i zaznaczyć opcję "zapisuj rysunki w formacie nieoderwanym".

3 polubienia

Co to jest tryb odłączony?

 

Edit: mały research pozwolił mi zobaczyć, co to jest.

 

Jeśli nie masz narzędzi MyCAD, nie jest to bardzo skomplikowane z makrem, ale musisz wiedzieć trochę o VBA!

 

Możesz zacząć od makra, ucząc się sprawdzać, jaki kod kryje się za tym, co robisz po konwersji na dołączoną instalację MEP.

Witam

 

Aby zmienić rysunek z typu odłączonego na typ dołączony, należy użyć interfejsu API metody SaveAs (IModelDocExtension) z opcją swSaveAsVersion równą 3.

 

Poniżej znajduje się przykładowy fragment kodu, który działa w przypadku otwartego rysunku jako zamiennik "ścieżki kopii zapasowej + nazwa"

  Dim swApp As Object (Obiekt Ciemny)

  Dim swModel As SldWorks.ModelDoc2

  Dim swModelExt As SldWorks.ModelDocExtension

  Dim boolstatus As Boolean

  Dim ExportData jako obiekt

  Ostrzeżenia o przyciemnieniu tak długo, błędy tak długo

 

  Sub main()

 

  Ustaw swApp = Application.SldWorks

  Ustaw swModel = swApp.ActiveDoc

  Ustaw swModelExt = swModel.Extension

  boolstatus = swModelExt.SaveAs("ścieżka+nazwa zapisu", 3, 1, ExportData, Błędy, Ostrzeżenia)

 

  Koniec subwoofera

 

Do masowego przetwarzania nie mam pod ręką żadnego kodu, który mógłby zapętlić wszystkie pliki w folderze. Może ktoś inny?

 

1 polubienie

Zgodnie z twoimi odpowiedziami wydaje się to łatwe, niestety nie mam mojego cad services.fgirard wydaje się, że opanowałeś programowanie. Nigdy nie robiłem czegoś takiego. Czy część skryptu jest wystarczająca do przekształcenia pliku w załączony? Czy powinienem umieścić makro w każdym pliku? (Mam 4000 ujęć, równie dobrze mogę je otworzyć 1 po 1 i zapisać jako... To będzie mniej skomplikowane?)

Czy wszystkie plany 4000 znajdują się w tym samym katalogu?

Szukam pełnego makra, które przetwarza wszystkie pliki w 1 katalogu.

Wrócę, jak tylko to się skończy.

Dziękuję Fgirard. Nawet jeśli makro ma do czynienia z kilkoma ujęciami, to i tak byłoby ciekawie.

Skończyłem makro do przetwarzania wszystkich rysunków katalogu.

Makro otworzy okno dialogowe, w którym można wybrać plik do otwarcia.

Następnie pobiera lokalizację pliku i przetwarza wszystkie znajdujące się w nim rysunki.

Oto kod:

 

Dim swApp As Object

Dim swModel As SldWorks.ModelDoc2

Dim swModelExt As SldWorks.ModelDocExtension

Dim boolstatus As Boolean

Dim ExportData As Object

Ostrzeżenia o przyciemnieniu tak długo, błędy tak długo

Dim oFSO As Scripting.FileSystemObject

Dim oFld As Scripting.Folder

Dim oFile As Scripting.File

Przyciemnij ścieżkę jako ciąg

Przyciemnij filtr                      jako ciąg

Dim fileName                    As Ciąg

Dim fileConfig As String (Ciąg Plików)                 

Dim fileDispName                jako ciąg

Przyciemnij fileOptions                 tak długo

 

 

Sub main()

 

Ustaw swApp = Application.SldWorks

 

Filtruj według rysunku

Filtr = "Rysunek (*.slddrw)|*.slddrw|"

 

Otwieranie okna dialogowego

fileName = swApp.GetOpenFileName("Wybierz plik", "", Filtr, fileOptions, fileConfig, fileDispName)

 

'Sprawdź wybrany plik

Jeśli fileName = "" Następnie wyjdź z sub

 

Odzyskiwanie ścieżki

path = Left(nazwa_pliku, InStrRev(nazwa_pliku, "\"))

 

"Oświadczenie FSO"

Set oFSO = New Scripting.FileSystemObject

Ustaw oFld = oFSO.GetFolder(ścieżka)

'zapętlanie plików w katalogu "path"

Dla każdego pliku oFile w oFld.Files

    'Typ pliku testowego = rysunek

    Jeśli oFile.Type = "Dokument rysunku SolidWorks", to

        Otwarcie rysunku

        Set swModel = swApp.OpenDoc6(oFile.Path, swDocDRAWING, 1, "", Błędy, Ostrzeżenia)

        Ustaw swModelExt = swModel.Extension

        'Załączona wersja kopii zapasowej

        boolstatus = swModelExt.SaveAs(oFile.Path, 3, 1, ExportData, Błędy, Ostrzeżenia)

        Zamykanie pliku

        swApp.CloseDoc swModel.GetTitle

    Zakończ jeżeli:

Następny oPlik

 

Koniec subwoofera

 

 

 

3 polubienia

Dziękuję Fgirard, nigdy nie robiąc makr wypróbuję twój program. Miłego dnia.

 

Za pomocą narzędzia Integracja w myCADtools można uruchomić makro wsadowe, korzystając z operacji dostępnych w integracji.

 

Pozwala to szybko utworzyć proste makro i uruchomić je zbiorczo na dużej liczbie plików.

 

Filou

3 polubienia

 Dziękuję prossignol, to będzie rozwiązanie, jeśli nie mogę utworzyć makra.

Nie udało mi się uruchomić makra.

Fgirard, mówisz, że to ty stworzyłeś makro. Gdybym mógł go nadużywać, czy mógłbyś wysłać mi jakiś plik z powiązanym planem integrującym makro? Wesołych Świąt

W załączeniu znajduje się plik swp makra.

Zapisujesz go na swoim komputerze.

Następnie wykonujesz "narzędzie/makro/wykonanie"

Wybierasz plik "Dettach.swp"

Otworzy się okno, w którym wybierasz pierwszy plik slddrw w folderze, w którym znajdują się Twoje plany konwersji.

Obserwujesz, jak oprogramowanie się otwiera i sam zapisujesz swoje plany jak dorosły.

 

Taka jest teoria. W praktyce możesz mieć problemy z odwołaniami do nieaktywnych .dll oraz problemy z samym kodem.

 

Uruchom makro raz, a jeśli pojawi się komunikat o błędzie, zrób zrzut ekranu i opublikuj go. Zobaczę, co da się zrobić.

 

W przeciwnym razie, jako sygnał, Prossignol Integration jest bardzo potężnym narzędziem, które może wykonać zadanie.

 

Wesołych Świąt dla wszystkich.

 


odłączanie.swp
1 polubienie