| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| AMB 2024 |
Autor
|
Thema: .SelectByID2(, SKETCH (1896 mal gelesen)
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 15:44 <-- editieren / zitieren --> Unities abgeben:
Guten Tag in die Runde, in einer im Featurebaum markierten Skizze möchte ich Änderungen vornehmen. Der Name der Skizze ist stets verschieden. Deshalb möchte ich die Skizze per markieren auswählen. boolstatus = swModel.Extension.SelectByID2("", "SKETCH", 0, 0, 0, False, 0, Nothing, 0) Läßt sich aus der obigen Befehlszeile (per Recorder ermittelt und auf "" abgeändert) der Name der markierten Skizze ermitteln? Über einige Stichworte würde ich mich sehr freuen. Schöne Grüße, PaBü
------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2018 16:20 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
boolstatus = swModel.Extension.SelectByID2("", "SKETCH", 0, 0, 0, .... Dim swFeat1 As Feature Set swFeat1 = swModel.SelectionManager.GetSelectedObject6(1, -1) Dim SkecthNme As String SkecthNme = swFeat1.Name
[Diese Nachricht wurde von Torsten Niemeier am 23. Feb. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 16:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Torsten, besten Dank. So habe ich es auch schon probiert, aber komischerweise springt die Markierung auf den Ursprung und gibt als Namen "Origin" aus. (internat. Firma)... seltsam. Patrick ------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2018 16:31 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 16:34 <-- editieren / zitieren --> Unities abgeben:
Hmm. Nee. Das Makro ist schon älter und hatte die gewünschte Funktion bereits. Ich habs nur mit einigen neuen Funktionen zermurkelt... Aber besten Dank. :-) ------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 23. Feb. 2018 16:56 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Hallo Patrick, wie wärs denn wenn Du den code von Torsten vor Deine Zeile setzt? Code: Dim swFeat1 As Feature Set swFeat1 = swModel.SelectionManager.GetSelectedObject6(1, -1) Dim SkecthNme As String SkecthNme = swFeat1.Nameboolstatus = swModel.Extension.SelectByID2(SkecthNme, "SKETCH", 0, 0, 0, False, 0, Nothing, 0)
------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 17:00 <-- editieren / zitieren --> Unities abgeben:
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2018 17:03 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Ich hätte gern eine Erklärung, was überhaupt gemacht werden soll. Willst Du die Skizze selbst per Hand anwählen oder nicht? Oder gibt es im Modell nur eine Skizze, deren Name Du automatisch ermitteln möchtest? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 17:03 <-- editieren / zitieren --> Unities abgeben:
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 17:07 <-- editieren / zitieren --> Unities abgeben:
Das Marko liest die Dateieigenschaften des SWX -Modells aus und ermittelt daraus die Artikelnummer. Die Artikelnummer wird in einen SketchText geschrieben. In der Standarddatei ist der Text in Sketch19. Vorher, bevor ichs zermurkelt habe, gabs keine Standarddatei und man mußte die Skizze markieren. Dann wurde die Artikelnummer in den SketchText der markierten Skizze geschrieben. Da ich gerade sehr alte Dateien bearbeite, fiel mir die alte Funktion wieder ein. Ich mußte aber feststellen, daß die nicht mehr funktionierte. ------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2018 17:11 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 17:13 <-- editieren / zitieren --> Unities abgeben:
|
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 23. Feb. 2018 17:17 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
|
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2018 17:20 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Once again: Dim swApp As Object Dim swSelMgr As SldWorks.SelectionMgr Dim swFeat1 As Feature Dim SketchName As String Sub main()
Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set swFeat1 = Part.SelectionManager.GetSelectedObject6(1, -1) SketchName = swFeat1.Name MsgBox (SketchName)
End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur
Beiträge: 3682 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 23. Feb. 2018 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 23. Feb. 2018 17:32 <-- editieren / zitieren --> Unities abgeben:
|
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 23. Feb. 2018 18:06 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Zitat: Original erstellt von Torsten Niemeier: @Ralf:Da kannst Du das SelectByID dann auch wegelassen. Die ist ja schon selektiert. :-)
Das ist mir schon klar Dein code hat bei mir auch schon gleich funktioniert Patrick wollte aber auf die Zeile ja nicht verzichten ------------------
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 26. Feb. 2018 17:29 <-- editieren / zitieren --> Unities abgeben:
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 27. Feb. 2018 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Hallo Patrick, ich habe jetzt mal die API-Hilfe durchforstet und irgendwie nichts gefunden wo mann die horizontale Ausrichtung von Texten irgendwie beeinflussen kann, weder über das SketchText- / TextFormat- / Note- / Annotation-Objekt. Ich habe nur die globale Option in den Dokumenteigenschaften für Bezugshinweistexte gefunden. 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 |
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 27. Feb. 2018 10:07 <-- editieren / zitieren --> Unities abgeben:
|
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 27. Feb. 2018 10:40 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 27. Feb. 2018 13:55 <-- editieren / zitieren --> Unities abgeben:
Hallo Ralf, die Punkte habe ich auch schon durchprobiert. Alignment auf 1 setzen, bleibt bei mir wirkungslos... Mein Wunsch ging in die Richtung: swSketchText.Text =Artikelnummer (erleidigt) swSketchText.Format.Alignment= Center (?!) Egal! Herzlichen Dank jedenfalls und schöne Grüße aus Leipzig.
------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ralf Tide Moderator -
Beiträge: 4978 Registriert: 06.08.2001 Sehr seltsame Dinge passiern <Klaus Lage - Toy Story> .-)
|
erstellt am: 27. Feb. 2018 15:00 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
|
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau
Beiträge: 2776 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 27. Feb. 2018 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Hallo Ralf, das InsertSketchText Method (IModelDoc2) hatte ich auch gefunden, das klappt aber eben nur beim erstellen und wenn sich an einer Linie Orrientiert wird, ich hatte eher nach etwas gesucht was einen vorhandenen Text anpasst und das scheint es wohl nicht zu geben. @Patrick du könntest doch jedes mal den Text ersetzen in dem du den alten löscht und einen neuen erstellst, du brauchst halt eine Linie anhand desen SWX auch zentrieren kann. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete [Diese Nachricht wurde von bk.sc am 27. Feb. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 27. Feb. 2018 15:24 <-- editieren / zitieren --> Unities abgeben:
Hallo bk.sc, ja, den Text löschen und neu Erstellen ginge auch... aber dann müßte ich immer die Hilfskonstruktion für den SketchText neuzeichnen. Der gemeinsame Nenner aller Skizzen ist der SketchText, nicht dessen Hilfskonstruktion. Wie ich schon schrieb, sowas wäre schön gewesen: swSketchText.Text =Artikelnummer (erledigt) swSketchText.Format.Alignment= Center (?!) ------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dimitrie Kuhn Mitglied Freiberuflicher Ingenieur
Beiträge: 13 Registriert: 05.11.2011 Win10 64bit SOLIDWORKS CAD 2018/19 SOLIDWORKS PDM 2019
|
erstellt am: 28. Feb. 2018 18:30 <-- editieren / zitieren --> Unities abgeben: Nur für PaBü
Hi Patrick, eine solche Funktion: swSketchText.Format.Alignment = Center (?!) habe ich mir auch schon gewünscht und leider auch nicht gefunden. Ich habe das mit: "GetCoordinates Method (ISketchText)" gelöst. Hier musste ich den Text auch neu zeichnen und an einer Linie ausrichten. Jedoch kann ich mit den Koordinaten des vorhergehenden Textes den neuen Text exakt positionieren. In deinem Fall müsstest du somit "die Hilfskonstruktion für den SketchText" nicht neu zeichnen. Ein Beispiel-Makro habe ich dir angehängt, möglicherweise hilft es dir ... Viele Grüße Dimitrie ------------------ KUHN ENGINEERING OPTIMIERUNG & PARAMETRISIERUNG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Praktikum ? Mechatronik / Maschinenbau Karlsruhe/Sizilien | Die FRENELL GmbH ist ein international tätiges Technologieunternehmen im Bereich der erneuerbaren Energien. Schwerpunkte unserer Tätigkeit sind die Entwicklung und der Bau schlüsselfertiger solarthermischer Kraftwerke (CSP - Concentrated Solar Power) mit integriertem thermischen Energiespeicher (TES - Thermal Energy Storage) basierend auf dem Prinzip der Linear Fresnel-Kollektortechnologie sowie die aktive Projektentwicklung in den entsprechenden Zielmärkten.... | Anzeige ansehen | Mechatronik |
|
PaBü Mitglied Maschinenbauingenieur
Beiträge: 61 Registriert: 10.06.2005
|
erstellt am: 01. Mrz. 2018 10:00 <-- editieren / zitieren --> Unities abgeben:
Hallo Dimitrie, das ist ja sehr elegant gemacht :-) Und ja, das hilft mir sehr! Deinen Code kann ich prima als Formatierfunktion einbinden. Vielen Dank, schöne Grüße aus Leipzig, Patrick ------------------ mfg Patrick EINFACH sein, einfach SEIN! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |