| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Inventor aus Excel ansprechen (455 mal gelesen)
|
Lars90696 Mitglied Konstrukteur
 Beiträge: 5 Registriert: 10.03.2023 Intel Xenon W2225; 64 GB; NVIDIA RTX A4000 Inventor 2015; Windows 10 Pro; Office 2021
|
erstellt am: 10. Mrz. 2023 14:12 <-- editieren / zitieren --> Unities abgeben:         
Hallo an alle fleißigen Forenteilnehmer. An die anderen auch. Ich hoffe ich werde nicht gleich wieder in eine andere Gruppe verwiesen, da ich mir nicht 1ß00% sicher bin, hier richtig zu sein. Meine Ausstattung Inventor 2015 Office 2021 Windows 10 pro. Problem Ich will den Inventor aus Excel ansprechen und in einer Zelle ein Vorschaubild einfügen. Fehlen mir eventuell Add-Ins oder sollte ich gleich vergessen, weil nicht möglich. Es geht mir nicht um die endgültige Programmierung. Invormationen, wie der neue Inventor exportiert aber oder.... benötige ich eher weniger. Ich habe die 15 und das hat auch seinen Grund. Allen ein schönes Wochenende, Lars ------------------ Inventor 2015 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Roland Schröder Moderator Dr.-Ing. Maschinenbau, Entwicklung & Konstruktion von Spezialmaschinen
       

 Beiträge: 13123 Registriert: 02.04.2004 IV 2019 + 2020 + 2021 W7pro64 F-Secure-Safe Dell-M4600 2,13GHz 12GB Quadro2000M 15,4"1920x1080, am Dock: 27"2560x1440 MS-IntelliMouse-Optical SpacePilotClassic
|
erstellt am: 10. Mrz. 2023 16:21 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Moin! Zunächst mal Herzlich Willkommen auf CAD.de , und dann der Hinweis, dass es Inventor 2015 heißen muss, denn es gibt daneben auch eine interne zweistellige Versionsnummern, die mit der Jahreszahl gar nichts zu tun hat, so dass die zweistellige Angabe der Jahreszahl hier zu Verwirrung führt. Was hast Du denn überhaupt vor? Für die Vorschaubildchen allein musst Du meines Wissens nämlich Inventor gar nicht haben, oder zumindest nicht ansprechen, denn die sind ja auch im Windows-Explorer schon zu sehen. Damit das geht, sind sie mit in der Datei gespeichert, und der Windows-Explorer kann sie da rausziehen. Um sie anderweitig zu verwenden, müssen diese Bildchen allerdings erst mal aus der Datei extrahiert und einzeln gespeichert werden, z. B. mit einem kleinen VBA-Programm. Ob es fertige Tools dafür gibt, weiß ich nicht. Wahrscheinlich schon. Musst Du mal gründlich suchen. Vielleicht weiß es auch jemand anders hier im Forum.
------------------ Roland www.Das-Entwicklungsbuero.de It's not the hammer - it's the way you hit! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3547 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 11. Mrz. 2023 10:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Zitat: Original erstellt von Roland Schröder:
Was hast Du denn überhaupt vor? Für die Vorschaubildchen allein musst Du meines Wissens nämlich Inventor gar nicht haben, oder zumindest nicht ansprechen, denn die sind ja auch im Windows-Explorer schon zu sehen. Damit das geht, sind sie mit in der Datei gespeichert, und der Windows-Explorer kann sie da rausziehen.
Das halte ich für eine gewagte Annahme. Es muss sicher nicht zwingend Inventor sein, aber ein Programm, das die z.B. *.ipt lesen kann, muss wohl doch vorhanden sein. Oder hast Du schonmal bei einer blanken Windows-Installation gesehen, dass Dir der Explorer ipt-Thumbnails darstellt? Beim Inventor liefert(e?) (früher?) Apprentice die erforderliche Funktionalität. Hört sich so an, als wäre das immer noch so. Aber da habe ich keine Ahnung von. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Torsten Niemeier Ehrenmitglied V.I.P. h.c. Maschinenbau Ingenieur

 Beiträge: 3547 Registriert: 21.06.2001 "ZUSE I.36", 8 BIT, 32 Lämpchen, Service-Ölkännchen "ESSO-Super", Software: AO auf Kuhlmann-Parallelogramm-Plattform ** CSWP 04/2011 ** ** CSWE 08/2011 **
|
erstellt am: 11. Mrz. 2023 10:42 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
     

 Beiträge: 2186 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 11. Mrz. 2023 14:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Moin Mir ist kein direkter Weg für die Thumbnails bekannt. Ein gangbarer Weg ist der Apprenticeserver, der bei installiertem Inventor automatisch vorhanden ist. mein Routenvorschlag für ein Excelmakro: - Apprentice starten - Inventordokument im Apprentice öffnen - Zugriff auf Document.Thumbnail Property (ist ein IPictureDisp) - Thumbnail über stdole.SavePicture als *.WMF in einem Tempverzeichnis speichern (Verweis in Excel VBA auf "OLE Automation" erforderlich) - Apprentice schließen - in Excel mit Worksheet.Shapes.AddPicture das Bild einfügen - optional Bildgröße, Verankerung, Zeilenhöhe und Spaltenbreite usw. anpassen - optional das Tempfile löschen Der Weg kommt bis auf Apprentice und die eine Referenz ohne weitere Voraussetzungen aus. ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lars90696 Mitglied Konstrukteur
 Beiträge: 5 Registriert: 10.03.2023 Intel Xenon W2225; 64 GB; NVIDIA RTX A4000 Inventor 2015; Windows 10 Pro; Office 2021
|
erstellt am: 13. Mrz. 2023 09:35 <-- editieren / zitieren --> Unities abgeben:         
Hallo und vielen Dank für die Antworten, ich werde versuchen die Anregungen umzusetzen. Was habe ich vor? Für einen sehr kleinen Teil der Stückliste benötige ich für die Produktion Vorschaubilder. Ich habe schon ein Makro, welches für die Einzelteile den Dateipfad als Hyperlink hinterlegt. Für bestimmte Personengruppen muss ich aber auf Papier noch ein Vorschaubild mit drucken. Dies würde ich gern als automatischen Vorgang haben. Dies ist der Hintergrund für diese Frage. Ich werde ich jetzt erst einmal durch die obigen Hinweise arbeiten. Lars ------------------ Inventor 2015 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
     

 Beiträge: 2186 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 13. Mrz. 2023 10:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Moin Wie groß müssen die Bilder sein? Wenn das in einem Papierausdruck wirklich erkennbar sein soll, könnten die Thumbnails zu pixelig sein. Alternativ könnte man die SaveAsBitMap Methode des Views oder einer Camera benutzen.Das benötigt aber einen laufenden Inventor. Apprentice kann das meines Wissens nicht. ------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rode.damode Mitglied Maschinenbauingenieur
 
 Beiträge: 390 Registriert: 15.07.2011 Inventor 2021.4.4 ZBook15, i7 Quadro M2200 32GB
|
erstellt am: 13. Mrz. 2023 10:54 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Hallo Lars Auch der 2015er konnte schon Bilder in der Stückliste exportieren. Eventuell musst du die Spalte der Miniaturansicht noch manuell hinzufügen: Zitat von 2014:
Zitat:
Um Miniaturansichten in Stücklisten von älteren Baugruppen anzuzeigen, müssen Sie die Spalte Miniaturansicht manuell zu den Stücklisten hinzufügen.
Zitat Ende. Wäre das nicht einfacher? Viele Grüße Roger
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
     

 Beiträge: 2186 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 13. Mrz. 2023 13:07 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
|
rode.damode Mitglied Maschinenbauingenieur
 
 Beiträge: 390 Registriert: 15.07.2011 Inventor 2021.4.4 ZBook15, i7 Quadro M2200 32GB
|
erstellt am: 13. Mrz. 2023 15:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
|
Lars90696 Mitglied Konstrukteur
 Beiträge: 5 Registriert: 10.03.2023 Intel Xenon W2225; 64 GB; NVIDIA RTX A4000 Inventor 2015; Windows 10 Pro; Office 2021
|
erstellt am: 13. Mrz. 2023 16:23 <-- editieren / zitieren --> Unities abgeben:         
Danke für die Beteiligung, meine Stücklisten in der Urfassung (Export) sind 1500 bis 2500 Zeilen lang. Ich ziehe es vor dies ohne Export der Vorschaubilder zu machen. Ich glaube sonst bräuchte ich neue Rechentechnik. Die Stückliste, welche mit den Vorschaubildern versehen werden soll, ist um 100 Zeile lang. In dieser Stückliste ist schon ein Hyperlink zu dem jeweiligen Einzelteil. Ich benötige "nur" noch ein Vorschaubild für diese kurze Liste. Am liebsten wäre mir ein Makro, welches diese Erstellt und einfügt. Mehr nicht. Lars ------------------ Inventor 2015 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
     

 Beiträge: 2186 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 13. Mrz. 2023 22:38 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Moin Ich hab mal folgende Annahmen getroffen: - es gibt in der Exceltabelle eine Spalte "Dateipfad" mit dem vollen Pfad zu der jeweiligen Datei oder es wird abgebrochen. - es gibt in der Exceltabelle eine Spalte "Thumbnail" in der die Thumbnails eingefügt werden sollen oder die Spalte wird am Ende der Tabelle eingefügt. - Die Spaltenbreite und Zeilenhöhe soll auf die Größe der Thumbnails angepasst werden. Probier mal:
Code:
Option ExplicitPrivate Sub GetThumbnailImages() Dim sPathCol As String sPathCol = "Dateipfad" ' <-- Spaltenname mit den Dateipfaden Dim sThumbCol As String sThumbCol = "Thumbnail" ' <-- Spaltenname für die Thumnails Dim PathCell As Range Set PathCell = Rows.Find(sPathCol, lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True) If PathCell Is Nothing Then MsgBox "Spalte " & sPathCol & "nicht gefunden. Abbruch" Exit Sub End If Dim ThumbCell As Range Set ThumbCell = Rows.Find(sThumbCol, lookat:=xlWhole, LookIn:=xlValues, MatchCase:=True) If ThumbCell Is Nothing Then MsgBox "Spalte " & sThumbCol & "nicht gefunden. Füge am Ende ein" Dim ThumbCol As Long ThumbCol = Cells(PathCell.Row, Columns.Count).End(xlToLeft).Column Cells(PathCell.Row, ThumbCol + 1) = "Thumbnail" End If Dim i As Long For i = PathCell.Row + 1 To Cells(Rows.Count, PathCell.Column).End(xlUp).Row Call GetImage(Cells(i, PathCell.Column), i, ThumbCell.Column) Next Call ResizeCellToFitPicture End Sub Public Sub GetImage(ByVal sFullFilePath As String, ByVal iRowIndex As Integer, ByVal iColIndex As Integer) On Error Resume Next Dim oAppr As New Inventor.ApprenticeServerComponent Dim oApprDoc As ApprenticeServerDocument Set oApprDoc = oAppr.Open(sFullFilePath) Dim oXLApp As Excel.Application Set oXLApp = Application Dim oWorkBook As Workbook Set oWorkBook = Application.ActiveWorkbook Dim oWorkSheet As Worksheet Set oWorkSheet = oWorkBook.ActiveSheet Dim objPicture As stdole.IPictureDisp Do Set objPicture = oApprDoc.thumbnail If Err.Number > 0 Then GoTo Error Loop Until objPicture > 0 Call SavePicture(objPicture, "C:\Temp\TempThumb.wmf") Dim oShape As Shape With oWorkSheet Set oShape = .Shapes.AddPicture("C:\Temp\TempThumb.wmf", msoFalse, msoTrue, 0, 0, -1, -1) End With With oShape .Top = oXLApp.Cells(iRowIndex, iColIndex).Top .Left = oXLApp.Cells(iRowIndex, iColIndex).Left .LockAspectRatio = msoFalse End With Error: Call oAppr.Close End Sub
Sub ResizeCellToFitPicture() Dim shp As Shape Dim cel As Range Dim celColWidth As Single, celWidth As Single, PicHeight As Single, PicWidth As Single Dim i As Long For Each shp In ActiveSheet.Shapes shp.Placement = xlMove shp.LockAspectRatio = msoFalse ' <-- Seitenverhältnis beim Skalieren beibehalten? shp.ScaleHeight 1, msoTrue ' <-- Skalierung Höhe prozentual shp.ScaleWidth 1, msoTrue ' <-- Skalierung Breite prozentual 'shp.Height = 75 ' <-- Skalierung Höhe absolut (px) 'shp.Width = 75 ' <-- Skalierung Breite absolut (px) Set cel = shp.TopLeftCell PicHeight = shp.Height PicWidth = shp.Width shp.Left = cel.Left shp.Top = cel.Top cel.EntireRow.RowHeight = PicHeight celColWidth = cel.EntireColumn.ColumnWidth celWidth = cel.EntireColumn.Width celColWidth = (PicWidth / celWidth) * celColWidth celColWidth = Application.Min(255, celColWidth) cel.EntireColumn.ColumnWidth = celColWidth Next End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lars90696 Mitglied Konstrukteur
 Beiträge: 5 Registriert: 10.03.2023 Intel Xenon W2225; 64 GB; NVIDIA RTX A4000 Inventor 2015; Windows 10 Pro; Office 2021
|
erstellt am: 14. Mrz. 2023 08:38 <-- editieren / zitieren --> Unities abgeben:         
Hallo und sehr vielen Dank für die umfangreiche Arbeit. Kurzes Ergebnis Programm startet nicht. Dies liegt aber wahrscheinlich eher an fehlenden Detailinformationen meinerseits. Vielleicht sollten wir die Informationen per PN klären und das Ergebnis mit Kommentaren hier in das Forum stellen. Quellpfad wäre Spalte C ab C2 im Hyperlink der Zelle versteckt. Ziel ist die Spalte U. Dies habe ich auch im Musterprogramm angepasst. Im Laufwerk E: habe ich die Datei 1.idw nur zu Testzwecken-Prüfung der grundsätzlichen Erstellung eines Vorschaubildes in Excel. Lars Vielen Dank für die Mühe ------------------ Inventor 2015 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
     

 Beiträge: 2186 Registriert: 15.11.2006 Windows 10 x64, AIP 2023
|
erstellt am: 14. Mrz. 2023 09:52 <-- editieren / zitieren --> Unities abgeben:          Nur für Lars90696
Moin Mit hart codierten Quell- und Zielspalten geht es etwas einfacher. Bei den Hyperlinks hab ich die Adresse genommen, da der angezeigte Text abweichen kann. Ersetze nur den Inhalt dieser Sub, die anderen beiden bleiben unverändert. Code:
Private Sub GetThumbnailImages() Dim SourceCell As Range Set SourceCell = Cells(2, 3) ' <-- entspricht Zelle C2 Dim TargetCell As Range Set TargetCell = Cells(2, 21) ' <-- entspricht Zelle U2 Dim i As Long For i = SourceCell.Row To Cells(Rows.Count, SourceCell.Column).End(xlUp).Row If Cells(i, SourceCell.Column).Hyperlinks.Count > 0 Then Call GetImage(Cells(i, SourceCell.Column).Hyperlinks(1).Address, i, TargetCell.Column) End If Next Call ResizeCellToFitPicture End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Lars90696 Mitglied Konstrukteur
 Beiträge: 5 Registriert: 10.03.2023 Intel Xenon W2225; 64 GB; NVIDIA RTX A4000 Inventor 2015; Windows 10 Pro; Office 2021
|
erstellt am: 14. Mrz. 2023 13:25 <-- editieren / zitieren --> Unities abgeben:         
Ralf vielen Dank für die Hilfe. Ich komme leider nicht dazu es weiter zu probieren, da Excel mir ins Gesicht springt. Ich habe einen neuen Rechner und ein neues Excel und meine alten Makros laufen nicht mehr. Laufzeitfehler 1004. Ich werde mal in den entsprechenden Foren stöbern, da ich diese Makros täglich brauche. Mit dem alten System funktionieren sie noch und ich haben den Rechner noch daneben zu stehen. Für das andere Makro habe ich erst einmal keine Zeit mehr. Lars ------------------ Inventor 2015 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |