| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS |
Autor
|
Thema: Text als Gravur (3183 mal gelesen)
|
mmac Mitglied Dipl.-Ing. (FH) - Maschinenbau
Beiträge: 30 Registriert: 01.08.2005 SW2018
|
erstellt am: 18. Mrz. 2008 23:07 <-- editieren / zitieren --> Unities abgeben:
Hallo, wir verarbeiten Blech. In die herzustellenden Teile soll mittels Laser die Teilenr. und die Seriennr. eingraviert werden. Die Teilenr. verändert sich nicht, die SN ändert sich bei jeder Neuproduktion. Ich suche nun nach einer Möglichkeit den Text komfortabler ändern zu können, als die Skizze zu öffnen und dort den Skizzentext zu ändern. Leider habe ich keine Möglichkeit, wie z. B. bei der Bemassung, gefunden, um z. B. dem Text einen Namen zu geben und den Text aus VB auszulesen, zu ändern und den geänderten Wert zu schreiben. Anbei ein Archiv mit dem verwendeten LibFeaturePart. Hat jemand eine Idee / einen Tipp? Vielen Dank im Voraus. ------------------ Viele Gr��e Martin 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: 19. Mrz. 2008 07:55 <-- editieren / zitieren --> Unities abgeben: Nur für mmac
Vielleicht hilft Dir das Beispiel aus der SolidWorks API weiter: Code: '------------------------------- ' ' Preconditions: ' (1) Part document is open and contains ' sketch text. ' (2) Feature for sketch text is selected. ' ' Postconditions: Original sketch text is replaced with ' new sketch text, "New text". ' '------------------------------- Option Explicit Dim swApp As SldWorks.SldWorks Dim swModel As Object Dim swSelMgr As SldWorks.SelectionMgr Dim swFeat As SldWorks.Feature Dim swSketch As SldWorks.Sketch Dim swSketchText As SldWorks.SketchText Dim params As Variant Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager ' Get the selected feature of the sketch text Set swFeat = swSelMgr.GetSelectedObject6(1, 0) Set swSketch = swFeat.GetSpecificFeature2 ' Edit the sketch of the sketch text swModel.EditSketch ' Get the sketch text params = swSketch.GetSketchTextSegments ' Only one instance of sketch text so ' set SketchText to that instance Set swSketchText = params(0) ' Print the current sketched text Debug.Print swSketchText.text 'Change the sketched text swSketchText.text = "New text" ' Print the changed text Debug.Print swSketchText.text ' Insert the new text in the sketch, ' rebuild the part with any changes ' made to the sketch, and ' exit sketch mode swModel.InsertSketch2 True End Sub
Unglaublich, aber es funktioniert sogar! Mann muss nur die Skizze mit dem Skizzentext auswählen (Unterhalb vom Feature) und das Makro starten. ------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CSchnitz Mitglied
Beiträge: 30 Registriert: 12.03.2008 SWX 2011 64x SP 3.0 WINDOWS7 64bit
|
erstellt am: 19. Mrz. 2008 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für mmac
|
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: 19. Mrz. 2008 08:55 <-- editieren / zitieren --> Unities abgeben: Nur für mmac
Dieser Schnipsel sollte Dir eigentlich weiterhelfen. Code:
dummy = swModel.AddCustomInfo3("", "Dateiname", swCustomInfoText, "$PRP:""SW-Dateiname(File Name)""") swModel.CustomInfo("Dateiname") = "$PRP:""SW-Dateiname(File Name)""" GET_DATEINAME = swModel.GetCustomInfoValue("", "Dateiname")
------------------ Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mmac Mitglied Dipl.-Ing. (FH) - Maschinenbau
Beiträge: 30 Registriert: 01.08.2005 SW2018
|
erstellt am: 20. Mrz. 2008 23:23 <-- editieren / zitieren --> Unities abgeben:
Hallo G. Dawg, habe es soeben ausprobiert. Funktioniert einwandfrei, vielen Dank. Ich hatte auch die SW-API-Beispiele durchsucht und wahrscheinlich das Beispiel am unteren Ende der Liste übersehen. Vielen Dank Gruß Martin ------------------ Viele Gr��e Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CSchnitz Mitglied
Beiträge: 30 Registriert: 12.03.2008 SWX 2011 64x SP 3.0 WINDOWS7 64bit
|
erstellt am: 26. Mrz. 2008 12:43 <-- editieren / zitieren --> Unities abgeben: Nur für mmac
|
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: 26. Mrz. 2008 13:09 <-- editieren / zitieren --> Unities abgeben: Nur für mmac
Ich habs jetzt nicht ausprobiert, aber so ca. so sollte es gehen: Code: '------------------------------- ' ' Preconditions: ' (1) Part document is open and contains ' sketch text. ' (2) Feature for sketch text is selected. ' ' Postconditions: Original sketch text is replaced with ' new sketch text, "New text". ' '------------------------------- Option ExplicitDim swApp As SldWorks.SldWorks Dim swModel As Object Dim swSelMgr As SldWorks.SelectionMgr Dim swFeat As SldWorks.Feature Dim swSketch As SldWorks.Sketch Dim swSketchText As SldWorks.SketchText Dim params As Variant Dim dummy Dim getTextDateiname As String Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager '''''''''' START Dateiname als Benutzerdefinierte Eigenschaft erstellen und Dateiname eintragen dummy = swModel.AddCustomInfo3("", "TextDateiname", swCustomInfoText, "$PRP:""SW-Dateiname(File Name)""") swModel.CustomInfo("TextDateiname") = "$PRP:""SW-Dateiname(File Name)""" getTextDateiname = swModel.GetCustomInfoValue("", "TextDateiname") '''''''''' ENDE Dateiname als Benutzerdefinierte Eigenschaft erstellen und Dateiname eintragen ' Get the selected feature of the sketch text Set swFeat = swSelMgr.GetSelectedObject6(1, 0) Set swSketch = swFeat.GetSpecificFeature2
' Edit the sketch of the sketch text swModel.EditSketch ' Get the sketch text params = swSketch.GetSketchTextSegments ' Only one instance of sketch text so ' set SketchText to that instance Set swSketchText = params(0) ' Print the current sketched text Debug.Print swSketchText.Text 'Change the sketched text swSketchText.Text = getTextDateiname ' Print the changed text Debug.Print swSketchText.Text ' Insert the new text in the sketch, ' rebuild the part with any changes ' made to the sketch, and ' exit sketch mode swModel.InsertSketch2 True End Sub
Vermutlich gäbe es eine elegantere Lösung den Dateiname zu finden, als den zuerst als BDE anzulegen. Leider weiss ich die (noch) nicht!
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |