Autor
|
Thema: Annotation 3D von Excel aus steuern (1961 mal gelesen)
|
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 02. Sep. 2015 12:21 <-- editieren / zitieren --> Unities abgeben:
Moin, ich mache Bilder aus Catia und bringe diese in Excel, die Kamera Annotation steuer ich alles von Excel aus, dazu brauche ich aber Annotated Views in Catia. Fotos aus excel heraus kann ich auch schon machen und cameras erstellen bzw. hinfliegen. Nun möchte ich die Camera einstellungen, Werte aber auch in excel speichern, so brauche ich nur noch excel um zu einer camera zu fliegen, ohne Annotated view file. Für je ein bild habe ich je ein excelsheet. Sub fly_catia() 'Name der View aus excelsheet sketch_name = Trim(Replace(Cells(2, 1), "Sketch", "")) Set CATIA = GetObject(, "CATIA.Application") Set oProduct = CATIA.ActiveDocument Set navWB = oProduct.GetWorkbench("NavigatorWorkbench") Set RefObject = oProduct.Product Set oViewCols = RefObject.GetTechnologicalObject("AnnotatedViews") For i = 1 To oViewCols.Count Set oView = oViewCols.Item(i) Set Viewpoint3D = oViewCols.Item(i).Application.ActiveDocument.Cameras 'Wenn in den Annotated View Name der View aus excelsheet dann rann fliegen If InStr(oView.Name, sketch_name) Then navWB.view oView oView.Name = UCase(oView.Name) Set specsAndGeomWindow1 = CATIA.ActiveWindow Set viewer3D1 = specsAndGeomWindow1.ActiveViewer
CATIA.ActiveWindow.ActiveViewer.Activate sUser = CATIA.SystemService.Environ("USER") CATIA.ActiveWindow.ActiveViewer.CaptureToFile 5, "C:\Users\thc1kb\Documents\CATIA\FOTO\" & oView.Name & ".jpg" End If Next i End Sub
Sub create_Anno_view()
Set CATIA = GetObject(, "CATIA.Application") CATIA.StartCommand "Collapse All" datei_name = Replace(ActiveWorkbook.Name, ".xlsm", "")
Set productDocument1 = CATIA.ActiveDocument Set Window = CATIA.ActiveWindow 'Weil sich der Name nicht automatisch update den Baum auf und zu machen Window.Layout = 1 'catWindowSpecsAndGeom Set navigatorWorkbench1 = productDocument1.GetWorkbench("NavigatorWorkbench") Set annotatedViews1 = navigatorWorkbench1.AnnotatedViews Set annotatedView1 = annotatedViews1.Add() navigatorWorkbench1.view annotatedView1 sketch_name = Trim(Replace(Cells(2, 1), "Sketch", "")) annotatedView1.Name = UCase(datei_name) & "_" & UCase(sketch_name) Window.Layout = 2 CATIA.StartCommand "Expand All Levels" End Sub
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: 03. Sep. 2015 13:29 <-- editieren / zitieren --> Unities abgeben: Nur für catia5beginervbs
Hallo beginner, trag' bitte Deine Arbeitsumgebung ins Profil ein. Zum Thema: Was ist jetzt eigentlich die Frage? Tschau, Joe ------------------ The problem with the world is that the intelligent people are full of doubts, while the stupid ones are full of confidence. ~Charles Bukowski Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 03. Sep. 2015 14:50 <-- editieren / zitieren --> Unities abgeben:
Ok, done ich möchte die Kamereadaten in excel speichern und später bei bedarf aus excel lesen und in catia wieder hinfliegen. Bis jetz habe ich lesen der aktuellen kamera in excel schreiben. Was fehlt ist das umgekehrte also lesen excel werte in catia schreiben und da hin fliegen. Als schreiben in excel habe ich bis jetzt das hier: Sub catch_cam_catia() Set CATIA = GetObject(, "CATIA.Application")
Dim ObjViewer3D As Viewer3D Set ObjViewer3D = CATIA.ActiveWindow.ActiveViewer Set aktuelle_sicht = ObjViewer3D.viewpoint3D 'Viewpoint3D (Object) 'Represents the 3D viewpoint. 'The 3D viewpoint is the object that stores data which defines how your objects are seen to enable their display by a 3D viewer. 'This data includes namely the eye location, also named the origin, the distance from the eye to the target, 'that is to the looked at point in the scene, the sight, up, and right directions, 'defining a 3D axis system with the eye location as origin, the projection type chosen among perspective (conic) and parallel (cylindric), and the zoom factor. 'The right direction is not exposed in a property, and is automatically computed from the sight and up directions.
'See also: 'CatProjectionMode spalte = 18 zeile = 2 'GetOrigin Cells(zeile - 1, spalte - 1) = "Annotated_View" 'Name der View aus excelsheet sketch_name = Trim(Replace(Cells(2, 1), "Sketch", "")) datei_name = Replace(ActiveWorkbook.Name, ".xlsm", "") Cells(zeile - 1, spalte) = UCase(datei_name) & "_" & UCase(sketch_name) 'Retrieves the coordinates of the origin of the viewpoint. Dim origin_viewpoint(2) aktuelle_sicht.GetOrigin origin_viewpoint Cells(zeile, spalte - 1) = "origin_viewpoint" Cells(zeile + 1, spalte - 1) = "origin_viewpoint" Cells(zeile + 2, spalte - 1) = "origin_viewpoint" Cells(zeile, spalte) = origin_viewpoint(0) Cells(zeile + 1, spalte) = origin_viewpoint(1) Cells(zeile + 2, spalte) = origin_viewpoint(2) 'GetSightDirection 'Gets the components of the sight direction of the viewpoint. Dim sight_direction_viewpoint(2) aktuelle_sicht.GetSightDirection sight_direction_viewpoint Cells(zeile + 3, spalte - 1) = "sight_direction_viewpoint" Cells(zeile + 4, spalte - 1) = "sight_direction_viewpoint" Cells(zeile + 5, spalte - 1) = "sight_direction_viewpoint" Cells(zeile + 3, spalte) = sight_direction_viewpoint(0) Cells(zeile + 4, spalte) = sight_direction_viewpoint(1) Cells(zeile + 5, spalte) = sight_direction_viewpoint(2) 'GetUpDirection 'Gets the components of the up direction of the viewpoint. Dim up_direction_viewpoint(2) aktuelle_sicht.GetUpDirection up_direction_viewpoint Cells(zeile + 6, spalte - 1) = "up_direction_viewpoint" Cells(zeile + 7, spalte - 1) = "up_direction_viewpoint" Cells(zeile + 8, spalte - 1) = "up_direction_viewpoint" Cells(zeile + 6, spalte) = up_direction_viewpoint(0) Cells(zeile + 7, spalte) = up_direction_viewpoint(1) Cells(zeile + 8, spalte) = up_direction_viewpoint(2) end sub sub lesen_aus_excel_fly_to_catia 'hier fehlt mir der code bzw methode 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: 03. Sep. 2015 15:05 <-- editieren / zitieren --> Unities abgeben: Nur für catia5beginervbs
|
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 03. Sep. 2015 15:26 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 03. Sep. 2015 15:31 <-- editieren / zitieren --> Unities abgeben: Nur für catia5beginervbs
Servus Die Werte setzen und dann ein Update auf den Viewer zB Code: Set aktuelle_sicht = ObjViewer3D.Viewpoint3Daktuelle_sicht.PutOrigin Array(100, 100, 100) ObjViewer3D.Update
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 03. Sep. 2015 16:06 <-- editieren / zitieren --> Unities abgeben:
Moin, vielen Dank für die Lösung hier der Code: Sub flyto_with_excel_werte() Set CATIA = GetObject(, "CATIA.Application")
Dim ObjViewer3D As Viewer3D Set ObjViewer3D = CATIA.ActiveWindow.ActiveViewer Set aktuelle_sicht = ObjViewer3D.viewpoint3D spalte = 18 zeile = 2 Dim origin_viewpoint(2) origin_viewpoint(0) = Cells(zeile, spalte) origin_viewpoint(1) = Cells(zeile + 1, spalte) origin_viewpoint(2) = Cells(zeile + 2, spalte) aktuelle_sicht.PutOrigin origin_viewpoint Dim sight_direction_viewpoint(2) sight_direction_viewpoint(0) = Cells(zeile + 3, spalte) sight_direction_viewpoint(1) = Cells(zeile + 4, spalte) sight_direction_viewpoint(2) = Cells(zeile + 5, spalte) aktuelle_sicht.PutSightDirection sight_direction_viewpoint Dim up_direction_viewpoint(2) up_direction_viewpoint(0) = Cells(zeile + 6, spalte) up_direction_viewpoint(0) = Cells(zeile + 7, spalte) up_direction_viewpoint(0) = Cells(zeile + 8, spalte) aktuelle_sicht.GetUpDirection up_direction_viewpoint ObjViewer3D.Update End Sub Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 04. Sep. 2015 11:27 <-- editieren / zitieren --> Unities abgeben:
|
bgrittmann Moderator Konstrukteur
Beiträge: 11780 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 04. Sep. 2015 12:30 <-- editieren / zitieren --> Unities abgeben: Nur für catia5beginervbs
|
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 04. Sep. 2015 14:47 <-- editieren / zitieren --> Unities abgeben:
es scheint so zu sein das die drehung im bzw. gegen den uhrzeiger von der view die davor angeklickt wurde übernommen wird. Also das speichern der Werte von Getorigin,GetSightDirection,GetUpDirection in excel, und später auslesen der Gleichen Werte mit Putorigin,PutSightDirection,PutUpDirection spiegelt nicht sicher die genaue kamera 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. Sep. 2015 14:56 <-- editieren / zitieren --> Unities abgeben: Nur für catia5beginervbs
Servus Unterscheiden sich die weiteren Werte (FieldOfView , FocusDistance, ProjectionMode, Zoom) nbeim speichern der Kamera und wiederherstellen aus den Excelwerten? ggf muss du diese (zb Zoom) auch noch abspeichern. Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 04. Sep. 2015 15:44 <-- editieren / zitieren --> Unities abgeben:
Nein die Werte sind gleich. Wenn ich die Kamera speichere und auszoome und dann z.B. um 20 Grad Uhrzeiger drehe und dann wieder ranfliege bleiben die 20 Grad stehen und werden nicht wie im orginal zurück gesetzt. 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. Sep. 2015 15:55 <-- editieren / zitieren --> Unities abgeben: Nur für catia5beginervbs
|
catia5beginervbs Mitglied
Beiträge: 22 Registriert: 02.09.2015 Windows 7, Excel 2010,Catia 5.21
|
erstellt am: 04. Sep. 2015 16:14 <-- editieren / zitieren --> Unities abgeben:
ja jetzt gehts es, klasse bin happy, danke :-) fehler war die Belegung des Array: falsch up_direction_viewpoint(0) = Cells(zeile + 6, spalte) up_direction_viewpoint(0) = Cells(zeile + 7, spalte) up_direction_viewpoint(0) = Cells(zeile + 8, spalte) richtig up_direction_viewpoint(0) = Cells(zeile + 6, spalte) up_direction_viewpoint(1) = Cells(zeile + 7, spalte) up_direction_viewpoint(2) = Cells(zeile + 8, spalte) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|