Ik heb een tekenmodel waarop een vooraanzicht van een flens te zien is. Om het vooraanzicht weer te geven, moet ik het onderaanzicht van de flens selecteren. Ik wil, via een macro, de configuratie van deze weergave wijzigen (het is de DN die verandert).
De macrorecorder geeft me een code die werkt, maar wanneer ik de macro de eerste keer uitvoer, maakt het een configuratie die eindigt met "-SM-FLAT-PATTERN" en ik word gedwongen om het een tweede keer uit te voeren om de configuratie te wijzigen (het geeft de configuratie weer die bij de eerste run is gemaakt).
Ik heb geen zin om nieuwe configuraties te maken en de macro één keer uit te voeren.
Hieronder vindt u de verkregen code:
Dim swApp als object
Deel dimmen als object Dim boolstatus als Booleaanse Dim longstatus As Long, longwarnings As Long
Sub hoofd()
Stel swApp in = _ Toepassing.SldWorks
Deel instellen = swApp.ActiveDoc boolstatus = Part.Extension.SelectByID2("Tekening1", "TEKENING", 0.267271785970659, 0.323684671386922, 0, Onwaar, 0, Niets, 0) boolstatus = Part.ChangeRefConfigurationOfFlatPatternView("O:\FJS flens type11B ASA300. SLDPRT", "DN040") Deel.ClearSelection2 Waar Einde Sub
Ja, ik probeer deze functie te automatiseren omdat het op veel niveaus moet worden gedaan door mijn collega's en mijzelf. De weergave heeft nog steeds dezelfde naam, maar de configuratie is gewijzigd. Ik voeg een afbeelding van de configuraties toe. Ik wil de configuratie wijzigen op basis van de waarde van de DN.
Ik heb een code gevonden die werkt, maar vraagt welke configuratie ik wil weergeven, maar ik zou graag willen dat dit automatisch wordt gedaan volgens de waarde van de DN (ik krijg deze waarde in een Excel-bestand):
Sub ChangeRefConfig()
Dim myApp als SldWorks.SldWorks
Stel myApp in = Application.SldWorks
Dim myDraw als DrawingDoc
Stel myDraw in = myApp.ActiveDoc
Dim myView als weergave
Stel myView = myDraw.ActiveDrawingView in
Dim myModel als ModelDoc2
Stel myModel = myView.ReferencedDocument in
Dim msg als snaar
msg = "Selecteer de configuratie om naar te wijzigen voor weergave " & myView.Name & vbCrLf
Voor i = 0 TB UBound(myModel.GetConfigurationNames)
in feite creëert het een plaatwerkconfiguratie in ongevouwen versie, vandaar de naam "-SM-FLAT-PATTERN" en, om te antwoorden op PL, is de DN de nominale diameter van de flens. Misschien het hoofdstel en het plaatwerk en daarom maakt ze de versie met plat patroon voor jou.
Kijk in de code van je vraag, de 4e regel van onderen heb je: "boolstatus = Part.ChangeRefConfigurationOfFlatPatternView("O:\FJS Bride " Ik denk dat dit deel van de code moet worden gewijzigd of verwijderd, zodat het niet langer de flatpattern-versie maakt
Ik heb beide codes geprobeerd, maar geen van beide werkte.
Voor de code van manu67 zit de fout in de regel boolstatus = Part.ChangeRefConfigurationOfDefaultView("O:\FJS flens type11B ASA300. SLDPRT", "DN040". De weergegeven fout is: "Runtime-fout '438': eigenschap of methode wordt niet afgehandeld door dit object"
Voor de .PL code zit de fout in de regel Set swView = swDraw.IGetFirstView: "Runtime error '424': object required. Ik heb geprobeerd de variabele ConfigName te declareren, maar de fout is hetzelfde:
Dim ConfigName als tekenreeks ConfigName = "DN040"
Ik heb de oplossing voor mijn probleem gevonden. Ik heb de code hieronder gezet:
Sub ChangeRefConfig() Dim myApp als SldWorks.SldWorks Stel myApp in = Application.SldWorks Dim myDraw als DrawingDoc Stel myDraw in = myApp.ActiveDoc Dim myView als weergave Stel myView = myDraw.ActiveDrawingView in Dim myModel als ModelDoc2 Stel myModel = myView.ReferencedDocument in Dim msg als snaar myView.ReferencedConfiguration = "DN125" myDraw.ForceHerbouw MsgBox "Klaar" Einde Sub
Tussen aanhalingstekens typ ik de naam van de configuratie die ik wil en de macro wijzigt de configuratie in de tekening