Autor
|
Thema: Copy with Link from Reference (1337 mal gelesen)
|
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 27. Nov. 2015 10:04 <-- editieren / zitieren --> Unities abgeben:
Hallo, Mein Problem: Ich selektiere alle Punkte, die werden dann auf einer Vorschau-Tabelle zu sehen. Wenn ich damit zufrieden bin, mache ich ein "Copy with Link" für alle selektierte Punkte in andere Stelle des Strukturbaum. Soweit ich weiss, kann man die Funktion "Copy with link" aus einem Objekt der Type Selection durchführen. Bis jetzt habe ich alles selektierten Punkte in einem Array der Type "Reference" gespeichert. Jetzt möchte ich diesen Array benutzen. Gibt es eine Möglichkeit, dass ich durch alles Element von diesem Array durchlaufe, für jedem Element weise ich eine Selection an diesem zu (also ich selektiere wieder die referenzierte Punkte, "add Selection from Reference")? Oder hat jemand einen Idee für diese Aufgabestellung? Ich bedanke mich für jede Anregung. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 27. Nov. 2015 11:02 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
|
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 27. Nov. 2015 12:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, die Aufgabestellung ist, ich wähle Punkte, die erscheinen auf dem Vorschau. Auf dem Vorschau hat man noch Optionen (wie z.B Biegung an der Stelle, ob die spiezielle Punkte oder nicht, falsch gewählte Punkte können aus Vorschau entfernt, usw.). Wenn man die Vorschau zufrieden ist, kann man mit solche Infos arbeiten (Linie daraus bilden, Koordinaten abmessen, Duplikat mit Link erzeugen..) Jeder gewählte Punkt kriegt eine Referenz, und später möchte ich aus dieser Referenz die Selection auf die Punkte zuweisen, danach mache ich eine Copy with Link. Ich weiss aber noch nicht, wie ich aus Rezerenz die Punkte wieder zugreifen kann. MfG
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
joehz Moderator Freiberuflicher Konstrukteur
Beiträge: 1057 Registriert: 25.11.2006 Win7 Pro 64 + Ubuntu + Irix6.5.20 Dell Precision M6600 i7-2960XM 2.7GHz 16GB NVidia Quadro M5010 Catia V5R19 VB6Pro.SP6/VBA 6.5.1053
|
erstellt am: 27. Nov. 2015 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
|
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 03. Dez. 2015 10:28 <-- editieren / zitieren --> Unities abgeben:
Hallo, die Aufgabestellung ist: Koordinaten aus einen Set von gewählten Punkten auszulesen, in Zeichnung darstellen. Falls Änderung gibt, soll man möglichst schnell die Koordinaten wieder haben (werde mit der Import-Funktion gemacht, was später erklärt ist) Ich habe es so gemacht: 1) zuerst alle gewählte Punkte werden auf einem Vorschau (Art von Tabelle) gezeigt. 2) Man kann gewählte Punkte aus Vorschau entfernt (falls man sich vertan). 3) Wenn man damit zufrieden ist, werden aus der Punkten (via ihrem von mir erzeugten Referenz) ein Duplikat, mit Copy with Link, an einem Extra GeoSet erzeugt. (Der Grund für Copy with Link: diese GeoSet soll nach einer Änderung wieder im Vorschau importiert werden können, man muss Punkte nicht noch man durchklicken. Der Grund für Extra GeoSet: Aus der gewählten Punkte werde Polyline erzeugt, ich lasse sie deswegen separat, damit man das leicht checken kann) Meine Frage: Wie kann ich aus vorhandenen Referenz die "Copy with Link" Funktion machen. 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. Dez. 2015 11:00 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Servus Ich bin mir nicht sicher was du mit Referenz (Object vom Typ "Reference"ß) meinst. Schon mal probiert diese Referenz (einzeln) der Selektion hinzufügen -> Copy -> PasteSpecial? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 03. Dez. 2015 11:07 <-- editieren / zitieren --> Unities abgeben:
Hallo, mit Selection selektiert man quasi alles auf einem Rutsch, was man sich vertan kann man nicht rausnehmen. Ich habe eine Referenz auf jedem selektierte Punkt erzeugt (Diese Referenz werden in einem Array gespeichert). Diese Punkte werden auf einer Tabelle dargestellt, wenn man merkt, dass man unnötigte Punkte gewählt hat, kann man diese aus dem Vorschau rausnehmen, die Referenz von dem Punkt wird entsprechend aus dem Array weggetan. Also ich habe Array von Referenz, die zeigen genau auf gewünschte Punkte. Wie kann ich aber mit diese Referenz Copy with Link arbeite, ist meine Frage. VG 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. Dez. 2015 12:59 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Servus Wenn die Punkt schon in einem Array hast: - Selektion leeren - ein Element aus dem Array der Selektion zuweisen - Copy & PastSpecial und das ganze für die weiteren Punkte (Element im Array) wiederholen Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 03. Dez. 2015 14:03 <-- editieren / zitieren --> Unities abgeben:
Hallo, nur die Referenz werden in Array gespeichert. Ich dachte auch daran, dass Selection irgendwie in einem Array zu speichern (mit SelectionSet vlt.) Es gibt aber keine Documentation für diese. Kannst du mir bitte noch einen Stück weiter helfen. 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. Dez. 2015 14:29 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Servus Hast du mein vorgehen schon mal getestet? AFAIR hat das mal bei mir funktioniert eine Element nur über die Reference daraus zu selektieren und zu kopieren. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 03. Dez. 2015 16:20 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Dez. 2015 07:45 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Servus Hier ein kurzes Beispiel: Code: Sub CATMain()Dim partDocument1 As PartDocument Set partDocument1 = CATIA.ActiveDocument Dim selection1 As Selection Set selection1 = partDocument1.Selection selection1.Clear Dim part1 As Part Set part1 = partDocument1.Part Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("Geometrisches Set.1") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes Dim hybridShapePointCoord1 As HybridShapePointCoord Set hybridShapePointCoord1 = hybridShapes1.Item("Punkt.1") Dim oref As Reference Set oref = part1.CreateReferenceFromObject(hybridShapePointCoord1) selection1.Add hybridShapePointCoord1 selection1.Copy selection1.Clear selection1.Add hybridBody1 selection1.PasteSpecial ("CATPrtResult") part1.Update End Sub
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 04. Dez. 2015 09:41 <-- editieren / zitieren --> Unities abgeben:
Hallo, soweit ich deinen Code verstanden habe, machst du folgende: - Du erstellst einen Punkt - Zeigt einen Zeiger (Ref) auf dem Punkt - Fügt den Punkt zur Selection hinzu (aber nicht per neu erstellter Ref) - Paste auf GeoSet Im Prinzip das ist "Select - Copy,Paste - Select -Copy,Paste,..." habe ich richtig verstanden? Ich möchte aber alles auf einmal Select, löschen selektierte Element falls vertan, dann alles auf einmal Copy,Paste. Meine Szenario ist deswegen: - Zuerst für selektierte Punkte eine Referenz erstellen - diese Ref in einem Array (damit ich später zugreiffen, aber auch die Ref hinzufügen, löschen, einen Einheit nach hinten verschieben,... kann) - Nach dem ich mit meinem Array von Ref zufrieden bin, gehe ich diesen Array durch, aus jeder Ref die Selection zuweisen, damit ich Copy-Paste machen kann.
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: 04. Dez. 2015 10:03 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Servus Ups.Ändere mal die Zeile in "selection1.Add oref" Geht es dann auch? Mehrere hab ich gerade nicht getestet. Gruß Bernd PS: Wie sieht denn dein Code aus? Was sind bei dir Referenzen? Warum speicherst du nicht die Punkte (Objekte) im Array zwischen? ------------------ Warum einfach, wenn es auch kompliziert geht.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tubuibam Mitglied
Beiträge: 93 Registriert: 10.11.2013 Intel Core i5- 2.6Ghz, 4GB Ram, Intel HD Grafik 4000 Windows 7, Catia V5 R19
|
erstellt am: 04. Dez. 2015 10:22 <-- editieren / zitieren --> Unities abgeben:
Hi, danke für deine Antwort. Das ist ein langer Code, ich weiß nicht wie ich hier laden soll aber genau an der Stelle My_Selection.Add Punkt_Ref(i) Funktioniert Add Methode nicht, wobei Punkt_Ref() ist eine Array von Ref. Was meinst du mit Punkt in ein Array zu speichern? Ich kann aber z.B Koordinaten, oder Ref von Punkte in Array speichern, wie kann ich den Punkt (vermutlich als Type Obj), in Array speichern? VG
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: 04. Dez. 2015 16:12 <-- editieren / zitieren --> Unities abgeben: Nur für tubuibam
Servus zB (Pseudo-Code): Code: Dim MyArray() as Object ReDim MyArray(oSelection.count+1) for i = 1 to oSelectionCount Set MyArray(i)= oselection.item(i).value next
oder du verwendet ein Dictonarry oder Collection zum zwischenspeichern. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |