Fragmentaryczna krawędź DXF

Witam

Używamy makra, które sprawia, że rozwinięty DXF części arkusza blachy jest częścią. Działa to dobrze, ale krawędzie blachy są rozdrobnione na DXF przy każdym zagięciu (patrz załączony obraz). Ten problem utrudnia programowanie naszej wykrawarki.

Czy znasz rozwiązanie, aby uniknąć tego problemu?

Z góry dziękuję

 

 


image_probleme.png

Witam

Kiedy jesteś w pokoju i wdrażasz rozłożoną funkcję, masz drugą funkcję, a na tej klikasz prawym przyciskiem myszy i sprawdzasz, czy pole scalania się zatrzymuje (coś w tym stylu, ponieważ nie jestem przed komputerem) i odznacz. W takim przypadku zaznacz to pole i wykonaj test, a jeśli będzie on rozstrzygający, będziesz musiał ponownie zarejestrować swoje modele części z tymi parametrami.

2 polubienia

Dziękuję za tę odpowiedź,

To rozwiązanie działa dobrze, ale konieczne będzie ponowne wykonanie obsługi dla każdej istniejącej części. Czy istnieją bardziej systematyczne rozwiązania? (Parametr w opcjach ; funkcja na makrze generowania DXF ; zbiorcza modyfikacja tego parametru ; ... ?)

W rzeczywistości, jeśli zapiszesz swój model części, będzie on dobry dla nowych kreacji, ale dla starych części, zwykle twój dział programistyczny powinien mieć stare pliki, które zmodyfikował, aby można było z nich korzystać.

1 polubienie

Większość tworzonych przez nas elementów to kopie istniejących części, więc problem pozostanie.

Ok, ale jeśli odbierzesz istniejące części, będziesz musiał wykonać jeszcze dwa kliknięcia, aby je zmodyfikować, aby dxf nie stanowił zbyt dużego problemu dla działu programowania.

1 polubienie

Witam

Możesz dodać modyfikację tego parametru na początku makra, zajrzyj TUTAJ , powinieneś znaleźć to, czego potrzebujesz (IModelDocExtension::SetUserPreference...) z przykładami, które dobrze pasują.

Pozdrowienia

Grasse ma wszystkie twoje odpowiedzi, znalazłem IFlatPatternFeatureData z właściwością MergeFace.

Muszę sprawdzić, jak to działa, ale wydaje się, że możliwe jest zintegrowanie go z moim makro.

Witam

Aby przetestować z nami, możesz poprosić o kawałek i makro.

Niech Moc będzie z wami.

 

Dzięki Waszym odpowiedziom, odrobinie researchu i załamywaniu się nad głową stworzyłem makro, które modyfikuje wartość 'merge faces' stanu rozwiniętego (lub swFlatPatternFeatureData.MergeFace). 

Dziękuję za pomoc

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 polubienia