Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Zeichnungsableitung unabhängig vom Partnamen

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:  Zeichnungsableitung unabhängig vom Partnamen (1011 mal gelesen)
lohri
Mitglied
BA-Student


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

Beiträge: 14
Registriert: 06.07.2006

Catia V5 R16

erstellt am: 06. Jul. 2007 09: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

Hallo Zusammen,

ich möchte eine Zeichnung ableiten, unabhängig davon wie das Part heißt. Dazu frage ich den Partnamen des aktuellen Dokuments ab und will ihn als String für die Variable Prod wiedereinfügen.
Hier mal mein Testprogramm:


Sub CatMain()

'Part markieren
Dim P As Part
Set P = CATIA.ActiveDocument.Part

MsgBox (P.Name)
Dim PName As String
PName = P.Name & ".CATPart"
MsgBox (PName)

'Zeichnung erstellen
Dim D As Document
Set D = CATIA.Documents.Add("Drawing")

D.Standard = catISO

Dim DS As DrawingSheet
Set DS = D.Sheets.Item("Blatt .1")

DS.PaperSize = catPaperA0
DS.[Scale] = 1#
DS.Orientation = catPaperLandscape

'Ansicht erzeugen
Dim DV As DrawingView
Set DV = DS.Views.Add("AutomaticNaming")

Dim Behave As DrawingViewGenerativeBehavior
Set Behave = DV.GenerativeBehavior

Dim Prod As Product
Set Prod = CATIA.Documents.Item("Part1.CATPart").GetItem("Part1")
Behave.Document = Prod
Behave.DefineFrontView 0#, -1#, 0#, 0#, 0#, 1#
DV.X = 500
DV.Y = 250
DV.[Scale] = 1#

Behave.SetGPSName ("DefaultGenerativeStyle.xml")
Set Behave = DV.GenerativeBehavior
Behave.Update
DV.Activate

End Sub

So funktioniert das Programm. Allerdings nur, wenn das Part auch "Part1" heißt.
Mein Ansatz wäre also für Variable Prod die Zeile
      Set Prod = CATIA.Documents.Item(PName).GetItem(P.Name)
einzufügen.
Wenn ich das mache stolpert er genau in dieser Zeile und ich weiß nicht warum. Vielleicht hat jemand von euch schon mal ein ähnliches Problem gehabt und kann mir sagen, wo mein Denkfehler liegt. Das wäre eine große Hilfe für mich.
Gruß
lohri

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: 06. Jul. 2007 15:23    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 lohri 10 Unities + Antwort hilfreich

Mir ist nicht ganz klar ob Du aus einem Part heraus ein Drafting oder aus einem Product heraus ein drafting erstellen möchtest.

Aus einem Part heraus sollte es so funktionieren, egal wie das Part heisst.

Sub CatMain()

'Part markieren
Dim oPart As Part
Set oPart = CATIA.ActiveDocument.Part

Dim oDrawing As DrawingDocument
Set oDrawing = CATIA.Documents.Add("Drawing")

' Retrieve the active sheet
Dim oSheet As DrawingSheet
Set oSheet = oDrawing.Sheets.ActiveSheet

' Create a view called "Front View" in this sheet
Dim oFrontView As DrawingView
Set oFrontView = oSheet.Views.Add("Front View")

' Retrieve it generative behavior
Dim oFrontViewGB As DrawingViewGenerativeBehavior
Set oFrontViewGB = oFrontView.GenerativeBehavior

' Declare the part to draw in this front view
oFrontViewGB.Document = oPart

' Define this view as a front view, with the XY plane (in oPartToDraw) as projection plane
oFrontViewGB.DefineFrontView 1, 0, 0, 0, 1, 0

' Position the View in the Sheet
oFrontView.x = 300
oFrontView.y = 150

' Update the view
oFrontViewGB.Update

End Sub

In einem Product können ja auch mehrere Part vorkommen und man muss genau wissen welches Part man nehmen möchte. Dort würde ich das Part über eine Userselektion anwählen lassen.

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

lohri
Mitglied
BA-Student


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

Beiträge: 14
Registriert: 06.07.2006

Catia V5 R16

erstellt am: 09. Jul. 2007 11:31    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

Vielen Dank, jetzt wird einiges klarer. Ich gestehe, den Code über den Makrorecorder erstellt zu haben. Dann habe ich ihn etwas modifiziert, ohne ihn aber komplett zu verstehen. Unverständlicherweise (ich habe bei der Aufnahme nur ein Part abgeleitet) setzt er die FrontView einem Product gleich und hangelt sich dann wieder über item und getitem zum Part runter. Das ist natürlich unsauber und war sicher auch der Fehler.
Dank deines sauberen Codes wird mir auch klar, was für das Makro auch wirklich gebraucht wird. Vielen Dank also nocheinmal

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