Autor
|
Thema: Makro gesucht für Drawing: Image/View in einer Tabellen Zelle hinzufügen (1094 mal gelesen)
|
magomed Mitglied
Beiträge: 6 Registriert: 01.08.2018
|
erstellt am: 01. Aug. 2018 16:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich suche nun seit längerem in allen verschiedenen Seiten/Dokus nach einer Lösung, aber vielleicht könnt ihr mir weiterhelfen wenn ich das Problem hier genauer erläutere: Und zwar erstelle ich mittels Makro zunächst eine einfache Tabelle in einer Drawing, in dessen Zellen entweder ein String oder Image reinkommen soll. Die Strings sind kein Problem, aber bei den Image wird es schwieriger. In Catia ist das wie ich herausgefunden habe auf folgendem Weg möglich: Arbeitsansichten > in der Drawing eine neue View erstellen > Blatthintergrund > Blatt View selektieren und oben in der Leiste bei "Einfügen" auf "Bild" > jeweilige Zelle aus Tabelle selektieren (doppel Mausklick) > [Rechtsklick] Ansicht hinzufügen > Ansicht auswählen und das Image befindet sich in der Zelle. Leider zeichnet Catia dazu kein Makro auf und so komme ich nur bis zu dem Schritt mit dem 'Image in die View hinzufügen'. Aber wie kriege ich dann per Makro die View (oder gleich einfach nur das Image wenn es geht) in die jeweilige Zelle? Bis jetzt habe ich ein jpg Image zum testen verwendet. Ich habe viel herumprobiert, bin aber so langsam ratlos. Hier der Code wo 2 Zellen erstellt werden bis hin zum erstellen der View mit dem Image: Code:
'Zelle 1 und 2 erstellen' Dim drawingText1 As DrawingText Set drawingText1 = drawingTable1.GetCellObject(1, 1)Dim drawingText2 As DrawingText Set drawingText2 = drawingTable1.GetCellObject(2, 1) 'neue View zur Drawing hinzufügen' Set drawingViews1 = drawingSheet1.Views Dim drawingView2 As DrawingView Set drawingView2 = drawingViews1.Add("pictureAnsicht1") Dim drawingPictures1 As DrawingPictures Set drawingPictures1 = drawingView2.Pictures 'Image zur neuen View hinzufügen' Dim drawingPicture1 As DrawingPicture Set drawingPicture1 = drawingPictures1.Add("C:/...", 0#, 0#) 'Zelle 1 mit Text füllen' drawingTable1.SetCellString 1, 2, "testColumn" 'in Zelle 2 soll das Image rein' drawingTable1.SetCellString 2, 1, "In diese Zelle soll ein Image rein"
Danke schon mal fürs durchlesen, ich hoffe jemand kann mir weiterhelfen mfg Mago Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 02. Aug. 2018 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
Hallo, ich habe mir das gerade mal angesehen (in R26), und ich sehe da keine Möglichkeit den von dir beschriebenen manuellen Weg zu automatisieren. Die Methode "SetCellObject" akzeptiert nur Textfelder als Objekt. Aus der Automation Doku: o Sub SetCellObject( long iRow, long iCol, DrawingText iText) Sets an object in a cell of a drawing table. Parameters: iRow The cell row iCol The cell column iText The Drawing Text to set in the cell Example: This example puts the drawing text iText in the cell (1,3) of the table MyTable. iRow = 1 iCol = 3 MyTable.SetCellObject iRow, iCol, iText Da wirst du wohl die Position des Bildes an der Zelle orientieren. Du könntest mit "GetCellObject" die Position des Textfeld der Zelle auslesen und das Bild entsprechend positionieren. Evtl. kannst du die Tabelle auch in einer separaten Zeichnung vorbereiten und von dort aus kopieren und einfügen. Was anderes fällt mir da auf die Schnelle nicht ein, vielleicht hat jemand anderes noch eine Idee. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 02. Aug. 2018 08:22 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
|
magomed Mitglied
Beiträge: 6 Registriert: 01.08.2018
|
erstellt am: 02. Aug. 2018 09:49 <-- editieren / zitieren --> Unities abgeben:
Hallo Randle, Danke für deine Antwort! Wirklich schade dass die Vorgehensweise mit der View nicht im Code umsetzbar zu sein scheint. Ich hab mich jetzt mal an deinen Ansatz versucht. Bild einfügen, positionieren und Größe ändern ist kein Problem. Nun habe ich aber das Problem wenn ich die Tabelle in die Drawing einfüge und ein Bild darüber Schiebe, ist das Bild immer hinter der Tabelle. Das kann man umgehen indem man die Eigenschaft "Texthintergrund" auf "(Nein)" setzt, danach sind die Zellen ohne Background. Aber jetzt habe ich wieder das Problem wie ich diese Eigenschaft im Code ändern kann, weiß das Jemand? MFG Mago 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: 02. Aug. 2018 15:47 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
|
magomed Mitglied
Beiträge: 6 Registriert: 01.08.2018
|
erstellt am: 03. Aug. 2018 09:13 <-- editieren / zitieren --> Unities abgeben:
|
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 03. Aug. 2018 09:23 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
|
magomed Mitglied
Beiträge: 6 Registriert: 01.08.2018
|
erstellt am: 03. Aug. 2018 11:09 <-- editieren / zitieren --> Unities abgeben:
Ich laufe von einer Sackgasse in die nächste Gibt es Niemanden der ein Bild per Makro in eine Tabelle hinzugefügt hat? Dachte am Anfang das wäre mit so etwas wie DrawingText.addImage erledigt, aber war es leider nicht. [Diese Nachricht wurde von magomed am 03. Aug. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 03. Aug. 2018 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
Hallo, muss es denn unbedingt ein Makro sein, bzw. komplett automatisiert? Ansonsten könntest du die Tabelle ja vorbereiten und in einem 2D Katalog (oder auch nur in einer Zeichnung) speichern und diese per Makro dort raus kopieren (oder der Anwender muss das halt tun), der Rest (was auch immer du letztendlich vorhast) kann dann ja evtl. automatisiert werden. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 03. Aug. 2018 11:28 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
|
magomed Mitglied
Beiträge: 6 Registriert: 01.08.2018
|
erstellt am: 03. Aug. 2018 11:39 <-- editieren / zitieren --> Unities abgeben:
Die Tabelle wird bereits von wo anders rüber kopiert. Und von da kann man nur einen PATH zum Bild mitschicken. Wenn es nicht automatisierbar ist, müsste es der User dann nachdem die Tabelle erstellt wurde manuell hinzufügen, das wäre vielleicht Ok, aber nicht optimal. Vielleicht meldet sich hier noch Jemand der sowas bereits gecodet hat. Aber danke für die Antworten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 03. Aug. 2018 11:54 <-- editieren / zitieren --> Unities abgeben: Nur für magomed
Hallo, aber wenn du die Tabelle schon kopierts, kannst du denn dann im Quelldokument nicht die entsprechende Eigenschaft der Tabelle anpassen? Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
magomed Mitglied
Beiträge: 6 Registriert: 01.08.2018
|
erstellt am: 03. Aug. 2018 12:09 <-- editieren / zitieren --> Unities abgeben:
Die Tabelle aus den Quelldokument hat nichts mit der in der Catia zu tun. Es werden lediglich mittels Makro alle Zeilen und Spalten, mit Inhalt, in die Catia Drawing rüber kopiert. Da würde es mir z.B. nichts nützen die Fontsize im Quelldokument auf 10 zu setzen, da ich für die neue Tabelle in der Catia sowieso ein neues Fontsize machen müsste, mittels eines Makros. mfg Mago Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |