Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Positionen von Schnitt-Ansichten in mehrere Zeichnungsblätter 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:  Positionen von Schnitt-Ansichten in mehrere Zeichnungsblätter ermitteln (3046 mal gelesen)
Estafanos
Mitglied



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

Beiträge: 27
Registriert: 17.07.2012

Catia V5 R22, Windows 7

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


Blatt1.jpg


Blatt2.jpg


Blatt1_Ergebnis.JPG

 
Hallo Zusammen,
Ich habe eine komplizierte Aufgabe, die ich nicht lösen kann. Hoffentlich könnt ihr mir helfen.
Ich habe ein CATDrawing mit mehreren Zeichnungsblättern (Blatt1, Blatt2, …, Blatt7) von einem komplexen Bauteil (Kurbelgehäuse von einem Motor).
Im Blatt1 befindet sich vordere Ansicht vom Kubelgehäuse (siehe Bild: Blatt1.jpeg). Aus der vorderen Ansicht wurde ein A-A Schnitt erzeugt und in Sheet2 kopiert (siehe Bild Blatt2.jpeg).
Im Blatt2 befindet sich jetzt die Schnitt-Ansicht A-A.
Jedes Blatt hat ein Hilfsorientierungssystem (Auf die Horizontale Buchstaben von A bis H und auf die Vertikale von 1 bis 4), um die Schnitt- Ansichten mit den jeweiligen Positionen in den anderen Blätter (Sheets) zu finden.

Gibt es die Möglichkeit, dass die Position von einem Schnitt (Schnitt A-A Blatt2) neben dem Ansicht (Vorderer Ansicht Blatt1) automatisch zu ermitteln wird und neben dem vorderer Ansicht geschrieben wird (siehe Bild: Blatt1_Ergebnis).
Auch bitte umgekehrt: Schreiben die Position der vorderen Ansicht neben dem Schnitt-Ansicht A-A (siehe Bild: Blatt2_Ergebnis).

Beispiel: In Blatt1 neben dem vorderen Ansicht schreibt, wo A steht Verweis (Blatt2 F-2). Und im Blatt2 neben A-A soll Verweis (Blatt1 C-4)

In Catia V5 gibt es leider keine Funktion dafür.

Das Makro soll die Positionen Unabhängig ermitteln, da die Schnitt-Ansichten sehr oft verschoben werden.
Ich habe hier zur Übersichtlichkeit nur eine einzige Schnitt-Ansicht abgeleitet. Im Modell befindet sich über 30 Ansichten, detaillierte Ansichten, Schnitte usw. Die werden jeden Tag hin- und her verschoben.

Vielen Dank im Voraus.
Estafanos

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: 31. Jul. 2012 10: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 Estafanos 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Ich befürchte, dass wird recht schwierig.
- alle Views auf allen Blätter sollte über eine Schleife gehen (ggf gleich in einen mehrdimensionales Array schreiben)
- die Position jeder Ansicht lässt sich über recht einfach auslesen (x, y) muss dann nur noch in die Koordinaten umgerechnet werden (Wert runden und über den Maßstab auf die Blattkoordinaten umrechnen)
- über die Eigenschaft GenerativeBehavior.ParentView lässt sich auch ermitteln wo der Schnitt definiert wurde
- wie man aber auf die Position der Schnittlinie und somit auf die notwendige Position des Textes kommt ist mir nicht bekannt.
- zusätzlich ist dann noch eine Updatefunktion notwendig, die ggf die Koordinaten der Ansichten nach einem verschieben diese korrigiert

Gruß
Bernd

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

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

Estafanos
Mitglied



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

Beiträge: 27
Registriert: 17.07.2012

Catia V5 R22, Windows 7

erstellt am: 31. Jul. 2012 10:53    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 für deine rasche Antwort.
Um das Makro zu verstehen habe ich die Struktur wie im  Buch von Hr. Hansan (Kochbuch Catia v5 automatisieren) geschrieben.
Folgende Schritte habe ich geschrieben, aber ich weiß es nicht mehr, wie es weiter geht.

'Ich habe das Buch von Hr. Hansan (Kochbuch Catia V5 automatisieren duchgelesen. Sehr gute Hilfe
'1. Ausschalten der Fehlerroutine
'2. Prüfen, ob ein Dokument geöffnet ist
'3. Prüfung, ob aktives Dokument ein CATDrawing ist
'4. Ansprechen der einzelnen Blätter
'5. Ansprechen der einzelnen Ansichten in den jeweiligen Blättern
'6.???
'7.???
'8.???
'Nach Schritt 5 weiss ich nicht


Dim version, makroname
Sub CATMain()
version = "1.0"
makroname = "Fake-Dimensions"
On Error Resume Next
Set activedoc = CATIA.ActiveDocument
If Err.Number <> 0 Then
MsgBox "Es ist keine Zeichnung (CATDrawing)geöffnet", 16, makroname + "" + version

    Exit Sub
End If
If (Right(activedoc.Name, 10) <> "CATDrawing") Then
MsgBox "Aktives Dokument ist keine Zeichnung", 16, makroname + "" + version
    Exit Sub
End If

Set drawingsheets1 = activedoc.Sheets

'Ermittung Zeichnungsblätter
For i = 1 To drawingsheets1.Count
    Set drawingsheets1 = drawingsheets1.Item(i)
   
'Definetion der Ansichten
Set drawingViews1 = drawingSheet1.Views
For k = 1 To drawingViews.Count
    Set drawingview1 = drawingview1.Item(k)
 
'alle Ansichten Auflisten
Set dimensions1 = drawingview1.Dimensions
For m = 1 To dimentions1.Count
Set dimension1 = dimentions1.Item(m)

End Sub

Gruß
Estafanos


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: 31. Jul. 2012 12: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 Estafanos 10 Unities + Antwort hilfreich

Servus
Ich empfehle dir dein Makro im VBA-Editor zu erstellen, dann kannst du im Watch-Fester die Eigenschaften der Objekte betrachen und dich ggf leichter "durchhangeln".
Weitere Anmerkungen:
- Schalte die Unterdrückung der Fehlerbehandlung möglichst schnell wieder aus (on Error goto 0)
- die Schleife der Views kann auch erst bei 3 beginnen (1-2 sind Vorder- bzw Hintergrund des Blattes)
- die Postionen der Ansichten bekommst du über drawingview1.X bzw drawingview1.Y
- über ParentView bekommst du die Ansicht in der der Schnitt definiert wurde (zB "if drawingview1.GenerativeBehavior.ParentView is Noting then  ...")
Viel Spass beim weiter basteln, benutze dazu immer das Watch/Local-Fenster und die schrittweise Ausführung deines Codes.

Gruß
Bernd


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

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 31. Jul. 2012 13:01    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 Estafanos 10 Unities + Antwort hilfreich

Hi,

zunächst würde ich empfehlen das du dich um die Funktion kümmerst die die exakte Position der Schnittlinie auf der Zeichnung ließt. Das ist schon etwas knifflig. D.h. es bringt nichts jetzt hier in Kleinigkeiten (was hast du für einen Objekttyp etc.) seine Zeit zu verbummeln wenn der Kern nicht gelöst wurde. Bei einem Betriebssystem wird auch erst die Architektur festgelegt, dann der Kern entwickelt und dann das schöne BlingBling außenrum (siehe Aero, etc.) 

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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

Estafanos
Mitglied



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

Beiträge: 27
Registriert: 17.07.2012

Catia V5 R22, Windows 7

erstellt am: 31. Jul. 2012 14:38    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,
danke für die Lösung. wie kann ich das realisieren?
1. die Position jeder Ansicht lässt sich über recht einfach auslesen (x, y) muss dann nur noch in die Koordinaten umgerechnet werden (Wert runden und über den Maßstab auf die Blattkoordinaten umrechnen)
2. über die Eigenschaft GenerativeBehavior.ParentView lässt sich auch ermitteln wo der Schnitt definiert wurde

Ich mache das leider seit Kurzem.

Gruß
Estafanos

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: 31. Jul. 2012 14:47    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 Estafanos 10 Unities + Antwort hilfreich

Servus
Versuch erst mal, wie Daniel auch empfohlen hat, dir zu überlegen/herauszufinden, wo du den Text mit den "Koordinaten" hinschreiben/erstellen kannst. (ich hab keine Ahnung dazu wie man dies bewerkstelligen kann)
Dann ist der Rest im Vergleich dazu einfach.

Gruß
Bernd

PS: Deine Fragen haben ich meinem zweiten Beitrag schon teilweise beantwortet.

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

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

DanielFr.
Moderator
Manager


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

Beiträge: 2506
Registriert: 10.08.2005

HP Compaq 8710w, Intel Core Duo T7700, 2,40 Ghz, 3GB RAM, Windows XP Professionel @32bit, Quadro FX 1600M, CATIA V5 R19 SP3

erstellt am: 31. Jul. 2012 15:56    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 Estafanos 10 Unities + Antwort hilfreich

Hallo,

arbeitest du mit VBA oder mit CATScript / CATCvs. Verwendest du den VBA-Editor?

Du meintest in deinem Punkt 5 das du bereits eine Schleife durch die Ansichten hast. Falls du den VBA-Editor verwendest (was ich dir dringend an Herz legen möchte) kannst du mit Hilfe einer Überwachung (RMT auf Variable oder Objekt -> Überwachung hinzufügen) und dem Step-By-Step Debugging (Symbolleiste Debugging) deine Schleife Zeile für Zeile abarbeiten und dabei das Objekt objSheet (oder wie dein Objekt eben heißt in dem die gesamte Ansicht aufgenommen wird) ansehen. Hierbei findest du eben auch die von Bernd erwähnten Eigenschaften (X und Y Koordinate) und die ParentView. Du kannst dir dann in deiner Überwachung ansehen wie du auf die Objekte zugreifen kannst.

Alles bringt dir jedoch nichts wenn du nicht die Schnittlinie sauber und zuverlässig auslesen kannst. Eine Idee hierzu ist den Vertex der Linie auszulesen (falls dies geht). Wird ein Schnitt erstellt oder editiert gibt es zwei Vertexe (Start- und Endpunkt der Schnittlinie). Kommst du an diese Punkte ran kannst du wiederrum den X und Y Wert auslesen um diese in deine Felder umzurechnen.

Hierbei müssen eure Felder jedoch sauber bemaßt sein (von der Breite etc.)

------------------
MFG Daniel

Systeminformation | Inoffizielle CATIA Hilfeseite | CATIA FAQ | Suche | TraceParts (Normteile...) | 3D Content Central (noch mehr Normteile...)

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