Witam
Mam zespół z kilkoma częściami, w tym częściami zawierającymi krzywe i punkty (w szkicach 3D).
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ą.
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ę
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:
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.
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ą
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
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.
@ 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
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.
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
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ę
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ę