Ondanks mijn verschillende zoektochten op het forum en op het internet kan ik niet vinden wat ik zoek... Vandaar mijn vraag
Het doel van mijn macro is om een Solidworks-tekening in verschillende formaten op te slaan voor archivering en in het bijzonder het DXF-formaat voor lasersnijden.
Om er zeker van te zijn dat mijn DXF goed is, wil ik er zeker van zijn dat de schaal 1:1 is. Hoe doe je dat?
Ik heb ontdekt hoe ik de schaal kan veranderen, maar ik wil de gebruiker waarschuwen dat zijn schaal moet worden gewijzigd om fouten te voorkomen.
Om preciezer te zijn, zou ik een test willen doen zoals: als schaal = 1:1 dan doorgaan of stoppen
Bedankt voor je hulp! De VBA-programmering onder solidwoks is nog steeds niet erg leesbaar...
Door stukjes van het antwoord uit elk van je opmerkingen te halen, ben ik erin geslaagd mijn probleem op te lossen en bedankt!
Het overeenkomstige deel van de côde is als volgt:
Dim swApp als object Dim deel als SldWorks.ModelDoc2 Dim swView als SldWorks.Bekijk Dim swModExt als SldWorks.ModelDocExtension Dim swPathDir als tekenreeks Dim swPath als snaar Dim echf As Variant 'De bladschaal wordt opgeslagen in breukformaat (a:b) Dim echV1 als variant 'De schaal van weergave 1 wordt opgeslagen in breuk (a:b) formaat Dim Rep als variant 'voor MsgBox opslag'
Sub RegistratieDXFPDF()
Stel swApp = Toepassing.SldWorks in Deel instellen = swApp.ActiveDoc
"------------ het opvragen van informatie (1) Set swModExt = Deel.Uitbreiding Stel Prop in = swModExt.CustomPropertyManager("")
Stel swView = Part.GetFirstView ' in, waarbij de eerste weergave de echf = swView.ScaleRatio ' schaal ophalen Stel swView in = swView.GetNextView 'Overschakelen naar eerste zicht echV1 = swView.ScaleRatio ' Schaal ophalen Terugwinning van munten Stel swModel = swView.ReferencedDocument in Stel swModExt = swModel.Extension in
"------------ Veiligheidscontroles '--Controle van de schaal van het vel-- Als echf(0) <> "1" of echf(1) <> "1" dan Rep = MsgBox("Let op, de schaal van het blad is " & echf(0) & ":" & echf(1) & vbCrLf & _ "Wil je doorgaan?", vbYesNo, "Dxf Pdf Recording") Als Rep = vbNo dan Sub afsluiten Einde als '--Verificatie van de schaal van het uitzicht-- Als echV1(0) <> "1" of echV1(1) <> "1" dan Rep = MsgBox("Let op, de schaal van de weergave is " & echV1(0) & ":" & echV1(1) & vbCrLf & _ "Wil je doorgaan?", vbYesNo, "Dxf Pdf Recording") Als Rep = vbNo dan Sub afsluiten Einde als