Hallo
We gebruiken een macro die de uitgevouwen DXF van het plaatwerkonderdeel maakt. Dit werkt goed, maar de randen van het plaatwerk zijn bij elke bocht gefragmenteerd op de DXF (zie bijgevoegde afbeelding). Dit probleem belemmert het programmeren van onze ponsmachine.
Weet jij een oplossing om dit probleem te voorkomen?
Bij voorbaat dank
image_probleme.png
Hallo
Als je in de kamer bent en je implementeert de uitgevouwen functie, heb je een tweede functie en op deze klik je met de rechtermuisknop en vor als de stopbox samenvoegt (zoiets omdat ik niet voor mijn pc zit) en het vinkje uitschakelt. Als dit het geval is, vink dan dit vakje aan en voer een test uit en als deze doorslaggevend is, moet u uw onderdeelmodellen opnieuw registreren met deze parameters.
2 likes
Dank u voor dit antwoord,
Deze oplossing werkt goed, maar het zal nodig zijn om de behandeling voor elk bestaand onderdeel opnieuw uit te voeren. Zijn er meer systematische oplossingen? (Parameter in de opties ; functie op de DXF-generatie macro; wijziging van deze parameter in bulk ; ... ?)
Als u uw onderdeelmodel opslaat, is het in feite goed voor nieuwe creaties, maar voor oude onderdelen zou uw programmeerafdeling normaal gesproken de oude bestanden moeten hebben die ze hebben gewijzigd zodat ze kunnen worden gebruikt.
1 like
Het merendeel van de stukken die we maken zijn kopieën van bestaande onderdelen, dus het probleem zal blijven bestaan.
Oké, maar als je bestaande onderdelen terugneemt, heb je nog twee klikken nodig om het aan te passen, zodat de dxf niet al te veel problemen oplevert voor de programmeerafdeling.
1 like
Hallo
U kunt de wijziging van deze parameter aan het begin van de macro toevoegen, kijk HIER, u zou moeten vinden wat u nodig heeft (IModelDocExtension::SetUserPreference...) met de voorbeelden die goed gaan.
Vriendelijke groeten
Grasse heeft al je antwoorden, ik vond IFlatPatternFeatureData met de eigenschap MergeFace.
Ik moet nog even kijken hoe dit werkt, maar het lijkt me mogelijk om het in mijn macro te integreren.
Hallo
Om bij ons te testen kun je een stuk en de macro vragen.
Moge de kracht met je zijn.
Dankzij jouw antwoorden, een beetje onderzoek en het pijnigen van mijn hersens heb ik een macro gemaakt die de waarde van 'merge faces' van de uitgevouwen toestand (of swFlatPatternFeatureData.MergeFace) wijzigt.
Bedankt voor je hulp
Sub main()
Dim SwApp As SldWorks.SldWorks
Dim Part As SldWorks.ModelDoc2
Dim boolstatus As Boolean
Dim swFeature As SldWorks.Feature
Dim swFlatPatternFeatureData As SldWorks.FlatPatternFeatureData
Set SwApp = Application.SldWorks
Set Part = SwApp.ActiveDoc
Set swFeature = Part.FirstFeature
While Not swFeature Is Nothing
If swFeature.GetTypeName = "FlatPattern" Then
Set swFlatPatternFeatureData = swFeature.GetDefinition
If swFlatPatternFeatureData.MergeFace = 1 Then
swFlatPatternFeatureData.MergeFace = False
Else
swFlatPatternFeatureData.MergeFace = True
End If
boolstatus = swFeature.ModifyDefinition(swFlatPatternFeatureData, Part, Nothing)
End If
Set swFeature = swFeature.GetNextFeature
Wend
End Sub
2 likes