Hallo Robert,
Zitat:
Original erstellt von r.hoffmann:
ich bin neu hier im Forum, [...]
Dann herzlich willkommen im SolidWorksbrett
Zitat:
Original erstellt von r.hoffmann:
habe nulll Ahnung vom SWX, [...]
Hm, ...
Zitat:
Original erstellt von r.hoffmann:
[...] ich beschäftige mich mehr mit Programmierung.
Deswegen meine Frage: Ich will per makro in einer Skizze
zwei Punkte anklicken, diese an ein externes Programm
übergeben und von diesem eine berechnete Geometrie
an die Skizze übergeben, bzw. dort zeichnen.
Für kurze Beschreibung des Vorgehens bin ich sehr dankbar.
HHHMMMMM Meinst du nicht es wäre vielleicht besser, sich so ein Makro dann schreiben zu lassen? Mag zwar sein, dass das Geld kostet, aber ist vielleicht doch die bessere Lösung.
Na ja, wie dem auch sei, vielleicht hast du ja etwas untertrieben, also hier mal die prinzipielle Vorgehensweise, wie ich es so aus dem Bauch raus machen würde
0. Das Makro "selbst" klicken zu lassen ist recht schwer, wie üblich sind Makros blind, taub und gefühllos und tun einfach nur genau das, was man ihnen sagt. Also lieber vorher den Anwender die beiden Punkte selektieren lassen und dann erst das Makro starten.
1. Kontrollieren, ob der Skizziermodus aktiv ist -> ModelDoc2.GetActiveSketch2 sollte ein gültiges Sketchobjekt liefern
2. Kontrollieren, ob zwei Punkte gewählt sind -> SelectionMgr::GetSelectedObjectCount2 und SelectionMgr::GetSelectedObjectType3
3. Übergeben an anderes Programm
Was willst du denn übergeben? Die Koordinaten in Bezug auf den Sketch? Die Koordinaten in Bezug auf der Ursprung? Bist du ggf. in einer Baugruppe und brauchst die Transformationsmatrix in bezug auf den Baugruppenursprung? Oder brauchst du die Strecke zwischen den beiden Punkten mit Ausrichtung in 2D oder 3D? Also hier könnte es schwierig werden ...
4. Jetzt hat dein externes Programm irgendwas mit den Punkten (oder was auch immer, siehe 3) gemacht und du willst eine berechnete Geometrie zeichnen. Das geht mit den verschiedenen ModelDoc2::Create... Methoden, wie ModelDoc2::CreateLine2, ModelDoc2::CreateCircle2, ModelDoc2::CreatePoint2 usw. Nicht zu vergessen vorher mit ModelDoc2::SetAddToDB das Schnappen auszuschalten
Die Angaben zu den einzelnen Funktionen findest du alle in der API Hilfe (in SolidWorks im Hilfemenu zu finden), da sind auch eine Menge Beispiele zu finden. Ich befürchte nur, wenn du von SolidWorks wirklich null Ahnung hast, dass du eine Menge Zeit erst mal investieren musst, um überhaupt zu verstehen, wie das alles zusammenhängt. Bei der Automatisierung von SolidWorks ist weniger der Programmierskill, als mehr die SoldiWorkskenntnisse wichtig.
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