Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Körper drehen mit Makro

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:  Körper drehen mit Makro (1495 mal gelesen)
JPP
Mitglied
Dipl.Ing


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

Beiträge: 12
Registriert: 30.10.2007

erstellt am: 30. Okt. 2007 15:13    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 alle zusammen,

hab vor kurzem gewagt eingige Sachen in Catia über Makros zu realisieren. Bis jetzt hat das alles relativ  gut geklappt.
Jetzt hab ich allerdings folgendes Problem:
Namen und Koordinaten werde aus einer Tabelle ausgelesen.
1. Ich erstelle ein GeoSet und einen Körper die ich benenne
2. In dieses GeoSet wird ein Punkt und ein KOSY mit dem Punkt als Ursprung eingefügt.
3. Durch diesen Punkt wird eine Ebene mit Offset gelegt
4. Jetzt wird in diese Ebene ein Sketch1 gezeichnet
5. Ein Block aus Sketch1 wird in Körper1 eingefügt

Punkte 1-5 werden sooft durchlaufen bis keine Koordinaten mehr in der Tabelle stehen.
Soweit alles gut. Ich habe jetzt im Strukturbaum X GeoSets und X Körper und X Achsensysteme!!!

Jetzt möchte ich gerne, sozusagen als 6., den Block1 der ja im KOSY1 liegt um die Z-Achse von KOSY1 drehen.
Das schaut dann so aus:

'Anfang Drehung

Code:
Set partDocument1 = CATIA.ActiveDocument
Set part1 = partDocument1.Part
Set bodies1 = part1.Bodies
Set body1 = bodies1.Item(ZylName)
part1.InWorkObject = body1
Set shapeFactory1 = part1.ShapeFactory
Set axisSystems1 = part1.AxisSystems
Set axisSystem1 = axisSystems1.Item(ZylName)
Set reference1 = part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(AxisSystem.2;3);None:();Cf11:());Face:(Brp:(AxisSystem.2;2);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPe rmanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", axisSystem1)
Set rotate1 = shapeFactory1.AddNewRotate2(reference1, 50.000000)
Set hybridShapeRotate1 = rotate1.HybridShape
hybridShapeRotate1.RotationType = 0
hybridShapeRotate1.Axis = reference1
part1.InWorkObject = hybridShapeRotate1
part1.Update

' ENDE Drehung

Das funzt auch beim ersten durchlauf der Schleife.
Im zweiten Durchlauf, sprich für Block2 und KOSY2, bricht das Makro vor dem Drehen ab!!!!!
Ich habe die Vermmutung das es mit folgender Zeile zusammenhängt:

Code:
Set reference1 = part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(AxisSystem.2;3);None:();Cf11:());Face:(Brp:(AxisSystem.2;2);None:();Cf11:());None:(Limits1:();Limits2:());C f11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR14)", axisSystem1)

Wenn ich das richtig verstehe müsste AxisSysem.2 das erste unterkoordinatensystem sein. Wenn ich jetzt zum 2. mal durch die Schleife laufe müsste hier ja dann AxisSystem.3 stehen?!!?
Denke ich richtig?
Wenn ja- ich habs schon mit ner Laufvariablen probiert, aber das geht nicht.
So, ich hoff ihr könnt damit was anfangen.
Vielen Dank schon mal,
JPP

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

YellowDevil
Mitglied
PI, Makroentwicklung, NC Automatisierung


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

Beiträge: 67
Registriert: 21.12.2006

erstellt am: 05. Nov. 2007 22: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 JPP 10 Unities + Antwort hilfreich

Moin,

versuch mal die Zeile folgendermassen abzuändern:

Set reference1=part1.CreateReferenceFromObject(axisSystem1)

Das mit deiner Denkweise ist schon ganz richtig.

Wenn obiges nicht funzen sollte, kannst du noch den Weg gehen das du jedesmal das Achsensystem suchen lässt und dann der Reference zuweist.

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