Autor
|
Thema: Positionen von Schnitt-Ansichten in mehrere Zeichnungsblätter ermitteln (3046 mal gelesen)
|
Estafanos Mitglied
Beiträge: 27 Registriert: 17.07.2012 Catia V5 R22, Windows 7
|
erstellt am: 31. Jul. 2012 09:29 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 31. Jul. 2012 10:00 <-- editieren / zitieren --> Unities abgeben: Nur für Estafanos
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
Beiträge: 27 Registriert: 17.07.2012 Catia V5 R22, Windows 7
|
erstellt am: 31. Jul. 2012 10:53 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 31. Jul. 2012 12:22 <-- editieren / zitieren --> Unities abgeben: Nur für Estafanos
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
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 / zitieren --> Unities abgeben: Nur für Estafanos
|
Estafanos Mitglied
Beiträge: 27 Registriert: 17.07.2012 Catia V5 R22, Windows 7
|
erstellt am: 31. Jul. 2012 14:38 <-- editieren / zitieren --> Unities abgeben:
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
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 31. Jul. 2012 14:47 <-- editieren / zitieren --> Unities abgeben: Nur für Estafanos
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
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 / zitieren --> Unities abgeben: Nur für Estafanos
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 >>)
|