Eksport punktów w formacie STEP


Witam

Mam zespół z kilkoma częściami, w tym częściami zawierającymi krzywe i punkty (w szkicach 3D).
Muszę wykonać eksport w formacie STEP.
Objętości i krzywe są dobre, udaje mi się je wyeksportować kilka razy, bawiąc się parametrami eksportu, ale nie da się mieć chmury punktów.
Próbowałem wszystkich opcji, ale nic nie pomagało.
Próbowałem testu z formatem IGES i wszystko jest w porządku, mam wszystko, ale niemożliwe w formacie krokowym.
Powinienem zaznaczyć, że jestem zmuszony do eksportu w STEP i ta chmura punktów jest niezwykle ważna. W rzeczywistości punkty te będą wykorzystywane do sondowania w oprogramowaniu metrologicznym.
Nie sądzę, aby było to ograniczenie samego formatu krokowego, ponieważ CREO radzi sobie bez problemu eksportować krzywe i punkty.
 
Czy ktoś może mi pomóc? Może makro?
 
Dziękuję
Pozdrowienia

Nikt nie ma tropu? Oświadczam, że korzystam z Solidworks 2019 SP5

 

Dziękuję

Nikt nie ma rozwiązania tego problemu? Oświadczam, że korzystam z Solidworks 2019 SP5

Może na przykład z plikiem Solidworks łatwiej byłoby rozwiązać problem?

Następnie musisz tylko sprawdzić, czy działa na innej wersji oprogramowania. Lub jeśli to dlatego, że plik jest zbyt duży lub z innego powodu.

A jeśli nie chodzi o plik lub opcję, ale o ograniczenie oprogramowania, skontaktuj się z infolinią.

 

1 polubienie

Witam 

W związku z tym załączam plik SW, o którym mowa. Potrzebuję więc, w eksporcie STEP, chmury punktów oraz krzywych.

Jeśli ktoś przyjedzie, proszę o wyjaśnienie mi procedury

 

Z góry dziękuję


nuage_de_points_export_step.sldprt

Witam

Pozwolę sobie powrócić do tego tematu. Plik, o którym mowa, jest załączony do mojej poprzedniej odpowiedzi

Z góry dziękuję tym, którzy mogli mi pomóc

Witaj Aurélien,

 

Przyjrzałem się trochę twojemu problemowi dziś rano. Na pytanie, czy SolidWorks pozwala na natywny eksport punktów szkicu 3D do pliku STEP, jedyną odpowiedzią, która wydaje się być prawidłowa, jest to, że nie jest to możliwe.

Ponieważ plik STEP jest (niebinarnym) plikiem tekstowym, można go otworzyć za pomocą dowolnego edytora tekstu. A kiedy otwieram STEP utworzony przez SolidWorks z pliku części, nie mogę znaleźć współrzędnych punktów w nim zawartych.

 

Teraz możliwe jest wyodrębnienie współrzędnych punktów za pomocą makra, takiego jak to zaproponowane pod tym linkiem: https://forum.solidworks.com/thread/21628#comment-135766

Potem dobrze się bawiłem, robiąc to i generując KROK za pomocą skryptu Pythona (nie jestem fanem makr VBA). Ponieważ definicja formatu STEP jest w płatnym standardzie, zrobiłem to poprzez interpolację z przykładów plików STEP. Problem polega na tym, że SolidWorks nie importuje punktów z plików STEP jako punktów fizycznych. Jest to prawdopodobnie związane z faktem, że nie potrafi on odróżnić pojedynczego punktu, który powinien być traktowany jako taki, od punktów, które definiują punkty końcowe krzywej i które nie powinny być brane pod uwagę indywidualnie.

Zaimportowanie wygenerowanego przeze mnie pliku STEP spowoduje zatem powstanie pustej części. To samo dotyczy FreeCAD. Następnie zadaję sobie dwa pytania:

  • Czy masz przykład pliku STEP z samymi punktami wyeksportowanymi przez Creo, aby potraktować go jako szablon i mieć pewność, że wygenerowany przeze mnie plik jest podobny?
  • Czy możesz spróbować zaimportować dwa załączone pliki STEP do swojego oprogramowania metrologicznego (na wypadek, gdybym się ślepo mylił)?

Jeśli to zadziała w ten sposób, łatwo będzie przekonwertować mój skrypt Pythona na VBA, aby móc go używać bezpośrednio z oprogramowania.


fichiers_step_generes_v1.zip
2 polubienia

Witam

Tylko pytanie Dlaczego warto eksportować ściegi w kroku?

Za pomocą tego makra możesz podać je w formie tabeli Excela.

Niech moc będzie z tobą


pointtoexcel.swp
1 polubienie

Witaj mgauroy,

Przede wszystkim dziękuję za poświęcony czas i przeprowadzone testy .

Próbowałem więc zaimportować pliki do mojego oprogramowania metrologicznego, ale nic nie miałem, jest puste, jak przy próbie otwarcia na SW. Z drugiej strony, jeśli chodzi o Twoją prośbę o eksport punktów za pomocą creo,  będzie to trudne. Nie mam tego oprogramowania i jest to plik wysłany przez klienta, który przerobiłem, usuwając woluminy.

Z drugiej strony, SW jest doskonale w stanie odczytać punkty innych plików STEP, dowód z plikiem, który Ci wysłałem. 

Mogę spróbować sprawdzić, czy mogę pobrać tę chmurę punktów bezpośrednio w STEP i wysłać ją tutaj bez przerabiania jej na SW. 

Nawiasem mówiąc, o ile się nie mylę, nawet w szkicowaniu 2D eksport punktów nie działa.

Czy uważasz, że istnieje rozwiązanie?

Pozdrawiam

Witam

Po prostu dlatego, że potrzebuję tych punktów, aby wiedzieć, gdzie powinienem się znaleźć, aby sondować za pomocą mojej maszyny sterującej 3D. Problem polega jednak na tym, że punkty te muszą być połączone z modelem 3D części. Niestety pliki, które mogę zaimportować do mojego oprogramowania metrologicznego, to tylko format STEP.

Rysuję więc mój model, moje krzywe i moje punkty, a następnie eksportuję je w STEP. Muszę użyć różnych opcji eksportu, aby uzyskać krzywe i model (2 pliki STEP), ale nie mogę uzyskać punktów. 

Licencja oprogramowania metrologicznego obsługuje kilka formatów, w tym IGES, ale niestety opcja jest płatna, więc poprosiłem infolinię oprogramowania o zrobienie testu, czy z IGES działa i wszystko jest w porządku, jest wszystko, model, krzywe i punkty ponadto z jednym plikiem.

Wybraliśmy opcję STEP, ponieważ jeden z naszych klientów pracuje z tym formatem i dostarczył nam woluminy (wykonane w Creo), ale nie przewidzieliśmy, że nie będzie to działać z Solidworks. Więc jeśli muszę dokonać modyfikacji sondowania, jestem zirytowany

Stąd moje pytanie, aby znaleźć obejście, ponieważ obecnie nie ma możliwości zakupu opcji IGES .

To wszystko, teraz poprosiłem mojego klienta, aby przesłał mi, jeśli to możliwe, tylko krzywe, aby zobaczyć, jak są sformatowane i sprawdzić, czy możemy to odtworzyć za pomocą makra.

Dzięki za zainteresowanie

@ aurelien.buathier

ok rozumiem

Nie znam się dobrze na temacie, może powiem coś głupiego, ale i tak to powiem, czy da się umieścić mikro sferę w każdym punkcie?

Niech Moc będzie z wami.

 

1 polubienie

@ OBI WAN

Nie jest to głupota, wręcz przeciwnie.

Problem polega na tym, że potrzebuję mojego oprogramowania metrologicznego, aby móc zinterpretować to jako punkt, a nie kulę

Aby zilustrować moje słowa, załączam 1 zrzut ekranu w moim oprogramowaniu metrologicznym , który pokazuje, że potrzebuję 2 rzeczy. Powierzchnia modelu i punkt, którego używam jako współrzędnych eksat do pomiaru punktów. Wiedząc, że ten program jest współdzielony, ma to sprawić, że pomiar będzie bardziej wiarygodny, w przypadku zmiany możemy przesyłać sobie nawzajem poprawki. Mój problem polega na tym, że mogę modyfikować jego punkty na SW , ale nie mogę ich zapisać w STEP.

Wiem, że jest to bardzo konkretna prośba, ale dość zaskakujące jest to, że eksport do oczyszczalni ścieków stwarza tak wiele problemów. Zwłaszcza, że działa z innym oprogramowaniem. 

Uważam jednak, że rozwiązanie zaproponowane przez @mgauroy jest rozwiązaniem, które wymaga dopracowania

Dzięki za leady

Pozdrowienia


logiciel_metrologie.jpg
1 polubienie

Witam, jeśli dobrze zrozumiałem Twojego klienta w CREO.

Dlaczego nie wyślesz swojego pliku do IGES, aby mógł go przekonwertować na KROK

Jeśli otworzę plik SW w SW i zapiszę go w IGES, a następnie otworzę go w CATIA, mogę go łatwo zapisać w STEP.

 

1 polubienie

Cześć Franck

Rzeczywiście jest to możliwe, ale można zrozumieć, że dla 1 lub 2 plików jest to możliwe, ale mówimy o kilku programach. Pracując jako podwykonawca muszę tworzyć programy pośrednie, które nie dotyczą bezpośrednio produktu końcowego, nie wspominając o tym, że jeśli chcę zrobić program od A do Z, nie mogę tego zrobić samodzielnie. Gdyby to było tylko kilka programów, nie szukałbym innego rozwiązania niż to, które wymieniłeś. Nie wspominając już o projektach dla innych klientów. 

Potrzebuję realnego rozwiązania przy użyciu środków, którymi dysponuję

Dziękuję za odpowiedź

Franck

Czy byłoby możliwe, aby plik STEP został wygenerowany przez CATIA? Chciałbym sprawdzić, czy punkty pojawiają się w moim oprogramowaniu metrologicznym?

Z góry dziękuję 

Miłego weekendu dla wszystkich

Witam

Czy możesz dołączyć plik STEP wygenerowany przez Creo (z kropkami, które pojawiają się tak, jak powinny)

Witam

Otrzymałem plik wygenerowany przez CREO, stwierdziłem, że w rzeczywistości plik 2nd STEP wygenerowany przez mgauroy (6 dni temu) był podobny do formatu CREO. Przyjrzałem się więc, dlaczego kropki nie są wyświetlane w moim oprogramowaniu metrologicznym i odkryłem, że w rzeczywistości była to opcja oprogramowania, której zapomniałem aktywować.

Tak więc plik, który nie zawiera wierszy , VERTEX_POINT ('', #1); jest czytelny i użyteczny.

Teraz muszę być w stanie stworzyć makro, które pozwoli mi wyodrębnić jego punkty w . KROK dla każdego montażu, który wykonuję na SW. 

Jeśli mgauroy może pomóc mi lub innej osobie, jest to bardzo szczęśliwe

Dziękuję bardzo 

Witam Spróbuj tego:

Option Explicit
Dim FilePath As String
Dim myPoints As Collection

Sub main()
    Dim swApp As SldWorks.SldWorks
    Dim swModel As SldWorks.ModelDoc2
    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc
    If swModel Is Nothing Then
        MsgBox "Ouvrir une pièce"
        Exit Sub
    End If
    If swModel.GetType <> swDocumentTypes_e.swDocPART Then
        MsgBox "Ouvrir une pièce"
        Exit Sub
    End If
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepAP, 214
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepExportPreference, swAcisOutputGeometryPreference_e.swAcisOutputAs3DCurves_IncludeSketchEnts
    
    FilePath = Left(swModel.GetPathName, InStrRev(swModel.GetPathName, ".") - 1) & ".STEP"
    swModel.Extension.SaveAs2 FilePath, 0, swSaveAsOptions_e.swSaveAsOptions_Silent, Nothing, Empty, False, Empty, Empty
    
    Set myPoints = New Collection

    Dim swFeat As SldWorks.Feature
    Dim swSubFeat As SldWorks.Feature
    Set swFeat = swModel.FirstFeature
    While Not swFeat Is Nothing
        ProcessFeat swFeat
        Set swSubFeat = swFeat.GetFirstSubFeature
        While Not swSubFeat Is Nothing
            ProcessFeat swSubFeat
            Set swSubFeat = swSubFeat.GetNextSubFeature
        Wend
        Set swFeat = swFeat.GetNextFeature
    Wend

    UpdateStep Empty
    
    swApp.SetUserPreferenceIntegerValue swUserPreferenceIntegerValue_e.swStepExportPreference, swAcisOutputGeometryPreference_e.swAcisOutputAsSolidAndSurface
End Sub

Sub ProcessFeat(ByVal swFeat As SldWorks.Feature)
    Dim swSketch As SldWorks.Sketch
    Dim swPt As SldWorks.SketchPoint
    Dim vPts As Variant
    Dim vPt As Variant
    'Debug.Print swfeat.Name & " " & swfeat.GetTypeName2
    If swFeat.GetTypeName2 = "ProfileFeature" Or swFeat.GetTypeName2 = "3DProfileFeature" Then
        Set swSketch = swFeat.GetSpecificFeature2
        vPts = swSketch.GetSketchPoints
        For Each vPt In vPts
            Set swPt = vPt
            If Not swPt Is Nothing Then
                If swPt.Type = swSketchPointType_e.swSketchPointType_User Then
                    myPoints.Add " = CARTESIAN_POINT ( 'NONE',  ( " & swPt.X * 1000 & ", " & swPt.Y * 1000 & ", " & swPt.Z * 1000 & " ) ) ;"
                End If
            End If
        Next
    End If
End Sub

Sub UpdateStep(void)
    Dim myData As String
    Dim filenum As Integer
    filenum = FreeFile
    Debug.Print FilePath
    Open FilePath For Binary As #filenum
    myData = Space$(LOF(1))
    Get #filenum, , myData
    Close #filenum
    
    Dim Lines() As String
    Lines = Split(myData, vbCrLf)
    Dim line As Variant
    Dim MaxNum As Integer
    For Each line In Lines
        If Left(line, 1) = "#" Then
            MaxNum = CInt(Mid(line, 2, InStr(line, "=") - 3))
        End If
    Next
    
    Dim i As Integer
    Dim myLines As String
    For i = 1 To myPoints.Count
        myLines = myLines & "#" & MaxNum + i & myPoints(i) & vbCrLf
    Next i
       
    Dim EndString As String
    EndString = "ENDSEC;" & vbCrLf & "END-ISO"
    myData = Replace(myData, EndString, myLines & EndString)
    
    Open FilePath For Output As #filenum
    Print #filenum, myData
    Close #filenum
End Sub

 

2 polubienia

Witaj Jerome

Dziękuję za skrypt, zrobiłem test, działa idealnie, z drugiej strony nie mogę pracować bezpośrednio z zestawu z kilkoma plikami części, które mają punkty, prawda? Muszę otworzyć każdy utwór osobno i uruchomić skrypt. Nie jest to problem sam w sobie, ale chciałbym móc zrobić to, co dla reszty pliku (objętość i krzywa), a mianowicie wyświetlić na ekranie części zawierające punkty, a następnie uzyskać pojedynczy plik STEP ze wszystkimi punktami. 

Również jedno, numeracja punktów jest oznaczona jako BRAK, chciałbym móc nazwać punkty tak, jak chcę, ale spojrzałem na SW i nie mogłem znaleźć tej opcji. SW podaje liczbę punkt1, punkt2 itd. automatycznie, ale chciałbym mieć możliwość wskazania nazwy każdego punktu, a następnie podczas eksportu w STEP, aby nazwa została zachowana. Czy jest to możliwe?

Aby zilustrować mój punkt widzenia, zamieszczę plik CREO, który otrzymałem od mojego klienta. Kiedy próbuję go otworzyć na SW, mówi mi, że to zespół, a w środku tworzy pokój z kropkami. Dzięki temu mogę dobrze odczytać plik za pomocą tylko kropek. Zobaczysz, że wszystkie kropki są ponumerowane. 

Teraz doskonale zdaję sobie sprawę, że prośba nie jest prosta, a nawet jeśli jest możliwa, to jest to, co chciałbym osiągnąć

W międzyczasie dziękuję wszystkim państwu za pracę, a zwłaszcza za znalezienie rozwiązania. 

Powiedz mi, co myślisz

Dziękuję


nuages_de_points_creo.stp
2 polubienia

Witam

W rzeczywistości zdaję sobie sprawę, że naprawdę potrzebuję tego makra do pracy bezpośrednio z zespołu , w przeciwnym razie, gdy ponownie zaimportuję pliki, nie są one w odpowiednim układzie współrzędnych i nie pasują do części, ponieważ jestem w lokalnym układzie współrzędnych, a nie w układzie współrzędnych zespołu.

Czy jest to możliwe, czy nie?

Dziękuję