Jak wymienić część na VBA?

Witam

Chcę przeprowadzić automatyczną wymianę części w SolidWorks za pomocą narzędzia makra. Konkretnie chciałbym wymienić/wymienić jedną część na przedział wartości. Znalazłem poniższe polecenie, ale nie działa;

boolstatus = Part.ReplaceComponents("\\xxxxxxxx.SLDPRT", "", Prawda, 0, Prawda)

Dziękuję za pomoc.

Witam

Czy widziałeś przykład w pomocy SolidWorks?

http://help.solidworks.com/2012/English/api/sldworksapi/Replace_Component_Example_VB.htm

Gdzie utknęło twoje makro?

Co to jest komunikat o błędzie?

1 polubienie

Wiadomość o debuggerze, spróbuję studiując to co mi dałeś :)

1 polubienie

Czy to teraz działa?

W rzeczywistości nie zrozumiałem wszystkiego z twojego kodu, potrzebuję tylko rozkazu wymiany jednej części na drugą, znam sposób na jedno i drugie! Muszę stworzyć tak skomplikowany kod?

Wypróbuj ten kod:

 

Dim swApp As Object (Obiekt Ciemny)


Przyciemnij część jako obiekt 


Przyciemnij ścieżkę jako ciąg


Dim boolstatus As Boolean 


Sub main() 


Ustaw swApp = Application.SldWorks 


Ustaw część = swApp.ActiveDoc 


Part.ClearSelection2 Prawda 


Zastąp tutaj NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLAGE nazwą części, która ma zostać wymieniona


boolstatus = Part.Extension.SelectByID2("NOM_DE_TA_PIECE_DANS_SOLIDWORKS@NOM-DE-TON-ASSEMBLY", "KOMPONENT", 0, 0, 0, Fałsz, 0, Nic, 0) 


path = "C:\folder\nazwa twojej nowej części . SLDPRT"


boolstatus = Part.ReplaceComponents(ścieżka, "", Fałsz, Prawda) 


Koniec subwoofera

1 polubienie

To polecenie nie działa, oto mój kod: (debugowanie otwiera się dla ostatniego wiersza)

Sub main()

Ustaw swApp = _
Aplikacja.SldWorks

Ustaw część = swApp.ActiveDoc


Part.ClearSelection2 Prawda


boolstatus = Part.Extension.SelectByID2("Nazwa części-1@Assemblage", "KOMPONENT", 0, 0, 0, Fałsz, 0, Nic, 0)

boolstatus = Part.ReplaceComponents("C:\xxxxxxx\xxxx.sldprt", "", Fałsz, 0, Prawda)


Koniec subwoofera

 

Czy to normalne "C:\xxxxxxx\xxxx.sldprt"?

I czy jesteś pewien, że nie popełniłeś błędu w "Name of the 1@Assemblage Piece"?

Tak, właśnie zamieniłem moje linki na xxxx i tak na drugie pytanie , ponieważ zapisuję je za pomocą narzędzia do nagrywania makr przed...  

Właśnie znalazłem błąd..... Trochę o 0 za dużo w mojej kolejności: 

boolstatus = Part.ReplaceComponents("C:\xxxxxxx\xxxx.sldprt", "", Fałsz, 0, Prawda)

Dziękuję bardzo :)

1 polubienie

A Ty popełniłeś błąd, kopiując dodatkowo to, co napisałem, bo to co napisałem jest słuszne!

:) Nie martw się, proszę wybrać moją odpowiedź jako najlepszą proszę :)