Autor
|
Thema: DrawingView links ändern (1884 mal gelesen)
|
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 03. Jul. 2018 14:03 <-- editieren / zitieren --> Unities abgeben:
Hallo Zusammen! Ich habe mir gewundert, ob das Machbar ist... Ich habe mehrere Teile, welche mit Assembly aufgebaut sind (Rohteil als Body und weitere Bearbeitung als Assembly da drin). Durch Detaillierung muss ich auch die noch nicht uberarbeitete Kante mallen. Zur Zeit machen wir das so, dass erstellen wir zweites Ansicht, dann positionieren wir es mit Superpose an "schon gearbeitetes Teil", dann kopieren wir die erste Geometrie mit Duplicate Geometry und einfugen ohne Link zum gearbeitetes Teil. Dann löschen wir das Rohteil Ansicht. Ist das zu automatisieren möglisch? Gruß Lukas 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: 03. Jul. 2018 14:46 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Lukas Sollte möglich sein. Ansicht kopieren und einfügen, Position der Ansichten bestimmen/abgleichen, Link der Ansicht umbiegen, Ansicht isolieren, Geometrie suchen und kopieren, ... alle diese Einzelschritte sind möglich. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 05. Jul. 2018 08:30 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus LukasSollte möglich sein. Ansicht kopieren und einfügen, Position der Ansichten bestimmen/abgleichen, Link der Ansicht umbiegen, Ansicht isolieren, Geometrie suchen und kopieren, ... alle diese Einzelschritte sind möglich. Gruß Bernd
Alles was du hast geschrieben kann ich außer
Zitat: Position der Ansichten bestimmen/abgleichen
wo kann ich der Methode finden? Unter DrawingView? [Diese Nachricht wurde von Sylas am 05. Jul. 2018 editiert.] 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: 05. Jul. 2018 19:44 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Wird beim kopieren und einfügen die Ansicht nicht an der gleichen Position eingefügt, was ein ausrichten überflüssig macht? Hat eine DrawingView nicht Properties/Methoden X und Y? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. 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: 06. Jul. 2018 08:11 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Hallo, so würde ich das auch machen (X und Y Werte der beiden Views synchronisieren). Es gibt einen Befehl im Kontextmenü der Ansicht (View Positioning/Superpose) mit denen man zwei Ansichten übereinander legen kann, fixiert aufeinander sind sie dann aber immer noch nicht. Allerdings scheint dieser Befehl nicht in der VBA API implementiert zu sein. D.h. das müsste man dann über CATIA.StartCommand lösen. Scheint mir zu viel Aufwand dafür das die Ansichten dann nicht fest miteinander verbunden sind. Gruß Randle ------------------ Wer für nichts steht, fällt für alles! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Jul. 2018 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Moin, ich hoffe mal das ich dein Problem richtig verstanden habe. Ich würde die Zeichnungsableitung ganz anders machen, damit wird dann die Programmierung überflüssig. Wenn du eine Body Struktur (mittels Boolscher Operationen) erstellst und darin so konstruierts, das in einem Body das Rohteil und in einem / mehreren anderen die Bearbeitung abgelegt ist, kannst du Zeicgnungsableitungen aus dem Part heraus von dem Body machen. Dann wird z.B. von dem body, in welchem das Rohteil abgelegt ist auch nur dieses (ohne Bearbeitung) dargestellt. Zeichnungsableitung vom Part zeigt alles. Dann musst du die Geometrie nicht duplizieren oder Ansichten kopieren. Und alles ist assoziativ. Siehe Screenshot. Wenn unklar, melde dich. Falls dir das irgendwie hilft. (Das ist die Arbeitsweise in der Betriebsmittelkonstruktion der OEMs / Zulieferer der Automobilindustrie) ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Jul. 2018 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Hallo, falls ich deine Frage falsch verstanden habe und du die Möglichkeit der Zeichnungsableitung aus der Bodystruktur herraus schon kennst hilft dir vieleicht der Hinweis eher weiter (siehe auch Bild im Anhang): Über das "Modify Links" einer Ansicht kannst du zu Ableitung des Parts den Rohbody dazulegen (und diesen strichpunktiert darstellen). Gruß ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 11. Jul. 2018 09:20 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von tomtom1972: Hallo, falls ich deine Frage falsch verstanden habe und du die Möglichkeit der Zeichnungsableitung aus der Bodystruktur herraus schon kennst hilft dir vieleicht der Hinweis eher weiter (siehe auch Bild im Anhang): Über das "Modify Links" einer Ansicht kannst du zu Ableitung des Parts den Rohbody dazulegen (und diesen strichpunktiert darstellen). Gruß
Ja - die Funktion kenne ich. Ich bin schon bei Code:
sbrView.GenerativeLinks.RemoveAllLinks sbrView.GenerativeLinks.AddLink (oPartBody) sbrView.GenerativeLinks.AddLink (oFunktionsteil)
aber alles was kriege ich ist eines isoliertes View keine Links hinzugefügt was habe ich falsch gemacht? Gruß Lukas 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: 11. Jul. 2018 09:26 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Lukas Hast du mal etwas mehr Code? Sind die Klammern bei Addlink notwendig? Kommt eine Fehlermeldung beim Ablauf des Makros? Hast du ggf die Fehlerbehandlung abgeschaltet? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Jul. 2018 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
|
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Jul. 2018 10:04 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Bei mir funktioniert das, auch mit Update nur am Ende. Ich habe es gerade ausprobiert. Die Ansicht ist nicht isoliert. Dein Problem liegt demnach wo anders. Wie Bernd schon schreibt wäre ein bischen Code hilfreich ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 11. Jul. 2018 13:38 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von bgrittmann: Servus LukasHast du mal etwas mehr Code? Sind die Klammern bei [i]Addlink notwendig? Kommt eine Fehlermeldung beim Ablauf des Makros? Hast du ggf die Fehlerbehandlung abgeschaltet? Gruß Bernd [/i]
Hallo Bernd Ich denke das wenn Mann ein View mit
Code:
sbrView.GenerativeLinks.RemoveAllLinks
isoliert, kann nix mit Ansicht mehr machen Ich habe schon ohne und mit Klemmen versucht - ohne Glück Gruß Lukas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 11. Jul. 2018 13:45 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Hallo, mit und ohne Klammern ist egal. Was du schreibst ist so aber nicht richtig. Ich habe mit .... oDrwVGLinks.RemoveAllLinks oDrwVGLinks.AddLink (oBody) oDrwVGLinks.AddLink (oPart) oDrwVGLinks.Update .... erst alle Links einer Ansicht rausgelöscht und dann wieder den Body + das Part drauf verlinkt. Das geht ohne Probleme. Da ist nix isoliert. Der Fehler muss wo anders liegen. Ohne Beispielcode ist das allerdings eher eine Rateveranstaltung. Gruß ToTom
------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 12. Jul. 2018 08:59 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von tomtom1972: Hallo, mit und ohne Klammern ist egal. Was du schreibst ist so aber nicht richtig.Ich habe mit .... oDrwVGLinks.RemoveAllLinks oDrwVGLinks.AddLink (oBody) oDrwVGLinks.AddLink (oPart) oDrwVGLinks.Update .... erst alle Links einer Ansicht rausgelöscht und dann wieder den Body + das Part drauf verlinkt. Das geht ohne Probleme. Da ist nix isoliert. Der Fehler muss wo anders liegen. Ohne Beispielcode ist das allerdings eher eine Rateveranstaltung. Gruß ToTom
Hallo Leute Ich bin zuruck mit nachsten Fragen ;) Ich bin bei
Code:
Sub CATMain() Dim oview As DrawingView Dim oDwg As DrawingDocument 'Wybor widoku Dim oSel As Selection Set oSel = CATIA.ActiveDocument.Selection Set oDwg = CATIA.ActiveDocument Set dSel = oSel Dim oFT_View As DrawingView Dim oFT_body As Body Dim InputObjectType(0) InputObjectType(0) = "DrawingView" sel = dSel.SelectElement3(InputObjectType, "Wybierz widoki, na ktorych pojawic ma sie Funktionsteil", True, CATMultiSelTriggWhenUserValidatesSelection, False)For i = 1 To oSel.Count Set oview = oSel.Item(i).Value oDwg.DrawingRoot.ActiveSheet.Views.Add "Funktionsteil" Set oFT_View = oDwg.DrawingRoot.ActiveSheet.Views.Item("Funktionsteil") Set oFT_body = oview.GenerativeBehavior.Document.Parent.Part.Bodies.Item("Funktionsteil") oFT_View.GenerativeLinks.AddLink oFT_body 'hier superpose, Geometrie vom oFT_View dupliziren, copy und paste zu oview Next End Sub
und weiß nicht wie kann ich jetzt neues Ansicht genau an andere liegen es gibt kein superpose Methode.... vielleicht geht es so, das ich oFT_View.X und .Y mit oview.X und .Y anpasse? Wie dinks du? Gruß Lukas EDIT: Das klappt! Aber... Orange Ansicht ist meines Funktionsteil... wie kann ich die Drehwinkel von dem Ursprungansicht übernehmen? [Diese Nachricht wurde von Sylas am 12. Jul. 2018 editiert.] 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: 12. Jul. 2018 18:01 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus Bei Views.Add müsstest du wohl die Ausrichtung der Ansichtsebene definieren (siehe Doku zB DefineFrontView und SetProjectionPlane bzw GetProjectionPlane). Oder die zuvor selektierte Ansicht kopieren und einfügen (dann passt die Ausrichtung) und danach den Link umbiegen. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Sylas Mitglied
Beiträge: 322 Registriert: 19.11.2012 Dell Precision T3500 Intel Xeon W3550 @ 3,07 GHz 12 GB RAM CATIA V5 R28
|
erstellt am: 26. Jul. 2018 13:58 <-- editieren / zitieren --> Unities abgeben:
Halo Zusammen Ich habe wieder ein Problem im Zwischenschritt Ich probiere gerade die Geometrie aus Ansicht 1 zum Ansicht 2 ohne Link kopieren... Ist das überhaupt Machbar? Code:
Sub CATMain() Dim oview As DrawingView Dim oDwg As DrawingDocument Dim oSel As SelectionSet oSel = CATIA.ActiveDocument.Selection Set oDwg = CATIA.ActiveDocument Set dSel = oSel Dim oFT_View As DrawingView Dim oFT_body As Body Dim InputObjectType(0) Dim VP As VisPropertySet Dim dwgviews As New VBA.Collection InputObjectType(0) = "DrawingView" sel = dSel.SelectElement3(InputObjectType, "Wybierz widoki, na ktorych pojawic ma sie Funktionsteil", True, CATMultiSelTriggWhenUserValidatesSelection, False) For i = 1 To dSel.Count dwgviews.Add dSel.Item(i) Next oSel.Clear For i = 1 To dwgviews.Count Set oview = dwgviews.Item(i).Value oSel.Add dwgviews.Item(i).Value oSel.Copy oSel.Clear oSel.Add oview.Parent oSel.Paste Set oFT_View = oDwg.DrawingRoot.ActiveSheet.Views.Item(oDwg.DrawingRoot.ActiveSheet.Views.Count) Set oFT_body = oview.GenerativeBehavior.Document.Parent.Part.Bodies.Item("Funktionsteil") oFT_View.GenerativeLinks.RemoveAllLinks oFT_View.GenerativeLinks.AddLink oFT_body oFT_View.Activate oFT_View.X = oview.X oFT_View.Y = oview.Y oDwg.Update oSel.Clear oSel.Add oFT_View oSel.Search ("Drafting.'Generated Item';sel") oSel.VisProperties.SetVisibleWidth 1, 0 oSel.VisProperties.SetVisibleLineType 4, 0 oSel.Copy oSel.Clear oSel.Add oview ' hier kopierte Geometrie ohne Link einfugen oSel.Clear 'zeitweise Ansicht löschen oDwg.Update oSel.Add oFT_View oSel.Delete Next End Sub
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: 26. Jul. 2018 15:22 <-- editieren / zitieren --> Unities abgeben: Nur für Sylas
Servus ggf könntest du einfach vor dem kopieren die Ansicht oFT_View isolieren, dann sollte ein einfaches oSel.Paste reichen Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |