| | |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| | |
 | Beratung auf Augenhöhe: Wie echte Partnerschaft Innovation in der Konstruktion vorantreibt., ein Webinar am 03.02.2026
|
|
Autor
|
Thema: API - Sketchsegment selektieren (398 mal gelesen)
|
JM Mitglied
 
 Beiträge: 223 Registriert: 02.11.2000
|
erstellt am: 13. Feb. 2002 12:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo, in der angehängten Datei ist ein Stück einer Zeichnung zu sehen. Dort möchte ich an die in der Zeichnung eingefügte "Mittellinie" (Skizzensegment), siehe Pfeil, oder an den Ursprung des Teils (liegt genau in der Mitte) eine Ordinatenbemaßung anbringen. Leider ist es mir nicht gelungen Skizzensegment oder Ursprung zu selektieren, mit den Modellkanten klappt das prima. Lt. API-Hilfe müßte das mit ModelDoc2::SelectByID funktionieren, aber SWX weigert sich hartnäckig diese Elemente zu fangen . Bin für jede Hilfe dankbar. Bis dann Jana
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Franz Hiemstra Mitglied Diplom-Ingenieur
  
 Beiträge: 527 Registriert: 09.03.2001 SWX 96, ..., SWX 2019-64bit (prod) SWX Plastics VisiCad 18 (prod) Win 10 - 64 bit HP Zbook, HP-Z$ Nividia-GraKa
|
erstellt am: 13. Feb. 2002 13:31 <-- editieren / zitieren --> Unities abgeben:          Nur für JM
Hallo Jana, hier mußt du einen kleinen Umweg gehen. Erzeuge dir in deiner Ansicht einen Hilfspunkt (Punkt) und positioniere diesen mittels Skizzenbeziehung - deckungsgleich - genau auf den Ursprung (Achtung: Ansicht:Ursprung muß eingeschaltet sein). Dann solltest du kein Problem mehr haben. Ähnliches ist beim Fangen von Kreismittelpunkten eventuell notwendig: Hier kann man sich z.B. mit Körperkantenübernahme der Bohrung einen Mittelpunkt erzeugen. Hoffe es hilft Gruß Franz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 13. Feb. 2002 13:43 <-- editieren / zitieren --> Unities abgeben:          Nur für JM
Hi Jana. Wenn Du im MODELL eine Skizze mit den entpr. Mittellinien einzeichnest, sollte es eigentlich keine Probleme geben mit einer Ordinatenbemassung. Bei mir (SWX2001+ SP1.2) hat's jedenfalls ohne zu meckern gefunzt Gruss Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JM Mitglied
 
 Beiträge: 223 Registriert: 02.11.2000 SW2006 SP5.0 Produktiv SW2009 SP4.1 Tesr
|
erstellt am: 15. Feb. 2002 10:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo Franz und Andreas, ersten mal Danke für die schnellen Antworten, aber leider hilft´s nicht weiter . Auch ein Hilfspunkt ist leider nur ein Skizzenpunkt und läßt sich, aus welchem Grund auch immer, (von mir) nicht per API fangen. Wenn man das Programm laufen läßt und an der Stelle an der das Element gefangen werden soll einen Haltepunkt setzt, sieht man daß das Programm einfach drüber läuft. Aber NUR bei Skizzenelementen, bei Modellkanten funktioniert´s ohne Probleme, wähle ich am Haltepunkt das Skizzenlement von Hand aus funktionierts auch. Wäre für weitere Vorschläge dankbar. Trotzdem ein paar Unities für die prompten Antworten. Gruß Jana
[Diese Nachricht wurde von JM am 15. Februar 2002 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Andreas Müller Mitglied Masch. Ing. HTL / Betriebsing. STV
   
 Beiträge: 1151 Registriert: 11.04.2001
|
erstellt am: 15. Feb. 2002 11:28 <-- editieren / zitieren --> Unities abgeben:          Nur für JM
Hi! Uuuups...sorry, ich hab das "API" einfach überlesen, dachte Du wolltest normal in einer Zeichnung die Bemassung einfügen ! Da ich nicht der spitzen-API-ler bin, hab ich einfach mal was versucht: Einfaches Modell mit Mittellinie (als Einzelskizze) erstellt, Makroaufzeichnen, Mittellinie anwählen, Aufzeichnen gestoppt. Linie deselectieren, Makro starten: und die Mittellinie wurde angewählt. Im Makro wurde für das Anwählen der Linie folgender Code ausgegeben: Part.SelectByID "Linie1@Skizze2", "EXTSKETCHSEGMENT", -0.025, -0.03970262747782, 0 Wenn man dasselbe mit einer Zeichnung (von obigem Modell) macht, kommt der Code: Part.SelectByID "Linie1@Skizze2@Test-2@Zeichenansicht2", "EXTSKETCHSEGMENT", -0.025, -0.05378178034682, 0 Wenn man z.B. eine temp. Achse anwählt gibt's:
Part.SelectByID "", "AXIS", 0.08203591338321, 0.1193091180542, 0 Mir scheint dass der Typ "EXTSKETCHSEGMENT" ausschlaggebend ist, hast Du den in der Anweisung?? Gruss Andreas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JM Mitglied
 
 Beiträge: 223 Registriert: 02.11.2000 SW2006 SP5.0 Produktiv SW2009 SP4.1 Tesr
|
erstellt am: 15. Feb. 2002 12:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo Andreas, bin ähnlich vorgegangen um mir die richtigen Typbezeichnungen für die Anweisungen zu holen. Im Modell geht das mit dem Macroaufzeichnen und -ablaufen lassen auch wunderbar, in der Zeichnung leider nicht. Gruß Jana Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Armin B Mitglied Software Engineer ERP/PLM/CAD
 
 Beiträge: 209 Registriert: 04.09.2000 Sw 2015 SP3
|
erstellt am: 15. Feb. 2002 14:08 <-- editieren / zitieren --> Unities abgeben:          Nur für JM
Hallo Jana, hast Du schon drauf gewartet, dass ich meinen Senf dazu gebe??? Also ich würde das Thema ganz anders anpacken. Diese Skizzensegmente sind doch Objekte innerhalb einer Skizze der Ansicht der Zeichnung. Also müsste man. 1. Zeichnungs-Objekt holen 2. Dessen Ansichten (DrawingDoc.GetFirstView, GetNextView) 3. In der Ansicht die Skizze (View.GetSketch) 4. In der Skizze die Skizzenelemente (Sketch.GetLines) 4a. Wenn mehrere Linien, dann über Koordinaten oder Nr. suchen 5. SketchSegment selektieren (SketchSegment.Select) Hoffe, das hilft Dir erstmal weiter. Viele Grüße, Armin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JM Mitglied
 
 Beiträge: 223 Registriert: 02.11.2000
|
erstellt am: 18. Feb. 2002 16:26 <-- editieren / zitieren --> Unities abgeben:         
Hallo Armin, Zitat: ...hast Du schon drauf gewartet, dass ich meinen Senf dazu gebe???
Natürlich! Zitat: Also müsste man. 1. Zeichnungs-Objekt holen 2. Dessen Ansichten (DrawingDoc.GetFirstView, GetNextView) 3. In der Ansicht die Skizze (View.GetSketch) ...
Und da verließen sie Ihn bzw. mich.  Denn über View.GetSketch läuft das Programm einfach drüber und das war´s, Programm beendet. Könntest Du mir vielleicht noch einen kleinen Tip geben?  Bis dann und Dank vorab. Jana Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Reiner Mitglied Maustreiber

 Beiträge: 24 Registriert: 06.11.2000
|
erstellt am: 18. Feb. 2002 17:17 <-- editieren / zitieren --> Unities abgeben:          Nur für JM
Hallo Jana  kann es sein dass Du zum selektieren der Mittellinie die Modellkoordinaten benutzt? Wenn dem so ist, dann mußt Du die Koordinaten für die Pickpunkte zuerst umrechnen. Mit dem Objekt der Ansicht kann man durch die Funktion "GetViewXform" die Transformationsmatrix auslesen. Damit lassen sich die Pickpunkte berechnen. Ich habe das vor längerer Zeit auch mal gebraucht. Den VB-Code lasse ich hier lieber weg, das könnte noch mehr Verwirrung stiften. Wenn Du möchtest kann ich Dir den relevanten Teil zukommen lassen. Gruss Reiner Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |