Autor
|
Thema: Variablen in CATIA (3396 mal gelesen)
|
Schäfchen Mitglied technische Zeichnerin
Beiträge: 13 Registriert: 21.01.2010 Catia V5 R19 win XP, x64 edition, SP2
|
erstellt am: 21. Jan. 2010 16:06 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich hab schon wieder ein Problem. Angenommen ich habe in CATIA eine Tabelle erstellt und habe keine Werte eingegeben, sondern nur Textfelder, die mit Variablen versehen wurden. z.B. A3,B3,C3 Ich möchte also die Tabelle in Catia füllen, indem ich in Excel den Variablen Werte zuweise. Wie kann ich auf diese Variablen von Excel aus zugreifen? Grüße Schäfchen 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: 21. Jan. 2010 16:23 <-- editieren / zitieren --> Unities abgeben: Nur für Schäfchen
Mit einem VBA-Makro. Das funktioniert genauso wie ein CATVBA, bzw. eher wie eine normale VB6.0 Anwendung. Musst halt nur manuell die ganzen Verweise setzen, aber das sollte das kleinste Problem sein. Du fischst Dir das aktive CATIA aus der Prozessliste und schon kannste das gleiche machen wie im CATVBA. Also ganz normale Excel-Funktionen nutzen, wie im Makros bekannt. Aber wahrscheinlich rede ich schon am Thema vorbei. Wenn dem so ist, konkretisier bitte noch einmal deine Frage. ------------------ 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 |
Schäfchen Mitglied technische Zeichnerin
Beiträge: 13 Registriert: 21.01.2010 Catia V5 R19 win XP, x64 edition, SP2
|
erstellt am: 22. Jan. 2010 07:22 <-- editieren / zitieren --> Unities abgeben:
Erstmal Danke für die Antwort. Wie setze ich manuell die Verweise? Kannst du mir das an einem Beispiel Code zeigen? Angenommen meine Variable heißt A3 und in Excel soll der Wert 3.5 zugewiesen werden. Für deine Hilfe wär ich sehr dankbar, da ich keinerlei Erfahrung in Makro Programmierung habe. Grüße Schäfchen 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: 22. Jan. 2010 07:56 <-- editieren / zitieren --> Unities abgeben: Nur für Schäfchen
Hallo, mir ist immer noch nicht ganz klar was du machen willst. Am besten beschreibst du mal wie du dir den Ablauf konkret vorstellst. Einen Verweis setzt du im Visual Basic Editor über Tools -> References (siehe Screenshot). Wenn du nicht weißt welche Bibliothek du referenzieren musst (also auf welche Datei du den Verweis setzen musst), kannst du im Excel-VBA Editor den Objektbrowser (F2) öffnen und z.B. nach der Deklaration oder dem Objekt suchen. In der Beschreibung wird dir dann angezeigt in welcher Bibliothek sich die entsprechende Deklaration oder das entsprechende Objekt etc. befindet [EDIT] Eine Anmerkung noch dazu: Wenn du jetzt auf eine Bibiothek Verweis dann nennt man das EarlyBinding. Das kann aber zu Problemen führen wenn du Bibliothek nicht auf allen Zielrechnern installiert ist. Eine andere Möglichkeit ist das LateBinding. Hierbei werden alle "internen" Excel-Objekte beim Deklarieren als Object deklariert.7 Hier mal ein Beispiel: EarlyBinding (Verweis auf Microsoft Office 12.0 Object Library ist gesetzt) Dim oWB as Workbook LateBinding (kein Verweis notwendig) Dim oWB as Object Die Methoden und Klassen bleiben sind bei beiden oWB-Objekten die selben. Der Nachteil beim LateBinding ist das du keine IntelliSense (Autovervollständigung hast) und in VB.NET oder VB6 die Objekte nicht qualifiziert überwachen kannst [/EDIT] ------------------ 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 |
Schäfchen Mitglied technische Zeichnerin
Beiträge: 13 Registriert: 21.01.2010 Catia V5 R19 win XP, x64 edition, SP2
|
erstellt am: 22. Jan. 2010 08:14 <-- editieren / zitieren --> Unities abgeben:
Hallo Daniel, also ich hatte mir das so vorgestellt: In Catia ist eine Drawing geöffnet, in der bereits eine Tabelle erzeugt wurde und zum Teil auch ausgefüllt ist. Bsp. Durchmesser mm "Wert A3" Länge mm "Wert B3" Ich möchte den Variablen "Wert A3","Wert B3" jetzt Werte zuweisen. Allerdings nicht in Catia, sondern über ein Makro von Excel aus. d.h. ich weise in Excel der Variablen "Wert A3" den Wert 15mm zu und dieser soll dann in meine Catia Tabelle übernommen werden. ich hoffe dass es jetzt etwas verständlicher geworden ist. Grüße Schäfchen 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: 22. Jan. 2010 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für Schäfchen
Servus AFAIK muss du wie Daniel beschrieben hat zunächst auf CATIA zugreifen, dann dich durch die Sheets und Ansichten zur Tabelle durchhangeln (oder direkt den Namen der Tabelle ansprechen?). Mit einer Schleife nun die Zellen durchgehen und wenn "Wert A" in der Zelle steht diese durch deinen Wert ersetzten. Beispiele von Tabellen findest du mit der Suchfunktion. 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: 22. Jan. 2010 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für Schäfchen
Hallo, wie genau willst du in Excel der Variablen "Wert A3" den einen Wert zuweisen? Ich beschreibe jetzt mal knapp wie ich das machen würde (auch wenn ich immer noch nicht sicher bin mit der Variablen in Excel. Ich gehe einfach davon aus, das in deinem Excel Worksheet in der Zelle "A3" der wert 15 steht). Wie Bernd schon sagte musst du dich durch die Sheets Collection hangeln, das Richtige Sheet ansprechen, dort doch die Tables-Collection hangeln und die Richtige Tabell ansprechen (hier hast du mehrere Möglichkeiten (z.B. über den Namen der Tabelle, über eine Interaktive Selektion, über die Items, etc.)). Jetzt durchläufst du das Tabellenobjekt in einer Schleife (natürlich nur die Relevanten Spalten und Zeilen) und ließt den String der jeweiligen Zelle aus. Diesen String übergibst du an dein Excel-Worksheet in der Methode Range. Jetzt bekommst du ein Range-Object zurück mit hilfe dessen du den Wert der Zelle erhälst (Range.Value). Das ganze sollte aber auf jeden Fall durch eine Fehlerroutine abgesichert werden (wenn z.B. nur Zahlen eingelesen werden sollen kannst du eine Konvertierung durchführen lassen und die Err.Number abfragen) Ich habe dir hier mal ein kleines Beispiel gemacht wie das aussehen könnte (nur das Auslesen des Wertes aus Excel). Diesen Wert musst du dann halt wieder in die CATIA Tabelle einfügen (immer noch innerhalb der Schleife) Code: Dim myWB As Workbook 'Bei LateBinding Deklaration als Object Dim myWS As Worksheet 'Bei LateBinding Deklaration als Object Dim myRange As Range 'Bei LateBinding Deklaration als Object Dim myValue As Long Set myWB = Excel.ActiveWorkbook Set myWS = myWB.ActiveSheet Set myRange = Range("A1") 'hier steht dein String in den Anführungszeichen On Error Resume Next myValue = CLng(myRange.Value) If Err.Number = 13 Then Err.Clear MsgBox "Der Wert der Zelle " & myRange.AddressLocal & " kann nicht in eine Long-Variable konvertiert werden!", vbCritical, "Fehler" Exit Sub Else MsgBox "Der Wert der Zelle " & myRange.AddressLocal & " beträgt " & myValue & " mm", vbInformation, "Fertig" End If
------------------ 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 |
Schäfchen Mitglied technische Zeichnerin
Beiträge: 13 Registriert: 21.01.2010 Catia V5 R19 win XP, x64 edition, SP2
|
erstellt am: 22. Jan. 2010 09:28 <-- editieren / zitieren --> Unities abgeben:
Ja genau so was hab ich gesucht vielen Dank. Aber eine Frage hab ich jetzt doch noch: Dein Beispielcode gibt ja den Wert aus A1 an eine Messagebox zurück. Wie kann ich denn diesen Wert an ein Textfeld in Catia übergeben? Ein kleines Beispiel wäre hilfreich. Vielen Dank für deine Bemühungen mir das klar zu machen. Grüße Schäfchen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schäfchen Mitglied technische Zeichnerin
Beiträge: 13 Registriert: 21.01.2010 Catia V5 R19 win XP, x64 edition, SP2
|
erstellt am: 22. Jan. 2010 10:55 <-- editieren / zitieren --> Unities abgeben:
|
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 22. Jan. 2010 11:29 <-- editieren / zitieren --> Unities abgeben: Nur für Schäfchen
Hallo Schäfchen, in der Doku findet sich folgendes: Code: 'Tabelle erzeugen Dim MyView As DrawingView Set MyView = MySheet.Views.ActiveView Dim MyTable As DrawingTable Set MyTable = MyView.Tables.Add(100., 100., 2, 2, 20., 50.) 'Wert als Text eintragen iRow = 3 'Spalte iCol = 2 'Zeile iString = CStr(myValue) 'iString = "Title" MyTable.SetCellString iRow, iCol, iString
Gruß Bertel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Schäfchen Mitglied technische Zeichnerin
Beiträge: 13 Registriert: 21.01.2010 Catia V5 R19 win XP, x64 edition, SP2
|
erstellt am: 22. Jan. 2010 11:31 <-- editieren / zitieren --> Unities abgeben:
|
Bertel Mitglied
Beiträge: 300 Registriert: 03.04.2002 CATIA V5 R26SP3HF21 Win10 Lenovo P52 Intel Xenon 16GB Ram NVIDIA Quadro P2000 EUKLID V14 ViCADo 2015
|
erstellt am: 22. Jan. 2010 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für Schäfchen
|