Autor
|
Thema: Verknüpfung einer Zeichnung ändern (8149 mal gelesen)
|
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 22. Mai. 2006 12:15 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen Ein bischen kenne ich durch Programmierung in Excel mit VBA aus. Jedoch bin ich in Catia noch nicht sehr weit gekommen. Ich helfe immer weiter, indem ich ein Befehlsfolge mit dem Recorder aufnehme und diese anschließend modifiziere. Beim Drafting habe ich nun ein Problem: Ich möchte Zeichnungen von Teilen erzeugen die ähnlich sind und sich jedoch durch einen Parameter unterscheiden (Bsp: Länge). Die Parts selber habe ich schon über eine Iterationsschleife aus einem Usprungspart abgeleitet. Nun wollte ich eine Zeichnung fertigstellen und anschließend ebenfalls über eine Iterationsschleife neue Zeichnungen über Save as erzeugen und das Modell, welches mit der Zeichnung verknüpft ist austauschen. Beim Aufnehmen dieser Befehlsfolge hat der Makrorecorder jedoch nicht die Änderungen der Verknüpfung registriert. Kennt jemand von euch einen entsprechenden Befehl Im vorraus Vielen Dank Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 22. Mai. 2006 22:03 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo mkna, ich will Dir ja nicht Deine Illusionen nehmen, aber mein Wissensstand dazu ist: "Es geht nicht!". Zumindest wenn Du die Maße "dynamisch" behalten willst. Dazu fehlen (zumindest in R14) einfach die Befehle! Unter "DrawingView.GenarativeLinks" gibt es kein "Replace", nicht mal ein "Remove", sondern nur ein "Remove All"! Aber aus den ganzen Diskussionen im Forum würde ich Dir einen anderen Weg zum Testen vorschlagen: "SendTo"! Dazu müßtest Du Dein Konzept folgendermaßen abwandeln: -CATPart samt CATDrawing öffnen -in Iterationsschleife: -mittels "SendTo" CATPart und CATDrawing unter anderen Namen kopieren -kopiertes CATPart und CATDrawing öffnen -CATPart ändern/anpassen -CATDrawing updaten -CATPart und CATDrawing sichern Falls Du dies probierst, poste mal, ob der Weg gangbar ist! mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 22. Mai. 2006 22:21 <-- editieren / zitieren --> Unities abgeben:
Hallo Lusilnie Schade, aber trotzdem vielen Dank für Deine Antwort. Ich denke dass dein Weg sinnvoll ist und werde ihn morgen gleich ausprobieren (Ich bin zur Zeit zu Hause und habe hier kein Catia). Habe auch schon in der Vergangenheit die Parts bei grundsätzlichen Änderungen lieber neu über besagte Iteration erzeugt als jedes einzelne Teil zu öffnen und anschließend entsprechend abzuändern.Da ich immer befürchte etwas zu übersehen.
Bis dann Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bobby_Joe2001 Mitglied Konstrukteur
Beiträge: 81 Registriert: 15.01.2006
|
erstellt am: 23. Mai. 2006 19:40 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Zitat: Original erstellt von Lusilnie: Hallo mkna,ich will Dir ja nicht Deine Illusionen nehmen, aber mein Wissensstand dazu ist: "Es geht nicht!". Zumindest wenn Du die Maße "dynamisch" behalten willst. Dazu fehlen (zumindest in R14) einfach die Befehle! Unter "DrawingView.GenarativeLinks" gibt es kein "Replace", nicht mal ein "Remove", sondern nur ein "Remove All"! Aber aus den ganzen Diskussionen im Forum würde ich Dir einen anderen Weg zum Testen vorschlagen: "SendTo"! Dazu müßtest Du Dein Konzept folgendermaßen abwandeln: -CATPart samt CATDrawing öffnen -in Iterationsschleife: -mittels "SendTo" CATPart und CATDrawing unter anderen Namen kopieren -kopiertes CATPart und CATDrawing öffnen -CATPart ändern/anpassen -CATDrawing updaten -CATPart und CATDrawing sichern Falls Du dies probierst, poste mal, ob der Weg gangbar ist! mfg, Lusilnie
Meinst du SendTo per makro? Das erfordert eine spezielle Lizenz. Hab das selbst noch nicht getestet, aber warum sollte das mit den Links ersetzten nicht funktionieren? @mkna Vorschlag für Vorgehensweise: - du erstellst von einem Part die erste "Beispielzeichung" - Öffnest alle Parts Jetzt kommt des Makro: - Makro macht ne schleife durch alle geöffneten Dokumente - Löscht von jeder Ansicht deiner Zeichung die links - Fügt das part als neuen link zur betreffenden Ansicht hinzu - Update der Zeichnung - Zeichnung speichern unter So sollte des per Makro realisierbar sein, hab ich allerdings selber noch nicht gemacht. Frag einfach, falls ichs zu schlicht erklärt hab oder dir die Befehle fehln Gruß Bobby ------------------ Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen. Konrad Adenauer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 23. Mai. 2006 20:13 <-- editieren / zitieren --> Unities abgeben:
|
Bobby_Joe2001 Mitglied Konstrukteur
Beiträge: 81 Registriert: 15.01.2006
|
erstellt am: 23. Mai. 2006 20:31 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Zitat: Original erstellt von mkna: Hallo Bobby_Joe2001Kannst Du mir den Befehl für den Schritt "Fügt das part als neuen link zur betreffenden Ansicht hinzu" nennen ? Martin
Bitteschön
Code:
Sub CATMain() 'Objectverweis für 3. View vom aktiven Blatt Set MyView = CATIA.ActiveDocument.Sheets.ActiveSheet.Views.Item(3) 'Objectverweis für 1. Dokument in der Dokumentliste, das ist z.B. ein Part Set MyDoc = CATIA.Documents.Item(1) 'Alle Links der Ansicht löschen MyView.GenerativeLinks.RemoveAllLinks 'Der Ansicht das neue Part zuweisen MyView.GenerativeLinks.AddLink MyDoc.Product End Sub
Gruß Bobby ------------------ Du musst die Leute einmal richtig ärgern, dann wirst du endlich ernst genommen. Konrad Adenauer Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 23. Mai. 2006 20:33 <-- editieren / zitieren --> Unities abgeben:
|
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 24. Mai. 2006 00:34 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo Bobby_Joe2001, natürlich funktioniert das, um die View mit dem Dokument zu verknüpfen. Man kann anstelle von: MyView.GenerativeLinks.AddLink MyDoc.Product auch: MyView.GenerativeBehavior.document = MyDoc verwenden. Doch wie gesagt, liegt hier das Problem in den bestehenden Maßen. Die sind an eine "non-visible" Geometrie gekoppelt und nicht an das "neu" verbundene Original, also "nicht mehr dynamisch", sprich assoziativ! Oder ist dies doch der Fall? Hast Du schon mal das Ergebnis nach einer Änderung des Parts/Products angeschaut? mfg, Lusilnie
------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!! frei nach größeren Geistern Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Studdy Mitglied
Beiträge: 9 Registriert: 23.05.2006
|
erstellt am: 24. Mai. 2006 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Ich habe ein ähnliches Problem. Ich habe ein Quellproduct, das dynamisch durch eine Konstruktionstabelle erzeugt wird. Danach erzeuge ich eine neue Exceltabelle mit einem neuen Index. Diese neu erzeugte exceltablle soll nun die Konstruktionstabelle für das neu erzeugte Produkt sein. Das Problem ist nun, ich finde keinen Befehl mit dem ich den Link der Exeltablle bzw. Konstruktionstabelle ändern kann. Wer weiß Rat? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Steffen Hohmann Mitglied
Beiträge: 446 Registriert: 06.03.2002
|
erstellt am: 24. Mai. 2006 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für mkna
Hallo Martin, wie würde man es denn manuell machen? 1. Master-Zeichnung öffnen 2. Master-Part öffnen 3. Parameter im Master-Part ändern 4. Zeichnung aktualisieren 5. Part unter neuem Namen speichern (jetzt weiß auch die Zeichnung davon) 6. Zeichnung unter neuem Namen speichern Für jeden Schritt gibt es entsprechende Makrobefehle. 1. Set Master_Zeichnung = CATIA.Documents.Open ("Master_Zeichnung.CATDrawing") 2. Set Master_Part = CATIA.Documents.Open ("Master_Part.CATPart") 3. Master_Part.Part.Parameters.Item("ParameterName").Value = XXX 4. Master_Zeichnung.Update 5. Master_Part.SaveAs "Part_Variante_X.CATPart" 6. Master_Zeichnung.SaveAs "Zeichnung_Variante_X.CATDrawing" Das packt man dann noch in eine Schleife. So sollte es funktionieren. Gruß Steffen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mkna Mitglied Konstrukteur
Beiträge: 137 Registriert: 18.03.2005
|
erstellt am: 22. Sep. 2006 15:37 <-- editieren / zitieren --> Unities abgeben:
Hallo ich will noch mal das Thema aufgreifen, welches ich vor ein paar Wochen selbst gestartet habe. Der Vorschlag von dir Steffen funktioniert wunderbar, jedoch erhalte ich mit der Methode "Save as" Parts die immer die gleiche UUID haben. Wenn ich den Befehl "New from" außerhalb eines Makros ausführe bemerkt das System bei einer Zeichnung, dass hier auch ein Part dazugehört und fragt nach ob ich auch dies mit "New from" in eine neue Datei überführen möchte. Innerhalb eines Makros tut er das nicht. Oder kennt jemand eine Möglichkeit eine neue UUID erzeugen zulassen Vielen Dank Martin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |