Hallo gemeenschap.
Om binnen mijn bedrijf een macro te ontwikkelen, wil ik het maken van virtuele onderdelen in de assemblage automatiseren.
Het lukt me echter niet om de code te ontwikkelen die deze actie mogelijk maakt.
Hieronder vind je het begin van mijn onderzoek.
Dim swApp als object
Sub hoofd()
Stel swApp = Toepassing.SldWorks in
Stel swmodel = swApp.ActiveDoc in
Dim swModelTitle als SldWorks.ModelDoc2
'-------------------------------------------------------------------------------------------------------------
'Controleren of een ASM-dossierdocument open is
'-------------------------------------------------------------------------------------------------------------
Zo niet, swmodel is niets dan' als een SW-bestand wordt geopend
Debug.Print "een SW-bestand is geopend" 'dan msg debuggen en doorgaan
Anders: MsgBox ("Er is geen SW-bestand geopend, open een assembly en start de macro opnieuw") 'als er geen SW-bestand open is => msg
Sub afsluiten
Einde als
Dim type_doc als snaar
type_doc = swDocumentTypes_e.swDocPART
Foutopsporing.Print type_doc
Als swmodel. GetType = swDocumentTypes_e.swDocASSEMBLY dan
Debug.Print "Het geopende bestand is een assembly-bestand"
Anders: Debug.Print "het geopende bestand is geen assembly-bestand, open een assembly en start de macro opnieuw"
MsgBox ("het geopende bestand is geen assemblagebestand, open een assemblage en start de macro opnieuw")
Sub afsluiten
Einde als
'----------------------------------------------------------------------------------------------------------
'De bestandsnaam ophalen'
'----------------------------------------------------------------------------------------------------------
Dim pad als snaar
Dim name_asm als snaar
name_asm = zwenkmodel. Titel ophalen
pad = swmodel. GetPathName (GetPathNaam)
Debug.Print "bestandsnaam: " & name_asm
Debug.Print "pad:" & pad
Zon nom_asm
nom_asm = Links(name_asm, (InStrRev(name_asm; ".", -1, vbTextCompare) - 1))
Fouten opsporen.Afdrukken nom_asm
'-----------------------------------------------------------------------------------------------------------
"Creatie van opdrukonderdelen
'-----------------------------------------------------------------------------------------------------------
Dim nom_pe als snaar
nom_pe = "EMP_" & nom_asm
Debug.Print "naam van het onderdeel impressum: " & nom_pe
Zon new_part
boolstatus = swmodel. Extension.SelectByID2("Gezichtsvlak", "VLAK", 0, 0, 0, Onwaar, 0, Niets, 0) 'Gezichtsvlak selecteren
new_part = swmodel. InsertNewVirtualPart(boolstatus, nom_pe)
swmodel. ForceRebuild3 Waar
swmodel. BekijkenZoomtofit2
Einde Sub
De foutcode die op de lijn wordt verkregen new_part = ....
Heb je enig idee wat ik verkeerd doe???
Ik geef toe dat het voorbeeld van de API-hulp me perplex achterlaat...
sans_titre.png