Autor
|
Thema: Set Current Axis Kochbuch (2430 mal gelesen)
|
Auryn880 Mitglied
Beiträge: 2 Registriert: 16.02.2011
|
erstellt am: 16. Feb. 2011 12:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe mir das Kochbuch von Herrn hansen gekauft. Dort war auch das macro für die Beschriftung dabei. Das Macro ist super, allerdings blöd das man den Text immer nur in die Absolute Axis ausgerichtet bekommt. Gibt es denn eine Möglichkeit einen Befehl oder so das er das Current Axis nimmt, welches ich dann in verschiedenen Richtungen ausrichten kann? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HoBLila Mitglied Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx
Beiträge: 1118 Registriert: 29.05.2008 DELL PRECISION T3500 Intel(R) Xeon(R) CPU W3540 @ 2.93GHz 12285 MB RAM NVIDIA Quadro FX 1800 Microsoft Windows 7 Enterprise Service Pack 1 CATIA V5 R19 SP09 HF69 VB6.5 CAA RADE CDC
|
erstellt am: 16. Feb. 2011 17:08 <-- editieren / zitieren --> Unities abgeben: Nur für Auryn880
Ich habe einfach mal die Suche bemüht: Code:
For i=1 To CATIA.ActiveDocument.Part.AxisSystems.Count Set oAxis = CATIA.ActiveDocument.Part.AxisSystems.Item(i) If oAxis.IsCurrent Then Exit For End If Next i
------------------ Mit freundlichen Grüßen, Henry Schneider alias Lila Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren: Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen, die Natur versucht, immer bessere Idioten zu bauen Xing Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Auryn880 Mitglied
Beiträge: 2 Registriert: 16.02.2011
|
erstellt am: 17. Feb. 2011 07:53 <-- editieren / zitieren --> Unities abgeben:
Hallo, leider funktioniert das nicht. Er geht dennoch immer auf das absolute Axis. Hier mal der Code zur Positionierung des Sketch. Code: 'Neue Skizze korrekt positionieren 72 Set body1 = partdoc1.Part.InWorkObject.Parent.Parent 73 Set mainsketch = body1.Sketches.Item(body1.Sketches.Count) 74 selection2.Search "Name=Polyline*, all" 75 selection2.Copy 76 selection2.Clear 77 Set sketch2 = body1.Sketches.Add(Surface1) 78 selection2.Add sketch2 79 selection2.Paste 80 selection2.Clear 81 selection2.Add mainsketch 82 selection2.Delete Dim myAxisCoordinate(8) 83 sketch2.GetAbsoluteAxisData myAxisCoordinate Dim pointarray(2) 84 point1.GetCoordinates pointarray 85 myAxisCoordinate(0) = pointarray(0) 86 myAxisCoordinate(1) = pointarray(1) 87 myAxisCoordinate(2) = pointarray(2) 88 sketch2.SetAbsoluteAxisData myAxisCoordinate ///Hier möchte ich das Current Axis verwenden damit die Ausrichtung gedreht ist.z.B.
89 partdoc1.Part.Update
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pesel Mitglied Dipl.-Ing. (BA) Maschinenbau
Beiträge: 42 Registriert: 14.01.2003 HP Z-Book 15 Intel i7-4810MQ 16GB Windows 7 Enterprise
|
erstellt am: 26. Sep. 2011 10:09 <-- editieren / zitieren --> Unities abgeben: Nur für Auryn880
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Sep. 2011 12:44 <-- editieren / zitieren --> Unities abgeben: Nur für Auryn880
Servus Nach einem kurzen Test, behaupte ich: Beim erstellen von Punkten über AddNewPointCoord wird immer das aktuelle Achsensystem verwendet, deshalb muss du zunächst das entsprechende Achsensystem aktivieren (.IsCurrent = True) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pesel Mitglied Dipl.-Ing. (BA) Maschinenbau
Beiträge: 42 Registriert: 14.01.2003
|
erstellt am: 26. Sep. 2011 13:39 <-- editieren / zitieren --> Unities abgeben: Nur für Auryn880
Hallo Bernd, danke für den Tipp, aber leider scheint es nicht zu funktionieren. Ich habe es mit .IsCurrent und mit .InWorkObject versucht, leider ohne Erfolg. Axis auf Punkt --> OK Punkt auf diese Axis --> NOK. Hier der vereinfachte Code.. Sub CATMain() Dim g_oRootDoc As PartDocument Set g_oRootDoc = CATIA.ActiveDocument Dim oPart As Part Dim oHSF As HybridShapeFactory Dim oPoint As HybridShapePointCoord Dim oPoint_IST As HybridShapePointCoord Dim oRef As Reference Dim sTmp As String sTmp = "_TMPname" Dim oHBody_IST As HybridBody Dim oAxis_IST As AxisSystem Set oPart = g_oRootDoc.Part Set oFSO = CATIA.FileSystem Set oHSF = oPart.HybridShapeFactory Set oHBody_IST = oPart.HybridBodies.Add() oHBody_IST.Name = "Measured_Points" & sTmp 'IST-Werte Set oPoint_IST = oHSF.AddNewPointCoord(0, 0, 0) oHBody_IST.AppendHybridShape oPoint_IST oPoint_IST.Name = "Point_Ref_Ist" Set oAxis_IST = oPart.AxisSystems.Add ''oAxis_IST.IsCurrent = True oAxis_IST.Name = "Axis_IST" & sTmp oAxis_IST.OriginType = catAxisSystemOriginByPoint oPart.InWorkObject = oPoint_IST oPart.Update
oAxis_IST.OriginPoint = oPart.CreateReferenceFromObject(oPoint_IST) oAxis_IST.IsCurrent = True oPart.InWorkObject = oPoint_IST oPart.Update 'Set oPoint = oHSF.AddNewPointCoord(10, 10, 10) Set oPoint = oHSF.AddNewPointCoordWithReference(20, 20, 20, oPoint_IST) oHBody_IST.AppendHybridShape oPoint oPoint.Name = "Punkt_linked_to_Axis" oPart.Update End Sub Gruß Pesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 26. Sep. 2011 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für Auryn880
Servus Meine Aussage trifft vermutlich nur zu, wenn man den Punkt über AddNewPointCoord erzeugt. Füge in deinem Code mal: Code: ... Set oPoint = oHSF.AddNewPointCoordWithReference(20, 20, 20, oPoint_IST) oPoint.RefAxisSystem = oPart.CreateReferenceFromObject(oAxis_IST) ...
hinzu. Dann sollte es funktionierenGruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
pesel Mitglied Dipl.-Ing. (BA) Maschinenbau
Beiträge: 42 Registriert: 14.01.2003
|
erstellt am: 26. Sep. 2011 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für Auryn880
Yep, das wars! Ich hatte es auch ohne "with Reference" vergeblich versucht, das scheint nur interaktiv so zu funktionieren, aber damit: oPoint.RefAxisSystem = oPart.CreateReferenceFromObject(oAxis_IST) funzt es. Vielen Dank und Gruß Pesel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |