Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Skizzenebene für Zeichnung ermitteln

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:  Skizzenebene für Zeichnung ermitteln (916 / mal gelesen)
Sm1leX
Mitglied
Maschinenbau (B.Eng)


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

Beiträge: 27
Registriert: 13.09.2018

Win 10 64-bit
Intel Xeon E5-1620
CATIA V5 R28/R29
Solidworks

erstellt am: 17. Jun. 2020 07:37    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


123.png

 
Hallo beisammen, leider waren alle Suchen bisher erfolglos, daher nun ein neues Thema zum auslesen der Zeichnungserstellung.

Also ich möchte von einer Skizze eine Zeichnung erstellen. Das klappt auch an sich wunderbar, wie folgt:

Code:

set ActSheet = CATIA.ActiveDocument.Sheets.ActiveSheet
set NewSheet = ActSheet.Views.Add("NewView")
set drawingViewGenerativeBehavior1 = NewSheet.GenerativeBehavior
drawingViewGenerativeBehavior1.DefineFrontView 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000
NewSheet.x = 0
NewSheet.y = 0
NewSheet.Scale = 1.000000
NewSheet.Activate

Einen Fuß zur vollständigen Automatisierung stellt mir folgende Zeile:

Code:
drawingViewGenerativeBehavior1.DefineFrontView 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000

Um das ganze komplett zu Automatisieren, muss ich aber aus der Skizze auslesen, in welcher Ebene dieser liegt, um die erstellte Ansicht von entsprechender abzuleiten. Kann mir jemand helfen, wie ich diese Zeile automatisiert befüllen kann? (Die Zeichnung liegt in einem geometrischen Set, welches immer den Namen DXF hat. Anbei ein Bild)

Besten Dank im Voraus! 

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 17. Jun. 2020 08:00    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 Sm1leX 10 Unities + Antwort hilfreich

Servus

Schau dir mal die Methode GetAbsoluteAxisData des Sketch-Objekts an.
Die Elemente 4 bis 9 des Arrays sollten dir die Werte/Vektoren für deine Ansicht liefern.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Randle
Mitglied
CAD/PLM Consultant


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

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 17. Jun. 2020 08: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 Sm1leX 10 Unities + Antwort hilfreich

Moin,

da war einer schneller ;-)

Auszug aus der Doku:

Sub GetAbsoluteAxisData( CATSafeArrayVariant  oAxisData)

Returns the sketch axis coordinates in 3D space. The matrix returned comprises 9 doubles, the first 3 being the coordinates
of the axis origin, the next 3 being those of the horizontal axis, and the
last 3 those of the vertical axis.
The sketch horizontal axis is in fact computed from the first non null projection of one of the 3 3D space axes on the sketch plane.
Returns:
oAxisData The matrix of the axis in 3D space.
Example:
The following example reads the coordinates of the axis
of the sketch mySketch:
Dim myAxisCoordinate (8)
mySketch.GetAbsoluteAxisData myAxisCoordinate
Set OriginX = myAxisCoordinate(1)
Set OriginY = myAxisCoordinate(2)
Set OriginZ = myAxisCoordinate(3)
Set HorizontalX = myAxisCoordinate(4)
Set HorizontalY = myAxisCoordinate(5)
Set HorizontalZ = myAxisCoordinate(6)
Set VerticalX = myAxisCoordinate(7)
Set VerticalY = myAxisCoordinate(8)
Set VerticalZ = myAxisCoordinate(9)

Gruß
Randle

------------------
Wer für nichts steht, fällt für alles!

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

Sm1leX
Mitglied
Maschinenbau (B.Eng)


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

Beiträge: 27
Registriert: 13.09.2018

Win 10 64-bit
Intel Xeon E5-1620
CATIA V5 R28/R29
Solidworks

erstellt am: 17. Jun. 2020 08:24    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 Bernd,
vielen Dank mal wieder für deine unglaublich schnelle Antwort!

Wie komm ich denn daran? Habe ein bisschen rumprobiert, aber wirklich Schlucken möchte er es nicht.

Anbei mal der blanke Codeschnipsel mit Verweis auf die Skizze:

Code:

(...)
Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("DXF")

Dim sketches1 As Sketches
Set sketches1 = hybridBody1.HybridSketches

Dim sketch1 As Sketch
Set sketch1 = sketches1.Item("DXF_Skizze")

Dim AxisSystem1 As AxisSystem
Set AxisSystem1 = sketch1.GetAbsoluteAxisData()

drawingViewGenerativeLinks1.AddLink hybridBody1

drawingViewGenerativeBehavior1.DefineFrontView AxisSystem1(4), AxisSystem1(5), AxisSystem1(6), AxisSystem1(7), AxisSystem1(8), AxisSystem1(9)

(...)


VG

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

Sm1leX
Mitglied
Maschinenbau (B.Eng)


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

Beiträge: 27
Registriert: 13.09.2018

Win 10 64-bit
Intel Xeon E5-1620
CATIA V5 R28/R29
Solidworks

erstellt am: 17. Jun. 2020 08: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

Danke Randle!

Ich teste .. (Y)

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

Sm1leX
Mitglied
Maschinenbau (B.Eng)


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

Beiträge: 27
Registriert: 13.09.2018

Win 10 64-bit
Intel Xeon E5-1620
CATIA V5 R28/R29
Solidworks

erstellt am: 17. Jun. 2020 08:37    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

Folgendes Problem erhalte ich, wenn ich das von Randle anwende:

VG und besten Dank im Voraus!

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 17. Jun. 2020 08:42    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 Sm1leX 10 Unities + Antwort hilfreich

Servus

Das könnte dieses Problem (mit schöner Erklärung und Lösung) sein.

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Sm1leX
Mitglied
Maschinenbau (B.Eng)


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

Beiträge: 27
Registriert: 13.09.2018

Win 10 64-bit
Intel Xeon E5-1620
CATIA V5 R28/R29
Solidworks

erstellt am: 17. Jun. 2020 08:55    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

Ihr seid Helden ! Danke!

Musste die Skizze als Object deklarieren, damit es VBA schluckt. Im Array musste ich noch die Indexe um Eins heruntersetzen. Anbei mal der (halb-)fertige (bzw. rohe), funktionierende Code um automatisch eine Drawing aus einem Geometrischen Set mit beinhaltender Skizze zu erzeugen.

Code:
Dim documents1 As Documents
Set documents1 = CATIA.Documents

Dim drawingDocument1 As DrawingDocument
Set drawingDocument1 = documents1.Add("Drawing")

drawingDocument1.Standard = catISO

Dim drawingSheets1 As DrawingSheets
Set drawingSheets1 = drawingDocument1.Sheets

Dim drawingSheet1 As DrawingSheet
Set drawingSheet1 = drawingSheets1.Item(1)

drawingSheet1.PaperSize = catPaperA0

drawingSheet1.[Scale] = 1#

drawingSheet1.Orientation = catPaperLandscape

Dim drawingViews1 As DrawingViews
Set drawingViews1 = drawingSheet1.Views

Dim drawingView1 As DrawingView
Set drawingView1 = drawingViews1.Add("AutomaticNaming")

Dim drawingViewGenerativeLinks1 As DrawingViewGenerativeLinks
Set drawingViewGenerativeLinks1 = drawingView1.GenerativeLinks

Dim drawingViewGenerativeBehavior1 As DrawingViewGenerativeBehavior
Set drawingViewGenerativeBehavior1 = drawingView1.GenerativeBehavior

Dim partDocument1 As PartDocument
Set partDocument1 = documents1.Item("PARTNAME.CATPart")

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("DXF")

Dim sketches1 As Sketches
Set sketches1 = hybridBody1.HybridSketches

Dim sketch1 As Object
Set sketch1 = sketches1.Item("DXF_Skizze")

Dim myAxisCoordinate(8)
sketch1.GetAbsoluteAxisData myAxisCoordinate

drawingViewGenerativeLinks1.AddLink hybridBody1

drawingViewGenerativeBehavior1.DefineFrontView myAxisCoordinate(3), myAxisCoordinate(4), myAxisCoordinate(5), myAxisCoordinate(6), myAxisCoordinate(7), myAxisCoordinate(8)

drawingView1.X = 100

drawingView1.Y = 100

drawingView1.[Scale] = 1#

Set drawingViewGenerativeBehavior1 = drawingView1.GenerativeBehavior

drawingViewGenerativeBehavior1.Update

drawingView1.Activate

End Sub


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