Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API: Koordinatensystem erstellen in Teil

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SOLIDWORKS Visualize – Online-Live-Schulung, ein Seminar am 29.10.2025
Autor Thema:  API: Koordinatensystem erstellen in Teil (2469 mal gelesen)
Bernd Knab
Mitglied



Sehen Sie sich das Profil von Bernd Knab an!   Senden Sie eine Private Message an Bernd Knab  Schreiben Sie einen Gästebucheintrag für Bernd Knab

Beiträge: 373
Registriert: 16.01.2001

SWX 2020 SP5.0

erstellt am: 21. Jan. 2008 14:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,

Ich möchte einem Teil das Standardkoordinatensystem der Bauguppe, in das es eingebaut ist, einfügen.
Gibt es ein Möglichkeit per API das Koordinatensystem der Baugruppe zu übernehmen?

Gruß Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 21. Jan. 2008 16:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd Knab 10 Unities + Antwort hilfreich

Du könntest per API die Standardebenen jeweils gleichliegend verknüpfen; das geht!

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd Knab
Mitglied



Sehen Sie sich das Profil von Bernd Knab an!   Senden Sie eine Private Message an Bernd Knab  Schreiben Sie einen Gästebucheintrag für Bernd Knab

Beiträge: 373
Registriert: 16.01.2001

SWX 2020 SP5.0

erstellt am: 22. Jan. 2008 07:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Lutz,

ich benötige ein Koordinatensystem im Teil als Endergebnis für den Datenexport. Deshalb funktioniert das Verknüpfen nicht.

Gruß Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Lutz Federbusch
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau



Sehen Sie sich das Profil von Lutz Federbusch an!   Senden Sie eine Private Message an Lutz Federbusch  Schreiben Sie einen Gästebucheintrag für Lutz Federbusch

Beiträge: 3094
Registriert: 03.12.2001

alle SW seit 97+
AutoCAD2016-2022
ERP ProAlpha + CA-Link
Intel Core i7-7820K 32GB
Win10x64 Quadro K5000
SpacePilot

erstellt am: 22. Jan. 2008 09:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd Knab 10 Unities + Antwort hilfreich

Was passiert, wenn Du im Kontext der Baugruppe in einer Skizze Linien zeichnest mit den Baugruppenkoordinaten und von diesen Linien ein Koordinatensystem im Teil erzeugst? So als Idee?!

------------------
Lutz Federbusch
Mein Gästebuch
Der Mensch, Herr oder Sklave der Technik?

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd Knab
Mitglied



Sehen Sie sich das Profil von Bernd Knab an!   Senden Sie eine Private Message an Bernd Knab  Schreiben Sie einen Gästebucheintrag für Bernd Knab

Beiträge: 373
Registriert: 16.01.2001

SWX 2020 SP5.0

erstellt am: 22. Jan. 2008 10:04    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Lutz,

würde auch gehen, aber kurz den Zweck meines Makros, das ich erstellen will:

Ich muß für die IDF Teilebibliothek ein Bauteil ablegen, das dann automatisch über den Ursprung eingebaut und postitioniert wird.
Ich lade mir von E-Bauteilherstellern 3D Modelle herunter und importiere diese. Der Usrprung des importierten Teils entspricht nicht dem hinterlegten Ursprung in den IDF-Dateien. Somit importiere ich erst die Platine ohne Bauteile und erhalte für jedes Bauteil auf der Platine einen Klotz als eigenes Teil. Diese "Klötzchenteil" baue ich in eine temporäre Baugruppe ein mit Teilursprung gleich Baugruppenursprung. Nun baue ich das importierte Modell ein und richte es auf mein "Klötzchenteil" aus.

Jetzt möchte ich im importierten Teil ein neues Koordinatensystem erstellen, welches identisch ist mit dem Baugruppenursprung. Ich könnte auch z.B durch Vorauswahl von Baugruppenursprung und 2 Kanten das Koordinatensystem im Makro erstellen lassen. Dann muß ich mir aber immer im Voraus überlegen, welche Kante welche Achse ergibt und auch die Richtung der Achse muß stimmen.

Anschließend wird das importierte Teil mit dem neuen Koordinatensystem exportiert und wieder importiert. Somit habe ich den Teilursprung dort wo ihn die IDF Vorgabe benötigt.

Gruß Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

jens_oliver
Mitglied
Softwareentwickler


Sehen Sie sich das Profil von jens_oliver an!   Senden Sie eine Private Message an jens_oliver  Schreiben Sie einen Gästebucheintrag für jens_oliver

Beiträge: 114
Registriert: 28.06.2005

erstellt am: 22. Jan. 2008 10:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd Knab 10 Unities + Antwort hilfreich

bin mir nicht sicher ob ich alles richtig verstanden habe, aber vieleicht hilft es ja.

Die Position und Ausrichtung des Standardkoordinatensystem der Bauguppe erhälst du mit
ModelDocExtension.GetCoordinateSystemTransformByName ( nameIn).

Erzeugst du das Koordinatenssytem(CS) im Bauteil mit dieser Transformationsmatrix liegt das CS nicht an der richtigen Stelle, da das Bauteil in der Baugruppe (Instanz,Component) ja verschoben und verdreht sein kann. Die Lage und Ausrichtung (Transformationmatrix) des Bauteils kannst du aber auslesen.
Component2.Transform2

Damit kann man die Lage und Ausrichtung des CS in Bauteilkoordinaten berechnen (s. MathTransform).

Um das Koordinatenssystem zu erzeugen benötigst du wahrscheinlich vorher Ebenen und Punkte, die du auch noch im Bauteil erzeugen musst (Referenzpunkt und Referenzebene). Wie die liegen, kannst du mit der berechneten Transformationsmatrix bestimmen.

Warum einfach, wenn es auch kompliziert geht.

Gruß Oliver


------------------
Software nach Maß für Ihr CAD-System
www.ib-knepper.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

u.clemens
Mitglied
Konstrukteur


Sehen Sie sich das Profil von u.clemens an!   Senden Sie eine Private Message an u.clemens  Schreiben Sie einen Gästebucheintrag für u.clemens

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 22. Jan. 2008 11:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd Knab 10 Unities + Antwort hilfreich

Ich denke, das geht auch einfacher ...
So wie ich das verstanden habe, willst du in einer Baugruppenkomponente ein Koord.system einfügen, welches auf dem Baugruppenursprung liegt und so ausgerichtet ist, wie das Dreibein der Baugruppe.
Auf der Benutzeroberfläche also etwa so: Baugruppe aktiv, Komponente wählen, Komponente (im Baugruppenkontext) bearbeiten, Koordinatensystem einfügen, Ursprung der Baugruppe wählen, die zwei richtigen Grundebenen der Baugruppe zum Ausrichten wählen, Komponentenbearbeitung beenden - fertig.
Warum schaltest du dabei nicht mal den Makro-Recorder ein ?
Bei mir hat er dabei folgendes aufgezeichnet:
Code:

Sub main()
Set swApp = Application.SldWorks
Set Part = swApp.ActiveDoc
Set SelMgr = Part.SelectionManager
boolstatus = Part.Extension.SelectByID2("Part1@Baugruppe1", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0)
Part.EditAssembly
Part.ClearSelection2 True
boolstatus = Part.Extension.SelectByID2("Point1@Ursprung", "EXTSKETCHPOINT", 0, 0, 0, False, 1, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("rechts", "PLANE", 0, 0, 0, True, 2, Nothing, 0)
boolstatus = Part.Extension.SelectByID2("oben", "PLANE", 0, 0, 0, True, 4, Nothing, 0)
Part.InsertCoordinateSystem False, False, False
Part.EditAssembly
Part.ClearSelection2 True
End Sub


Da hast du doch schon alles wesentliche! Es muß nur noch etwas "aufgehübscht" werden. Damit es universell einsetzbar ist, sollte die Wahl der Baugruppenkomponente vielleicht vor Start des Makros erfolgen, das Makro müßte dann ermitteln, welche Komponente selektiert ist, - und speichern der Komponente nicht vergessen.

------------------
mfg uc

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Bernd Knab
Mitglied



Sehen Sie sich das Profil von Bernd Knab an!   Senden Sie eine Private Message an Bernd Knab  Schreiben Sie einen Gästebucheintrag für Bernd Knab

Beiträge: 373
Registriert: 16.01.2001

SWX 2020 SP5.0

erstellt am: 22. Jan. 2008 11:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo uc,

ich hatte mir das Makro schon aufgezeichnet, jedoch habe ich nicht die Ebenen der Baugruppe ausgewählt sondern irgendwelche Teilekanten. Mir hat der Schritt gefehlt, die Bauruppenebenen zu selektieren.

Danke.

So komme ich weiter.

Danke auch an Oliver. Ich habe mich jedoch gescheut an die MathTransform heranzugehen, da ich damit noch nicht gearbeitet habe.

Gruß Bernd

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

PaulB
Mitglied



Sehen Sie sich das Profil von PaulB an!   Senden Sie eine Private Message an PaulB  Schreiben Sie einen Gästebucheintrag für PaulB

Beiträge: 25
Registriert: 13.12.2007

Solidworks 2008 SP2.0
WinXP

erstellt am: 23. Jan. 2008 11:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Bernd Knab 10 Unities + Antwort hilfreich

Du kannst auch einfach nochmal ein Koordinatensystem in der Baugruppe erstellen (genau auf den Ursprung der Baugruppe). Dann mit dem  Befehl die einzelnen Teile speichern.

Code:
Const swFileSaveAsCoordinateSystem      As Long = 16 

'Name des erzeugen Koordinatensystems
strCoordName = "Koordinatensystem1"
       
'das neue Koordinatensystem zuweisen
bRet=swModel.SetUserPreferenceStringValue(swFileSaveAsCoordinateSystem,strCoordName)
'das ausgewählte Teil
sPartname = swSelComp.Name2
'speichern
part2.SaveAs2 sPath & sPartname & ".sldprt", 0, False, False


[Diese Nachricht wurde von PaulB am 23. Jan. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Anzeige:Infos zum Werbeplatz >>

speedyPDM CAD APP für Andere, Datenaustausch, Allgemeine Werkzeuge

speedyPDM ist das führende technische Dokumenten- und Produktdatenmanagementsystem für Solidworks, Solid Edge, Inventor, AutoCAD, ZWCAD, BricsCAD, Office und Email inklusive Revisionsmanagement.

Bernd Knab
Mitglied



Sehen Sie sich das Profil von Bernd Knab an!   Senden Sie eine Private Message an Bernd Knab  Schreiben Sie einen Gästebucheintrag für Bernd Knab

Beiträge: 373
Registriert: 16.01.2001

SWX 2020 SP5.0

erstellt am: 23. Jan. 2008 15:32    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Speichern_Parasolid_Koordinatensystem1.zip

 
Hallo zusammen,

danke nochmals für eure Hilfe.

Ich habe das Makro angehängt.

Gruß Bernd

PS: Stefan, du kannst es gerne auch in dein Makrobib einfügen.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz