| |
| KISTERS 3DViewStation: Geniale 3D-Visualisierung für intuitiven HMI Einsatz, eine Pressemitteilung
|
Autor
|
Thema: Erfahrungen im Release 28? (1959 / mal gelesen)
|
CatiaVB Mitglied
Beiträge: 24 Registriert: 15.02.2018 Catia V5R24... VB Studio 2013
|
erstellt am: 19. Jun. 2019 11:19 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe im R28 einige Probleme mit vorhandenen Makros! Z.B. werden mit GetMeasurable(xxx).GetPoint(Arr) scheinbar die Koordinaten nicht mehr auf Absolutnull des RootProdukt bezogen, sondern auf das entsprechende Part... Hat hier jemand Erfahrungen? ------------------ --,-- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Jun. 2019 11:25 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Servus Steht dazu was in der Doku (bzw unter "What's new")? Hast du die Reference für GetMeasurable auch vom Rootproduct aus erstellt? Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CatiaVB Mitglied
Beiträge: 24 Registriert: 15.02.2018 Catia V5R24... VB Studio 2013
|
erstellt am: 19. Jun. 2019 11:35 <-- editieren / zitieren --> Unities abgeben:
Hallo Bernd, ja die Reference habe ich aus den Rootproduct erstellt, in der Doku steht nur eine weitere neue Methode "GetMeasurableInContext" aber das ist doch kein Grund die normale Methode zu ändern... oder etwa doch? ------------------ --,-- Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Jun. 2019 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Servus Dies kann dir sicher Dassault beantworten ggf steht es ja auch in What's new oder war in den vorherigen Dokumentation schon angekündigt. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 78 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29/30/32
|
erstellt am: 17. Sep. 2020 19:23 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Hallo, hier wurde von Dassault geändert, dokumentiert ist es aber erst in der Hilfe zu R29. Nach meinen Tests mit R28 liefert GetMeasurable nun die Koordinaten immer zum Part Ursprung, auch wenn dieses in einem Produkt positioniert und verschoben/gedreht wurde. Auszug aus der Doku: Func GetMeasurable(Reference iMeasuredItem) As Measurable Returns the Measurable object. WARNING: this method will only work for Mono-Instantiated parts, It is recommended to use the method GetMeasurableInContext for measuring Multi-Instantiated parts. Example: This example get the Measurable from the SPAWorkBench. Dim referenceObject As referenceObject Set referenceObject = "GetReference" Dim TheSPAWorkbench As Workbench Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" ) Dim TheMeasurable As Measurable Set TheMeasurable = TheSPAWorkbench.GetMeasurable(referenceObject) Func GetMeasurableInContext(Reference iMeasuredItem,AnyObject iProductInstance) As Measurable Returns the Measurable object with respect to the provided context (ProductInstance).
Example: This example get the Measurable from the SPAWorkBench. Dim referenceObject As referenceObject Set referenceObject = "GetReference" Dim ProductInstances As VPMInstance Set ProductInstances = "GetProductInstance" Dim TheSPAWorkbench As Workbench Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench ( "SPAWorkbench" ) Dim TheMeasurable As Measurable Set TheMeasurable = TheSPAWorkbench.GetMeasurableInContext(referenceObject,ProductInstances) Nun meine Frage zu diesem Thema: GetMeasurable und R26. Ich habe ein Produkt und darin ein Part, zweimal an unterschiedlichen Positionen verbaut. GetMeasurable liefert dann zu einem selektierten Punkt in einer Instanz die richtigen Koordinaten (absolut zum Produktnullpunkt). Zur anderen Instanz erhalte ich aber die gleichen Koordinaten, obwohl sich das Part ja an anderer Stelle im Produkt befindet. Hat hierzu jemand eine Idee? Gruß Bernd Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 17. Sep. 2020 20:40 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Servus Ich würde es wie in dieser Diskussion beschrieben angehen: Punkt zum Teileursprung messen und mit der Positionsmatix "umrechnen" Oder ich würde noch folgendes Testen: die Reference für die Messung per CreateReferenceFromName (Pfad bis zum Punkt zusammensetzen) ermitteln Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 78 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29/30/32
|
erstellt am: 18. Sep. 2020 10:50 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Hallo Bernd, danke für die schnelle Antwort. -> Punkt zum Teileursprung messen und mit der Positionsmatix "umrechnen": Diese Vorgehensweise ist mir bekannt und funktioniert soweit auch. Die Auswahl der Geometrie erfolgt durch SelectElement2(.......) Wenn ein Vertex selektiert wurde kann ich die Positionsdaten über oSel.Item2(1).GetCoordinates ReferencePoint3D abrufen Dann liegen die Positionsdaten zum Partnullpunkt vor und alle Matrizenberechnungen passen. Anders wenn ein Kreis selektiert wurde Dann brauche ich die Messung um an den Kreismittelpunkt zu kommen und R26 liefert das Ergebnis absolut zum Produktursprung. Bei nur einer Instanz des Parts in der Produktstruktur funktioniert das auch: Dim ReferencePoint3D(2) As Variant Set oRef = oSel.Item2(1).Value Set SpaWB = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench") Set Meas = SpaWB.GetMeasurable(oRef) Meas.GetCenter ReferencePoint3D -> die Reference für die Messung per CreateReferenceFromName (Pfad bis zum Punkt zusammensetzen): Ich denke hier liegt der Hund begraben Über oSel.Item2(1).Value erhalte ich ein Brep, mit dem ich auch innerhalb des Parts weiterarbeiten kann Dieses Brep kennt ja aber nicht die Produktstruktur in der das Part verbaut ist und liefert für jede Instanz des Parts die gleiche Referenz. An die Instanz komme ich mit: Set ExemplarOfSelection = oSel.FindObject("CATIAProduct") Wie kann ich nun die Instanz(Exemplar) und das Brep zu einer Referenz zusammenfügen? Alle Beispiele zu CreateReferenceFromBRepName die ich gefunden habe behandeln nur die Situation in einem Part. Gruß Bernd PS:
Habe doch noch weitere Infos im Forum gefunden: [URL=http://ww3.cad.de/foren/ubb/Forum137/HTML/005219.shtml#000013][/URL] [Diese Nachricht wurde von EmilioSanchez am 18. Sep. 2020 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 78 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29/30/32
|
erstellt am: 19. Sep. 2020 10:11 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Hallo, hier meine Lösung mit VBA. Habe viel Zeit verschwendet mit dem zerlegen und zusammensetzten vom Brep String, was gar nicht nötig ist. Man kann den String den die Selektion zurückgibt direkt als Namen für CreateReferenceFromName verwenden. Der Name mit Pfad muss allerdings schon vor Verwendung in einer Variable zusammengefasst sein: So gehts: CreateReferenceFromName(StrReferenceName) So nicht: CreateReferenceFromName(StrReferenceName & "/!" & oSelName) Beispiel Produkstruktur: Product '- Product1(Product1.1) '- Part1(Part1.1) '- Part1(Part1.2) Sub CATMain() Dim oSelName As String Dim StrReferenceName As String Dim Status As Variant Dim InputObjectType(0) InputObjectType(0) = "Edge" Set oSel = CATIA.ActiveDocument.Selection Set oProd = CATIA.ActiveDocument.Product oSel.Clear Status = oSel.SelectElement2(InputObjectType, "Randkurve der Bohrung oder Kreistasche wählen", True) Set oSelValue = oSel.Item2(1).Value oSelName = oSelValue.Name Set ProduktParent = oSel.FindObject("CATIAProduct") StrReferenceName = ProduktParent.Name Do Until ProduktParent.Name = "CNEXT" Set ProduktParent = ProduktParent.Parent.Parent If ProduktParent.Name = "CNEXT" Then Exit Do StrReferenceName = ProduktParent.Name & "/" & StrReferenceName Loop StrReferenceName = StrReferenceName & "/!" & oSelName MsgBox StrReferenceName Set oRef = oProd.CreateReferenceFromName(StrReferenceName) ' Code......... End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Sep. 2020 10:20 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Servus Kleine Ergänzung zu deinem Code: An die Instanz solltest du auch über LeafProduct dran kommen. (sollte dann auch bei Mehrfachselektionen in verschiedenen Instanzen gehen) zB Set oInstance = oSel.Item2(1).LeafProduct Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EmilioSanchez Mitglied
Beiträge: 78 Registriert: 02.11.2003 Intel I7 4700MQQ 24GB Win10 Pro 64-Bit Catia V5 R19/R26/28/29/30/32
|
erstellt am: 19. Sep. 2020 10:30 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
|
MarcL68 Mitglied Group Leader Mechanical Design
Beiträge: 27 Registriert: 21.08.2013 Windows 10 Entreprise Version 10.0.17763 HP ZBook 17G2 i7-4610M; 3.0GHz;(RAM)16,00 Go NVIDIA Quadro 3000M CATIA V5R2012 SP3 - V5R2018
|
erstellt am: 06. Okt. 2020 13:10 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
Hallo, Ich habe ein Ähnliches Problem mit einer Makro um ALLCAParts erzustellen. Es klappt nicht mehr in R28: Set oProd2Part = oRootProd.GetItem("DECProductToPart") Hat jemand einen Tipp?
------------------ Gruss Marc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 06. Okt. 2020 15:06 <-- editieren / zitieren --> Unities abgeben: Nur für CatiaVB
|