| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
Autor
|
Thema: Texte in Skizze auflösen (1626 / mal gelesen)
|
Hermann75 Mitglied Konstrukteur
 
 Beiträge: 134 Registriert: 04.05.2016 MS Windows 11 Pro; Intel i9-12900HX; HP ZBook Fury 16 G9 64GB Ram; 64bit; NVIDIA RTX A3000 SWX 2023 SP5 Professional SWX PDM 2023 Professional CAMWorks 2023 (SWX) HiCAD next 2008 Helios next 2008
|
erstellt am: 27. Sep. 2019 15:46 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen Hat jemand ein Makro (oder Fragmente davon), mit dem man in einer offenen Skizze alle Texte auflösen kann (DissolveSketchText)? Und ist jemand bereit ein solches uns zur Verfügung zu stellen? Würde uns noch helfen. Gruss, Hermann
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
freierfall Ehrenmitglied V.I.P. h.c. Techniker

 Beiträge: 11611 Registriert: 30.04.2004 SWX (Pro) Flow 2020
|
erstellt am: 28. Sep. 2019 06:37 <-- editieren / zitieren --> Unities abgeben:          Nur für Hermann75
ich mache das immer im AutoCad, vielleicht gibt es Text in Pfade umwandeln ja auch im DS. Theoretisch müsste es diese Funktion auch in kostenfreien Vektorenprogrammen geben, aber ich habe es nicht gefunden. ich hoffe du meinst das. herzlich Sascha Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Hermann75 Mitglied Konstrukteur
 
 Beiträge: 134 Registriert: 04.05.2016 MS Windows 11 Pro; Intel i9-12900HX; HP ZBook Fury 16 G9 64GB Ram; 64bit; NVIDIA RTX A3000 SWX 2023 SP5 Professional SWX PDM 2023 Professional CAMWorks 2023 (SWX) HiCAD next 2008 Helios next 2008
|
erstellt am: 02. Okt. 2019 11:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen Hab mal versucht einen Code zu schreiben. Leider funktioniert das Selektieren des Textes nur nicht immer. (Von 5 Texten wird nur einer gefunden.) Hat jemand eine Idee, wie ich die Texte besser finden kann? Sub Text_aufloesen() 'Makro zum Auflösen von Texten in Skizzen 'Hermann Stiefel für Zubler Handling AG, 01.10.2019 ' 'Grosse Teile des Programms stammen von Stefan Berlitz und PaulchenPanter, www.cad.de
Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim swSelMgr As SldWorks.SelectionMgr Dim swSketch As SldWorks.Sketch Dim vSketchText As Variant Dim swSketchText As SldWorks.SketchText Dim ac As Long Dim boolstatus As Boolean Dim Coord As Variant Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSelMgr = swModel.SelectionManager Set swSketch = swModel.GetActiveSketch2 vSketchText = swSketch.GetSketchTextSegments For ac = 0 To UBound(vSketchText) Set swSketchText = vSketchText(ac) Coord = swSketchText.GetCoordinates MsgBox (swSketchText.Text) boolstatus = swModel.Extension.SelectByID2("", "SKETCHTEXT", Coord(0), Coord(1), 0, False, 0, Nothing, 0) If boolstatus = 1 Then swModel.DissolveSketchText End If swModel.ClearSelection2 (True) Next End Sub Gruss, Hermann PS: Beim angehängten File handelt es sich um einen sldprt-Datei mit der besagten Skizze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 02. Okt. 2019 14:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Hermann75
Hallo Hermann, ich würde mal tippen das die Coordinaten die GetCoordinates liefert nicht genau auf dem Text (einer Linie davon) liegen und daher bei SelectByID nicht erwischt werden, ich hab es jetzt mal versucht das SketchSegemt direkt zu selectieren (Select4) und es scheint zu klappen. Das Select/ Case kann man auch anderst lösen ist vom Ausgangsbeispiel noch drin (Get All Elements of Sketch Example (VBA)). Code:
Option ExplicitSub main() Dim sSkSegmentsName(5) As String Dim swApp As SldWorks.SldWorks Dim swModel As SldWorks.ModelDoc2 Dim SelData As SldWorks.SelectData Dim swSketch As SldWorks.Sketch Dim vSkSegArr As Variant Dim vSkSeg As Variant Dim swSkSeg As SldWorks.SketchSegment Dim boolstatus As Boolean Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc Set swSketch = swModel.GetActiveSketch2 vSkSegArr = swSketch.GetSketchSegments For Each vSkSeg In vSkSegArr Set swSkSeg = vSkSeg Select Case swSkSeg.GetType Case swSketchText boolstatus = swSkSeg.Select4(False, SelData) If boolstatus = True Then swModel.DissolveSketchText End If swModel.ClearSelection2 (True) Case Default End Select Next vSkSeg End Sub
Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Hermann75 Mitglied Konstrukteur
 
 Beiträge: 134 Registriert: 04.05.2016 MS Windows 11 Pro; Intel i9-12900HX; HP ZBook Fury 16 G9 64GB Ram; 64bit; NVIDIA RTX A3000 SWX 2023 SP5 Professional SWX PDM 2023 Professional CAMWorks 2023 (SWX) HiCAD next 2008 Helios next 2008
|
erstellt am: 02. Okt. 2019 16:27 <-- editieren / zitieren --> Unities abgeben:         
|