Hallo
Ik zie geen enkele reden waarom deze macro je SW laat crashen, alle gebruikte functies zijn van vóór SW2018. Zet genummerde MsgBoxes tussen elke stap om te zien bij welke functie het crasht...
Vriendelijke groeten
Hallo
Ik zie geen enkele reden waarom deze macro je SW laat crashen, alle gebruikte functies zijn van vóór SW2018. Zet genummerde MsgBoxes tussen elke stap om te zien bij welke functie het crasht...
Vriendelijke groeten
Hallo
Dit is de regel die Solidworks laat crashen:
bRet = swModel.Save3(swSaveAsOptions_Silent, swErrors, swWarnings)
Hallo
Ter herinnering: de hier gegeven macro's zijn slechts bijvoorbeeld en moeten worden herwerkt om op zijn minst foutafhandeling toe te voegen...
U moet dus deze foutafhandeling (zie HIER) toevoegen aan de For-lus en deze fout escaleren, als u dat wilt, in het swErrors-argument (zie HIER) van de functie Save3 .
Vriendelijke groeten
Neem me niet kwalijk, maar het is niet de regel die ik hierboven heb geciteerd die me Solidworks doet crashen, ik heb net wat tests opnieuw gedaan en het is uiteindelijk deze:
Set BoundingBox = swModel.FeatureManager.InsertGlobalBoundingBox(swGlobalBoundingBoxFitOptions_e.swBoundingBoxType_BestFit, False, False, longstatus)
Ik begrijp het echter niet, want het is dezelfde code die in de vorige macro werkte.
En bedankt voor je verduidelijkingen over Save3, ik zal ernaar kijken.
Het antwoord is vrijwel hetzelfde als eerder: vul de foutafhandeling in en lees het fouttype in de longstatus-variabele, zie HIER voor het mogelijke retourfouttype.
Hallo
Ik heb geprobeerd de fout op te lossen, maar nog steeds hetzelfde probleem, namelijk Solidworks crasht op de lijn:
Set BoundingBox = swModel.FeatureManager.InsertGlobalBoundingBox(swGlobalBoundingBoxFitOptions_e.swBoundingBoxType_BestFit, False, False, longstatus)
Ondanks de foutafhandeling crasht Solidworks zonder de msgbox te openen, is er een probleem met de code van mijn foutafhandeling, omdat de msgbox zou moeten verschijnen als er een fout wordt gedetecteerd.
Er is dus geen fout gedetecteerd, dus wat kan een probleem zijn?
Hier is de code met foutafhandeling:
Option Explicit
Dim swApp As Object
Dim longstatus As Long
Dim swModel As SldWorks.ModelDoc2
Dim bRet As Boolean
Dim swErrors As Long
Dim swWarnings As Long
Dim i As Long
Dim Assembly As ModelDoc2
Dim myAssy As AssemblyDoc
Dim myCmps As Variant
Dim myCmp As Component2
Dim nInfo As Long
'Public Enum swGlobalBoundingBoxResult_e
'Inherits System.Enum
Sub main()
Set swApp = Application.SldWorks
Set Assembly = swApp.ActiveDoc
Set myAssy = Assembly
'Dim instance As swGlobalBoundingBoxResult_e
myCmps = myAssy.GetComponents(False)
For i = 0 To UBound(myCmps)
Set myCmp = myCmps(i)
If (myCmp.GetSuppression = 3) Or (myCmp.GetSuppression = 2) Then
bRet = myCmp.Select2(False, 0)
bRet = myAssy.EditPart2(True, True, nInfo)
Set swModel = myAssy.GetEditTarget
On Error GoTo errorHandler
Dim BoundingBox As Object
Set BoundingBox = swModel.FeatureManager.InsertGlobalBoundingBox(swGlobalBoundingBoxFitOptions_e.swBoundingBoxType_BestFit, False, False, longstatus)
bRet = swModel.Save3(swSaveAsOptions_Silent, swErrors, swWarnings)
myAssy.EditAssembly
End If
Next i
Assembly.ForceRebuild3 True
MsgBox "Cubes créés", vbExclamation
Exit Sub
errorHandler:
'indique si l'erreur est detecte
MsgBox "erreur"
End Sub
Hallo
Geen mening over mijn foutafhandeling, klopt het of klopt het helemaal niet?
Bij voorbaat dank
Hallo @treza88
[HS aan]
Kleine vraag uit pure nieuwsgierigheid ;-)
Wat heb je eraan om een visualisatiekubus voor een kamer te hebben en vooral wat is het nut van een ASM om voor elke kamer een visualisatiekubus te hebben.
Persoonlijk gebruik ik de visualisatiekubus nooit.
[HS /Uit]
Vriendelijke groeten
Dank u Zoro_mp voor uw vraag,
Voor mij, en dit is misschien gek, was het de manier om de informatie over de afmetingen van mijn onderdelen te achterhalen, d.w.z. lengte, breedte en dikte.
Maar zoals eerder vermeld, het kan dom zijn, er kunnen andere manieren zijn.
Hallo allemaal en bedankt voor deze Macro!
Ik kan de code niet wijzigen om dit op een uniek stuk te doen. Ik heb eigenlijk een bibliotheek met 3D-onderdelen en ik zou graag een kubus op elk onderdeel willen plaatsen. Behalve dat ik het één voor één moet doen. En via "integratie" op Mycadtools zou ik een macro kunnen gebruiken die het werk zal doen.
Dus ik wilde weten of we deze macro konden aanpassen om de kubus uit één stuk te halen
Bedankt voor je hulp!