Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Achsensysteme in geometrischen Set ansprechen

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
Autor Thema:  Achsensysteme in geometrischen Set ansprechen (2617 mal gelesen)
k71
Mitglied
Dipl.Ing. Maschinenbau


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

Beiträge: 10
Registriert: 05.09.2006

erstellt am: 13. Okt. 2006 09:35    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 gerne ein Achsensystem ansprechen, das in einem geometrischen Set gespeichert ist.
Bei den Achsensystemen die im Knoten Achsensysteme abgelegt sind, ist das kein Problem (CATIA.ActiveDocument.Part.Axissystems.item("Name_des_Achsensystemes").
Nur in den geometrischen Set's habe ich nichts gefunden.

Hat vielleicht jemand eine Idee

Schöne Grüße
Konrad

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 13. Okt. 2006 10: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 k71 10 Unities + Antwort hilfreich

Hi Konrad,

Man findet zwar ein Item unter dem Geoset aber damit kann man nichts anfangen (es ist leer).
Deshalb was hast du mit dem Achsensystem vor??

Mfg
Proofin

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

k71
Mitglied
Dipl.Ing. Maschinenbau


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

Beiträge: 10
Registriert: 05.09.2006

erstellt am: 13. Okt. 2006 10:54    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 Proofin

Danke für deine schnelle Meldung.
Das Thema ist, das ich in einem Makro Linien erzeugen möchte.  Startpunkt soll der Ursprung des Achsensystems sein, X- bzw. Y-Richtung des Achsensystems sollen die Richtung vorgeben.
Als Krücke würde es evtl. gehen die Achsensysteme im Knoten Achsensysteme zu erstellen, habe aber hiefür noch keinen Makrobefehl gefunden der mir diese Schaltfläche aktiviert.

Schöne Grüße
Konrad

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 13. Okt. 2006 11:21    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 k71 10 Unities + Antwort hilfreich

Also Achsensysteme erstellen kannst du über:
  Set rootPart = partDoc.Part
  Set NewAxisSystem = rootPart.AxisSystems.Add()

Als Alternative kannst über die Selektion gehen:
  Set oSel = CATIA.ActiveDocument.Selection
  oSel.Clear
  ' dein GeoSet zur Selektion hinzufügen
  Call oSel.Add(DeinGeoSet)
  ' suchstring für ein Achsensystem in deinem GeoSet
  oSel.Search ("'Part Design'.Achsensystem,sel")
  ' Achsensystem speichern
  Set oAxes = oSel.Item(1).Value

Das wären jetzt mal auf die Schnelle meine Vorschläge.
Sonst müßtest du dein Szenario mal genau beschreiben(viele GeoSet,
viele Achsensystem, in jeden GoeSet eins, usw.)

Mfg
Proofin

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

k71
Mitglied
Dipl.Ing. Maschinenbau


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

Beiträge: 10
Registriert: 05.09.2006

erstellt am: 13. Okt. 2006 13: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

Hallo Proofin

Sorry, hatte da vorher einen kleine Knoten in meinen Hirnwindungen:
Die Achsensysteme, die ich im Makro erzeuge, liegen im Knoten Achsensysteme; nur bei dem Modell, das ich genommen hatte, hatte ich die Achsensysteme händisch im geometr. Set "Achsensysteme" erzeugt.

Ich hab dir mal mein bis jetzt leider nicht ganz lauffähiges Makro angehängt:

Sub Hauptrichtung()

Set part1 = CATIA.ActiveDocument.Part
Anzahl = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Item("Flaechen").HybridShapes.Count

Set Koerper = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Add()
Koerper.Name = "Hauptrichtungen"

For i = 1 To Anzahl

Set Punkt = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Item("Punkte").HybridShapes.Item("Punkt_" & i)

Set Achs = part1.AxisSystems.Item("Achsensystem_" & i)
Set Richtung = part1.HybridShapeFactory.AddNewDirection(Achs.XAxisDirection)
Set hybridShapeLinePtDir1 = part1.HybridShapeFactory.AddNewLinePtDir(Punkt, Richtung, 0#, 20#, False)
Koerper.AppendHybridShape hybridShapeLinePtDir1
hybridShapeLinePtDir1.Name = "X_" & i

Next

part1.Update

End Sub

Wobei ich die Achsensysteme per Makro auch ganz gerne im Set Referenzdaten\Achsensystem erzeugen würde.
Hast Du hierzu auch eine Idee?

Schöne Grüße
Konrad

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 13. Okt. 2006 14: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 k71 10 Unities + Antwort hilfreich

Kannst du mal bitte genau beschreiben was deine Ausgangssituation ist und was du genau vor hast!!

Wenn ich das jetzt richtig verstehe hast du für jede Fläche ein Achsensystem und erstellts für jede Fläche eine Linie in X Richtung.

Woher kommen die Achsensysteme? Sind sie vorhanden oder erstellst du sie selbst?

Die Achsensysteme kannst du auch per Selection/Cut Paste verschieben.

Mfg
Proofin

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

k71
Mitglied
Dipl.Ing. Maschinenbau


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

Beiträge: 10
Registriert: 05.09.2006

erstellt am: 14. Okt. 2006 18: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

Hallo Proofin,

Erst mal Danke für deine Geduld.
Ich möchte mir dem Script die Einfallwinkel von einem best. Punkt auf LED's messen.
Dazu lasse ich den Anwender die Flaechen per UserSelection auswählen.
Das Makro erzeugt daraufhin für jede LED eine neue Fläche im Set "Flaechen"; berechnet und erzeugt im Set "Punkte" die Mittelpunkte der Flächen.
Anschließend erzeugt das Makro im Set "Achsensysteme" die Achsensysteme so, daß der Ursprunkt im Flächenmittelpunkt und die z-Richtung normal auf der Fläche steht. x- u. y-Richtung sind mit Koordinaten belegt (weil ich's noch nicht hingebracht habe die horizontalen Kanten der vorher erzeugten Flächen anzusprechen - deshalb auch die Meldung am Ende, daß man die Achsen noch manuel korrigieren muß .
Für die Messung möchte ich jetzt im Set "Hauptrichtungen" die X- u. Y-Richtung als LinePtDir erzeugen. Dabei sollte der Startpunkt der Urspung des Achsensystemes sein (bis jetzt der Flächenmittelpunkt, was aber eigentlich identisch ist), die Richtung soll von X- bzw. Y-Richtung des Achsensystemes bestimmt sein.

Ich häng noch mal das Script für die Achserzeugung an:
Sub Achssystem()

Set part1 = CATIA.ActiveDocument.Part
Set Auswahl = CATIA.ActiveDocument.Selection
Anzahl = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Item("Flaechen").HybridShapes.Count

Set Koerper = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Add()
Koerper.Name = "Achsensysteme"

For i = 1 To Anzahl

Set Achs = part1.AxisSystems.Add()

Achs.OriginType = catAxisSystemOriginByPoint
Set objekt = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Item("Punkte").HybridShapes.Item("Punkt_" & i)
Set Reference = part1.CreateReferenceFromObject(objekt)
Achs.OriginPoint = Reference

Achs.ZAxisType = catAxisSystemAxisSameDirection
Set objekt = part1.HybridBodies.Item("Referenzdaten").HybridBodies.Item("Normale").HybridShapes.Item("Normale_" & i)
Set Reference = part1.CreateReferenceFromObject(objekt)
Achs.ZAxisDirection = Reference

Achs.XAxisType = catAxisSystemAxisSameDirection
Achs.XAxisType = catAxisSystemAxisByCoordinates
Dim arrayof_xAXS(2)
arrayof_xAXS(0) = 0
arrayof_xAXS(1) = 1#
arrayof_xAXS(2) = 0#
Achs.PutXAxis arrayof_xAXS

Achs.YAxisType = catAxisSystemAxisSameDirection
Achs.YAxisType = catAxisSystemAxisByCoordinates
Dim arrayof_yAXS(2)
arrayof_yAXS(0) = 0
arrayof_yAXS(1) = 0#
arrayof_yAXS(2) = 1#
Achs.PutYAxis arrayof_yAXS

Achs.Name = "Achsensystem_" & i
Achs.IsCurrent = False

Next

part1.Update

MsgBox "Bitte Achsen noch manuel korrigieren"

End Sub

Warum das Makro die Achsen manchmal im Knoten Achsensysteme und manchmal im Set "Achsensysteme" anlegt ist mir bis jetzt ein Rätsel.

Bin aber auch erst vor 6 Wochen in die Makroprogrammierung eingestiegen.

Ich hoffe, ich konnte jetzt ein wenig Klarheit in meine Frage bringen.

Schöne Grüße
Konrad

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 16. Okt. 2006 10:14    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 k71 10 Unities + Antwort hilfreich

Guten Morgen Konrad,

ich hab gerade mal ausprobiert die Achsensystem zu erstellen/verschieben.
Erstellt werden sie bei mir immer unter dem Knoten Achsensysteme.
Das Verschieben funktioniert zwar interaktive aber scheinbar nicht per Skript. Denn selbst mit Copy Paste werden die Systeme wieder unter dem Knoten Achsensysteme erstellt, nur der Name ändert sich.

Deshalb würde ich jetzt erstmal sagen das du sie nicht per Skript in die GeoSets verschieben.

Tut mir Leid das ich da nicht weiter helfen konnte 

Gruß Proofin

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

AlfaRomeo75
Mitglied
Dipl.Ing. - Flächenkonstrukteur/Methodenplaner


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

Beiträge: 174
Registriert: 06.12.2004

-----------------
Windows XP professional Version2002
Service Pack 2
-----------------
CATIA V5 R16 SP5
-----------------
Intel Pentium 4 3,4GHz
4 GB RAM
-----------------

erstellt am: 17. Okt. 2006 13:33    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 k71 10 Unities + Antwort hilfreich


AxisSystems.jpg

 
Hallo,
hatte auch mal ein ähnliches Problem bzgl. der Anordnung von Achsensystemen. Wo ein Achsensystem erzeugt wird ist abhängig davon ob der Button (siehe Bild!) bei der Achsensystemerzeugung aktiviert ist oder nicht!
Ich hatte ein Makro in dem Achsensystme erzeugt werden geschrieben und mich gewundert das die Achsensystem bei manchen Kollegen unter dem GeoSet erzeugt wurden und bei manchen Kollegen unter dem Knoten Achsensysteme!
Prüft mal, was bei Euch eingestellt ist!
Leider weiß ich nicht ob man dieses Button auch per Makro ansprechen kann oder ob dies auch über Tools/Optionen gefixt werden kann!

Ich hoffe ich konnte helfen!

------------------
-------------------------------------------------
Gruß,
AlfaRomeo75  

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

TiEetsch
Mitglied
Konstrukteur Maschinenbau


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

Beiträge: 25
Registriert: 08.01.2003

CATIA V5 R14 SP4

erstellt am: 03. Nov. 2006 16:36    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 k71 10 Unities + Antwort hilfreich

Hallo zusammen,

in der Makroprogrammierung bin ich zwar noch nicht so fit, aber bzgl. Achsensysteme kann ich was beisteuern.
  Achsensysteme werden in dem "in Bearbeitung" befindlichen Objekt erzeugt. Das kann ein geom. Set oder,
wenn "Hybridkonstruktion" erlaubt ist, auch ein Body sein. Ist ein Body aktiv und "Hybridkonstruktion" nicht erlaubt,
wird das AS automatisch unter dem Knoten "Achsensysteme" erzeugt.
Das Objekt in Bearbeitung kann man z.B. mit
  part1.InWorkObject = part1.HybridBodies.Item("Geometrisches Set.1")
festlegen.

Ich hoffe ich konnte helfen.

SchöWoE
Thomas 

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

Carasianer
Mitglied
Elektroniker


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

Beiträge: 12
Registriert: 21.09.2006

erstellt am: 31. Jan. 2007 19:52    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 k71 10 Unities + Antwort hilfreich


baum.jpg

 
Ich möchte das Thema nochmal aufgreifen, da ich gerade vor demselben Problem stehe. Ziel meiner Arbeit ist es, einige Achsensysteme zu isolieren, um deren Verlinkung aufzuheben.

Bei "normalen" Achsensystemen (also den, die im Knoten "Axis Systems" stehen) ist das einfach: die erreiche ich über die Kollektion

Code:
MyPart.AxisSystems
.
Nun können Achsensysteme außer im Knoten "Axis Systems" auch in beliebigen GeomSets stehen (die  kann man erzeugen, in dem man das GeomSet "Define in Work" setzt, anschließend das Achsensystem erzeugt und dabei den Haken "Under the Axis System node" ausschaltet.
Siehe Bild.

Leider finde ich keine Möglichkeit, auf diese Achsensysteme vom Makro aus zuzugreifen. Zu erwarten wäre ein Zugriff ähnlich
 

Code:
MyPart.HybridBodies.Item(x).AxisSystems

Funktioniert aber nicht.

Die Makro-Doku schweigt sich zu diesem Thema leider aus.

Auch der Makrorecorder hilft nicht weiter:
Bei der Aufzeichnung der Erzeugung eines "normalen" Achsensystems und eines GeomSet-Achsensystems entsteht exakt derselbe Code, der bei der Wiedergabe natürlich das falsche Ergebnis liefert.

Wenn ich manuell auf beide Achsensystem-Typen zugreife (z.B. HIDE/SHOW-setzen) und den Makrorecorder protokollieren lasse, schreibt er beim Zugriff auf das GeomSet-Achsensystem als Kommentar "No resolution found for the object "Axis System.2" in die Protokolldatei.

Die CATIA-Suchfunktion zwecks Finden der Achsensysteme will ich aus Performancegründen nicht im Makro benutzen.

Kennt jemand einen Weg, wie man an diese GeomSet-Achsensysteme heran kommt? 

Danke.
Rüdiger

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 31. Jan. 2007 21:20    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 k71 10 Unities + Antwort hilfreich

Hi Rüdiger,

ich bin nicht mehr ganz sicher, aber als ich das Thema für diesen Beitrag untersucht habe, hab ich auch in den Parametern nach den Achsensystemen gesucht.
Dort findet man auch diese Achsysteme wieder. Allerdings muß ich mir das erst wieder genauer anschauen um genaueres sagen zu können.

Hoffe das hilft dir weiter.

Gruß
Proofin

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 31. Jan. 2007 22:10    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 k71 10 Unities + Antwort hilfreich

Hi Rüdiger,

vergiss was ich zuvor geschrieben habe. Über die Parameter kommst du nur an die (eben) Parameter des Achsensystems aber nicht an das Objekt.

Wenn du das Objekt brauchst kommst du wohl nicht um die Selektion drum herum.

Gruß
Proofin

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)2023 CAD.de | Impressum | Datenschutz