| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Nahe an industriellen Realbedingungen, eine Pressemitteilung
|
Autor
|
Thema: Punkte von Spline exportieren (2527 mal gelesen)
|
MarioPauritsch Mitglied Konstrukteur
Beiträge: 3 Registriert: 10.07.2008
|
erstellt am: 10. Jul. 2008 19:53 <-- editieren / zitieren --> Unities abgeben:
Hallo alle miteinander. Ich hab schon die Forums-Suche bemüht, habe aber nicht das gefunden was ich suche. (Ich bitte es zu entschuldigen wenn ich es übersehen habe) Also folgendes Problem: Ich habe eine lange 3D-Spline (ca 100m) und benötige die XYZ-Koordinaten von Punkten im Abstand von ca. 10cm. Wie bekomm ich die raus, und wenn möglich gleich ins Excel rein? Übrigens arbeite ich mit SW2008. Danke für die Hilfe im Voraus! mfg Mario Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 11. Jul. 2008 09:27 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
Hallo Mario, und herzlich willkommen im SolidWorks Brett auf CAD.de Diese Aufgabenstellung ist wesentlich kürzer beschrieben als durchgeführt. Ich kenne weder SolidWorks Funktionalität noch Makros oder Zusatzttols, die das leisten können. Selbst das ganze in Handarbeit zu machen dürfte recht schwierig werden, wenn du jeweils nach exakt 10 cm Splinelänge einen neuen Punkt vermessen willst. Das hört sich danach an das lieber nicht machen zu wollen Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 11. Jul. 2008 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
Hallo Mario Wenn ich sowas machen müsste, würde ich es wie folgt probieren. Eine Kugel auf Anfang der Spline zeichnen und mit Kurvenmuster mustern. Dann ein Makro schreiben, welches mir den Massenschwerkunkt der einzelnen Kugeln rausliest. Gruss Andraes ------------------ 21 ist nur die halbe Antwort. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
toaster1969 Mitglied
Beiträge: 2 Registriert: 11.07.2008 Microsoft Windows XP Professional x64 IntelCore2 Duo CPU 3,16GHz, 8 GB RAM NVidia Quadro FX1700<P>SolidWorks 2007 x64 SP5.0
|
erstellt am: 11. Jul. 2008 12:54 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
Hallo Mario, ein ähnliches Problem hatte ich auch schon mal und habs genau wie oben beschrieben gelöst. Hab dafür ein Makro geschrieben. Da ich noch gut weiß was es für ne Quälerei war das Makro zu schreiben hab ich mit angehangen. Ich hoffe es hilft dir weiter. Gruß Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarioPauritsch Mitglied Konstrukteur
Beiträge: 3 Registriert: 10.07.2008
|
erstellt am: 11. Jul. 2008 15:15 <-- editieren / zitieren --> Unities abgeben:
Hallo! Vielen Dank euch 3! Ihr habt mir wirklich sehr geholfen! Allerdings hab ich noch ein Problem mit dem Makro. Wenn ich es ausführen will kommt immer eine Fehlermeldung! Da ich bis jetzt noch NIE (!!!) ein Makro benötigt habe, kenn ich mich auch nicht damit aus, wie ich diesen Fehler wegbring! Also Fehlermeldung: "Fehler beim Kompilieren: Projekt oder Bibliothek nicht gefunden". In weiterer Folge untermalt er die Zeile "Sub Main" gelb, und in der nächsten Zeile das Wort "swApp" blau. Ich bitte um nochmalige Hilfe! Vielen Dank! Mario [Diese Nachricht wurde von MarioPauritsch am 11. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 11. Jul. 2008 15:36 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
Zitat: Original erstellt von toaster1969: Hallo Mario,ein ähnliches Problem hatte ich auch schon mal und habs genau wie oben beschrieben gelöst. Hab dafür ein Makro geschrieben. Da ich noch gut weiß was es für ne Quälerei war das Makro zu schreiben hab ich mit angehangen. Ich hoffe es hilft dir weiter. Gruß Torsten
Und was genau macht Dein Makro? Also, bei mir sucht es eine Verrundung und erstellt dann eine Skizze mit einem "Schwerpunkte Einzelkörper", wenn ich zuvor das da entferne "swModelDoc.EditDelete", nach "boolstatus = swModelDoc.Extension.SelectByID2("", "SKETCHPOINT", vMassProp(0), vMassProp(1), vMassProp(2), False, 0, Nothing, 0)". Aber das hat nichts mit einer Spline und Unterteilung oder Punkte auslesen zu tun!? Oder irre ich mich? ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 817 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 11. Jul. 2008 15:47 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
|
G. Dawg Ehrenmitglied V.I.P. h.c. Teamleiter FEM Simulation
Beiträge: 2622 Registriert: 12.07.2004 SolidWorks_2o2o SP3.o Win10_x64, Quadro_P2ooo. VisualStudio_2o19_Pro. FEM: Forge_NxT_HPC, ANSYS_WB. 3D-Printer: Ultimaker_2, Tinker_Gnome.
|
erstellt am: 11. Jul. 2008 15:57 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
Zitat: Original erstellt von HenryV:
@Gilu Wenn du ein Kurvengesteuertes Muster mit einem Volumenkörper machst(vorzugsweise eine Kugel), dann bekommst du eine 3D-Skizze mit Punken von den Schwerpunkten.
@Wägi: Ah, das war auf Dein Beitrag!!! Das habe ich völlig übersehen! ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
jens_oliver Mitglied Softwareentwickler
Beiträge: 114 Registriert: 28.06.2005
|
erstellt am: 11. Jul. 2008 18:10 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
hallo, ich denke mit einem makro kann man das recht einfach lösen. Code: Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set swSketchSeg = swSelMgr.GetSelectedObject5(1) Set swCurve = swSketchSeg.GetCurve swCurve.GetEndParams nStartParam, nEndParam, bIsClosed, bIsPeriodic vstartold = nStartParam steps = 100 For i = 1 To steps nextstep = (i * (-nStartParam + nEndParam)) / steps + nStartParam vStart = swCurve.Evaluate(nextstep) length = swCurve.GetLength2(vstartold, nextstep) MsgBox "x=" + Str(vStart(0) * 1000) + " y=" + Str(vStart(1) * 1000) + " z=" + Str(vStart(2) * 1000) + " + le=" + Str(length * 1000) vstartold = nextstep Next i
in dem makro wird natürlich nur eine ganz grobe rasterung vorgenommen und die abstände können recht unterschiedlich sein. wenn man aber noch eine kleine iteration über die länge (parameter "length") einfügt, sollte es doch funktionieren. Gruß Oliver ------------------ Software nach Maß für Ihr CAD-System www.ib-knepper.de [Diese Nachricht wurde von jens_oliver am 11. Jul. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarioPauritsch Mitglied Konstrukteur
Beiträge: 3 Registriert: 10.07.2008
|
erstellt am: 11. Jul. 2008 19:03 <-- editieren / zitieren --> Unities abgeben:
|
jens_oliver Mitglied Softwareentwickler
Beiträge: 114 Registriert: 28.06.2005
|
erstellt am: 11. Jul. 2008 19:51 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
da war ich wohl zu langsam. habe das makro mal erweitert. wenn man eine neue 3D skizze öffnet und den spline in der anderen skizze selektiert, erzeugt das makro an den entsprechenden stellen punkte. den Abstand und die genauigkeit kann man im makro ändern.
Code: Sub main()Dim distance As Double Dim accuracy As Double 'Abstand distance = 10 ' mm 'genauigkeit accuracy = 0.01 ' mm Dim swApp As Object Dim nStartParam As Double Dim nEndParam As Double Dim bIsClosed As Boolean Dim bIsPeriodic As Boolean Dim vPoint As Variant Dim length As Double Dim nextstep As Double Dim oldstep As Double Dim totallength As Double Dim pos As Double Dim stepIterate As Double Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set swSketchSeg = swSelMgr.GetSelectedObject5(1) Set swCurve = swSketchSeg.GetCurve swCurve.GetEndParams nStartParam, nEndParam, bIsClosed, bIsPeriodic totallength = swCurve.GetLength2(nStartParam, nEndParam) accuracy = accuracy / 1000 distance = distance / 1000# oldstep = nStartParam pos = 0# stepIterate = (-nStartParam + nEndParam) / 20 While pos < totallength nextstep = oldstep + stepIterate Set swCurve = swSketchSeg.GetCurve ' neu eingefügt swCurve.GetLength2(oldstep, nextstep) While Abs(length - distance) > accuracy If length > distance Then If stepIterate > 0 Then stepIterate = -stepIterate / 2# End If nextstep = nextstep + stepIterate ElseIf length < distance Then If stepIterate < 0 Then stepIterate = -stepIterate / 2# End If nextstep = nextstep + stepIterate End If length = swCurve.GetLength2(oldstep, nextstep) Wend ' found point vPoint = swCurve.Evaluate(nextstep) swModel.CreatePoint2 vPoint(0), vPoint(1), vPoint(2) pos = pos + length stepIterate = (-nStartParam + nEndParam) / 20 oldstep = nextstep Wend
End Sub
Schönes Wochenende Oliver
------------------ Software nach Maß für Ihr CAD-System www.ib-knepper.de [Diese Nachricht wurde von jens_oliver am 07. Jan. 2009 editiert.] [Diese Nachricht wurde von jens_oliver am 07. Jan. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
toaster1969 Mitglied
Beiträge: 2 Registriert: 11.07.2008 Microsoft Windows XP Professional x64 IntelCore2 Duo CPU 3,16GHz, 8 GB RAM NVidia Quadro FX1700<P>SolidWorks 2007 x64 SP5.0
|
erstellt am: 14. Jul. 2008 07:59 <-- editieren / zitieren --> Unities abgeben: Nur für MarioPauritsch
@G. Dawg Stimmt ne kurze Erklärung wäre sichelich angebracht gewesen. War wohl schon gedanklich um WE Antwort bezog sich auf den Vorschlag von HenryV Das Makro sucht einfach jeden Volumenkörper, setzt von jedem Volumenkörper in den Massenschwerpunkt einen 3D-Skizzenpunkt und löscht zu letzt den ersten Skizzenpunkt wieder. War einfach der Ablauf den ich brauchte. Das mit der Verrundung rührt wahrscheinlich daher, das das Makro aus nem anderen von mir entstanden ist bei dem ich u.a. auch nach Verrundungen suche. Gruß Torsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |