| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | EMO 2025, eine Veranstaltung am 22.09.2025
|
Autor
|
Thema: API:Punkt bemaßen (2160 mal gelesen)
|
Nicola M-R Mitglied Student

 Beiträge: 16 Registriert: 17.04.2007 SW 2006 wechselnde Arbeitsplätze: ca.2 GB RAM ca.3 GHz Prozessor
|
erstellt am: 26. Jul. 2007 10:41 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich versuche gerade einen Punkt in eine bestehende Skizze einzufügen.(per API) Das klappt. Dann füge ich Beziehungen hinzu. Klappt auch. Dann füge ich Bemaßungen hinzu mit AddDimension2 bzw. AddHorizontalDimension2. Bemaßungen werden hinzugefügt. Dabei geht die Modify-Box auf und das Makro stoppt. Nun steht in der Hilfe, dass man die Modify-Box mit ModelDoc2::SetUserPreferenceToggle deaktivieren kann. Meine Versuche mit: bstatus = oswmodel.SetUserPreferenceToggle(SwConst.swUserPreferenceToggle_e.swInputDimValOnCreate, True) bzw. bstatus = oswmodel.SetUserPreferenceToggle(SwConst.swUserPreferenceToggle_e.swInputDimValOnCreate, False) scheiterten, die Modify-Box öffnet sich in beiden Fällen immer noch bei AddDimension2. Weiß jemand Rat? Danke ------------------ Rettet das Orthogravieh! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 26. Jul. 2007 10:51 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|
Nicola M-R Mitglied Student

 Beiträge: 16 Registriert: 17.04.2007 SW 2006 wechselnde Arbeitsplätze: ca.2 GB RAM ca.3 GHz Prozessor
|
erstellt am: 26. Jul. 2007 11:02 <-- editieren / zitieren --> Unities abgeben:         
|
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 26. Jul. 2007 11:11 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|
Nicola M-R Mitglied Student

 Beiträge: 16 Registriert: 17.04.2007 SW 2006 wechselnde Arbeitsplätze: ca.2 GB RAM ca.3 GHz Prozessor
|
erstellt am: 26. Jul. 2007 11:28 <-- editieren / zitieren --> Unities abgeben:         
Weisst du auch, wie ich an den automatisch durch AddDimension vergebenen Namen der Bemaßung komme. Der "LPDISPATCH" (was ist das) Rückgabewert lässt sich nicht von Object in Dimension umwandeln. Mit einer greifbaren "sldworks.dimension" gäbe es die Eigenschaft .Name, aber wie greife ich die erzeugte Dimension? Oder gibt es einen anderen Weg? ------------------ Rettet das Orthogravieh! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 26. Jul. 2007 11:33 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|
Nicola M-R Mitglied Student

 Beiträge: 16 Registriert: 17.04.2007 SW 2006 wechselnde Arbeitsplätze: ca.2 GB RAM ca.3 GHz Prozessor
|
erstellt am: 26. Jul. 2007 11:40 <-- editieren / zitieren --> Unities abgeben:         
Mann bist du schnell...!!! "...diese hat als Rückgabewert ein SldWorks.DisplayDimension Objekt. ..." Das war die mir fehlende Information! Ist das Erfahrung, oder steht das irgendwo in der Hilfe? ------------------ Rettet das Orthogravieh! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 26. Jul. 2007 11:44 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
Hallo Nicola, habe gerade etwas Luft auf der Arbeit und bin froh wenn ich meine Zeit sinnvoll nutzen kann um jemanden zu helfen, warte nämlich verzeifelt auf Daten :-). Das ganze steht auch in der SolidWorks API Hilfe. Suche dort einfach mal nach AddDimension2 und schon führt ein Seite zur nächsten. Etwas Erfahrung mit der Hilfe und allgemein der SolidWorks Objekt Strukur ist natürlich sehr hilfreich, aber nicht zwingend notwendig. ------------------ Mfg Daniel Wer A sagt, der muss nicht B sagen. Er kann auch erkennen, dass A falsch war. Bertolt Brecht ------------------ SolidWorks | API | Makro | Schulung | Freeware | Schuler Design Automation GmbH [Diese Nachricht wurde von tbd am 26. Jul. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicola M-R Mitglied Student

 Beiträge: 16 Registriert: 17.04.2007 SW 2006 wechselnde Arbeitsplätze: ca.2 GB RAM ca.3 GHz Prozessor
|
erstellt am: 26. Jul. 2007 11:58 <-- editieren / zitieren --> Unities abgeben:         
Juhu, der Punkt ist voll definiert, dann können nach dem Mittag fleißig Punkte in Abhängigkeit von der Anlagenbreite vergeben werden, die dann per skizzengesteuertem Muster verschiedenste Anzahlen von gleichen Komponenten bewirken. Leider kann ein lineares Muster nicht mit der Anzahl eins um, das aber auch zurecht...! Vielen Dank nochmal! ------------------ Rettet das Orthogravieh! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MCM Mitglied Dipl.Ing.

 Beiträge: 23 Registriert: 21.12.2006 Windows 7 64bit 24GB Ram Nvidia Quattro 4000 SWX 2016 ME10 18.0
|
erstellt am: 24. Sep. 2007 14:27 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
Hallo, das ganze funktioniert ja sehr gut solange ich ein Makro direkt in SWX schreibe. Nun ist mein Makro allerdings als VBA Makro in Excel drin, da es mehr mit Excel als mit SWX zu tun hat. Bislang störte das auch nicht, doch jetzt kommt bei der Zeile:
Code: tes = swApp.SetUserPreferenceToggle(swconst.swUserPreferenceToggle_e.swInputDimValOnCreate, True)
die Meldung "Objekt erforderlich". Das Gleiche Makro in den VBA Editor von SWX kopiert funktioniert ausgezeichnet. Kann mir da jemand helfen?Malte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 24. Sep. 2007 14:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
Hallo Malte, wie ist dein SolidWorks Applications Objekt swApp deklariert und wie wird es initialisiert? Normal so:
Code:
dim swApp as sldworks.sldworks swapp = getobject(,"SldWorks.Application")
------------------ Mfg Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MCM Mitglied Dipl.Ing.

 Beiträge: 23 Registriert: 21.12.2006 Windows 7 64bit 24GB Ram Nvidia Quattro 4000 SWX 2016 ME10 18.0
|
erstellt am: 24. Sep. 2007 14:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
Hallo, so sieht das "ganze" Makro aus: Code: Sub test2()Dim swApp As Object Dim Part As Object Dim longstatus As Long Dim longwarnings As Long Dim boolstatus As Boolean Dim Annotation As Object Dim x, y, r As Double Dim tes As Boolean x = 0 y = 1 r = 0.3 tes = True Set swApp = CreateObject("sldworks.application") Set Part = swApp.ActivateDoc2("Behälter" + Format(Worksheets("I-O").ik_anzahl / 2 + 1) + ".SLDASM", False, longstatus) tes = swApp.SetUserPreferenceToggle(swconst.swUserPreferenceToggle_e.swInputDimValOnCreate, True) boolstatus = Part.Extension.SelectByID2("Ebene oben", "PLANE", 0, 0, 0, False, 0, Nothing, 0) Part.SketchManager.InsertSketch True Part.CreateCircle x, y, 0, r, y, 0 Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", r, y, 0, False, 0, Nothing, 0) Set Annotation = Part.AddDimension2(x + r + 0.5, y, 0) Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2("Arc1", "SKETCHSEGMENT", x + r, y, 0, False, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2("Point1@Ursprung", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0) Set Annotation = Part.AddDimension2(x + r + 0.5, y / 2, 0) Part.ClearSelection2 True Part.SetPickMode Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2("Point2", "SKETCHPOINT", x, y, 0, False, 0, Nothing, 0) boolstatus = Part.Extension.SelectByID2("Point1@Ursprung", "EXTSKETCHPOINT", 0, 0, 0, True, 0, Nothing, 0) Part.SketchAddConstraints "sgVERTICALPOINTS2D" Part.ClearSelection2 True Part.SketchManager.InsertSketch True tes = swApp.SetUserPreferenceToggle(swconst.swUserPreferenceToggle_e.swInputDimValOnCreate, True) End Sub
Bis auf die besagte Zeile läuft es sowohl aus dem SWX VBA Editor und dem Excel VBA Editor. MFG Malte Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 24. Sep. 2007 15:23 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|
MCM Mitglied Dipl.Ing.

 Beiträge: 23 Registriert: 21.12.2006 Windows 7 64bit 24GB Ram Nvidia Quattro 4000 SWX 2016 ME10 18.0
|
erstellt am: 24. Sep. 2007 15:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|
MCM Mitglied Dipl.Ing.

 Beiträge: 23 Registriert: 21.12.2006 Windows 7 64bit 24GB Ram Nvidia Quattro 4000 SWX 2016 ME10 18.0
|
erstellt am: 24. Sep. 2007 15:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|

| |
tbd Mitglied Teamleiter
  
 Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 24. Sep. 2007 16:05 <-- editieren / zitieren --> Unities abgeben:          Nur für Nicola M-R
|