Autor
|
Thema: GetBoundaryBox in CATVBA (3704 mal gelesen)
|
Simone H. Mitglied Dipl.-Ing
Beiträge: 3 Registriert: 06.11.2006
|
erstellt am: 06. Nov. 2006 11:02 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte die Position einer Bemaßung herausfinden. Meiner Meinung nach ist das nur über die Function Dimension.GetBoundaryBox möglich. Ich erhalte jedoch eine FM, die besagt, dass diese Funktion nicht für alle API-Sprachen zur Verfügung steht. Weiß jemand Rat ?? ------------------ Moby
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Simone H. Mitglied Dipl.-Ing
Beiträge: 3 Registriert: 06.11.2006
|
erstellt am: 20. Nov. 2006 21:59 <-- editieren / zitieren --> Unities abgeben:
Ich habe selbst die Antwort gefunden ! siehe Dim DrwDim as Object ' das ist der erste Schritt Dim Coordinates(7) as VARIANT 'das ist der 2. Schritt oDrwDim.GetBoundaryBox Coordinates MsgBox "x1= " & Coordinates(0) & vbCr & "y1= " & Coordinates(1) & vbCr & _ "x2= " & Coordinates(2) & vbCr & "y2= " & Coordinates(3) & vbCr & _ "x3= " & Coordinates(4) & vbCr & "y3= " & Coordinates(5) & vbCr & _ "x4= " & Coordinates(6) & vbCr & "y4= " & Coordinates(7) & vbCr ------------------ Moby
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 09. Okt. 2012 18:13 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 09. Okt. 2012 18:27 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Servus Dieser Code liefert mit die Koordinaten der Eckpunkte um den Wert: Code: Sub DrwTest()Dim drawingDocument1 As DrawingDocument Set drawingDocument1 = CATIA.ActiveDocument Dim drawingSheets1 As DrawingSheets Set drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheet Set drawingSheet1 = drawingSheets1.Item("Blatt .1") Dim drawingViews1 As DrawingViews Set drawingViews1 = drawingSheet1.Views Dim drawingView1 As DrawingView Set drawingView1 = drawingViews1.Item("Main View") Dim drawingDimensions1 As DrawingDimensions Set drawingDimensions1 = drawingView1.Dimensions Dim drawingDimension1 As Variant 'DrawingDimension Set drawingDimension1 = drawingDimensions1.Item("Bemaßung.1") Dim Boundingbox(7) As Variant drawingDimension1.GetBoundaryBox (Boundingbox) End Sub
Gruß Bernd------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 10. Okt. 2012 11:22 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hi Bernd, vielen Dank schonmal. Ich habe das so auch schon mal versucht - und nun mit deinem Code - jedoch bleibt "Boundingbox(0) -(7)" alles "empty". Habe das mit dem Locals Windows Fenster geprüft. Ich muss doch hierbei nur eine Dimension an einen Kreis/Rechteck/Linie anhängen und es sollte somit funktionieren, oder? Danke, Tim Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 10. Okt. 2012 23:41 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hallo Tim2007, Zitat: Original erstellt von Tim2007: Ich muss doch hierbei nur eine Dimension an einen Kreis/Rechteck/Linie anhängen und es sollte somit funktionieren, oder?
Das funktioniert natürlich nur, wenn Du das Element "Kreis/Rechteck/Linie" auf einen Blatt ("Sheet") mit Namen "Blatt .1" im Vordergrund (nicht in der "Background View" bzw. einer andern View) erstellt hast, daran Deine Bemaßung "hängt" und diese Bemaßung auch noch "Bemaßung.1" heißt. Falls dies nicht der Fall ist, musst Du alle Bezeichnungen (die Werte in "") entsprechend anpassen! 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 |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 11. Okt. 2012 08:45 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hallo Lusilnie, danke für deine info. Das habe ich - soweit ich das sehe - alles geachtet, trotzdem erhalte ich bei "Boundingbox(0) -(7)" alles "empty". Können da irgendwelche Grundeinstellungen falsch sein? 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. Okt. 2012 08:47 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Servus lade doch mal deine Beispielzeichnung und dein Code (nicht als catvba-Datei) hoch. Dann schau ich mal ob der Code bei mir läuft. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 11. Okt. 2012 08:51 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
|
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 11. Okt. 2012 09:09 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hi Bernd, Sub CATMain() Dim drawingDocument1 As DrawingDocument Set drawingDocument1 = CATIA.ActiveDocument
Dim drawingSheets1 As DrawingSheets Set drawingSheets1 = drawingDocument1.Sheets Dim drawingSheet1 As DrawingSheet Set drawingSheet1 = drawingSheets1.Item("Sheet.1") Dim drawingViews1 As DrawingViews Set drawingViews1 = drawingSheet1.Views Dim drawingView1 As DrawingView Set drawingView1 = drawingViews1.Item("Front view") Dim drawingDimensions1 As DrawingDimensions Set drawingDimensions1 = drawingView1.Dimensions Dim drawingDimension1 As Variant 'DrawingDimension Set drawingDimension1 = drawingDimensions1.Item("Dimension.3") Dim Boundingbox(7) As Variant drawingDimension1.GetBoundaryBox (Boundingbox) MsgBox (Boundingbox(0) & " " & Boundingbox(1) & " " & Boundingbox(2) & " " & Boundingbox(3) & " " & Boundingbox(4) & " " & Boundingbox(5) & " " & Boundingbox(6) & " " & Boundingbox(7)) End Sub
Bitte beachte: wir haben das Catia auf Englisch-Einstellung. Die Deutsche Bezeichnungen wie "Bemaßung.3" führt zu einem Fehler.
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. Okt. 2012 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Servus Ich kann keinen Fehler im Code erkennen (bei mir läuft er durch, hab allerdings auch R20). Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. [Diese Nachricht wurde von bgrittmann am 11. Okt. 2012 editiert.] [Diese Nachricht wurde von bgrittmann am 11. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 11. Okt. 2012 09:46 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hi Bernd, Habs jetzt gefunden: es geht nur, wenn man die () bei Boundingbox weglässt (siehe Bild). Jetzt nur noch ein weiterer Punkt: Wie kann ich die Koordinaten der Dimension auf die Hauptview erhalten. Ich denke ich werde da die Koordinaten von der einen "Front view" zur "Haupt view" ausgeben lassen müssen und diese mit den der Dimension verrechnen. Frage: wie kann ich mir die Koordinaten der View angeben lassen? Danke euch. 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. Okt. 2012 09:51 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Servus IMHO werden die Koordinaten zum Ursprung der View ausgegeben. Dann brauchst du die Koordinaten der View nicht, oder? (bzw findest du diese mit Sicherheit in der V5Automation beim View-Objekt) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 11. Okt. 2012 10:10 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hi, ja schon. Die werden zur der View ausgegeben, in der sie sind, aber nicht zur Hauptview, welche die Zeichnung definiert. Ich würde ja gerne die Koordinaten zur geasamten Zeichnung wissen und nicht zu der jewiligen View ;-) Grüße. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Tim2007 Mitglied Konstrukteur
Beiträge: 143 Registriert: 02.01.2007 Catia V5R19SP3 XP64<P>"Was wir wissen, ist ein Tropfen; was wir nicht wissen, ein Ozean." Sir Isaac Newton
|
erstellt am: 11. Okt. 2012 10:20 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Und wieder was dazugelernt : die stehen einfach unter drawingview1. Was ist aber der Unterschied zu x/y und xAxisData/yAxisData? Danke. [Diese Nachricht wurde von Tim2007 am 11. Okt. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lusilnie Mitglied
Beiträge: 1486 Registriert: 13.07.2005
|
erstellt am: 16. Okt. 2012 01:08 <-- editieren / zitieren --> Unities abgeben: Nur für Simone H.
Hallo Tim2007, das "Pärchen" x/y bildet den Abstand des Nullpunktes des abgeleiteten CATParts/CATProducts vom Nullpunkt des Blattes ("Sheets") ab, während das Pärchen "xAxisData/yAxisData" den Abstand des "View"-Nullpunktes (Nullpunkt der Ansicht) zum Nullpunkt des Blattes ("Sheets") abbildet. Das kommt allerdings erst zum Tragen, wenn Du zur Ableitung der "View" (Ansicht) ein vom Achsensystem des abzuleitenden CATParts/CATProducts abweichendes Achsensystem wählst. 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 |