| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
|
Autor
|
Thema: Symbol aus Tabelle erstellen (956 / mal gelesen)
|
Cologne2023 Mitglied
 Beiträge: 2 Registriert: 09.03.2023
|
erstellt am: 27. Sep. 2023 10:38 <-- editieren / zitieren --> Unities abgeben:         
Moin Community, kann mir jemand sagen, ob es möglich ist aus einer Tabelle ein Skizzen Symbol zu erstellen? Ich schaffe das nur aus normalen Skizzen. Falls ja, bitte erklären wie das geht ;-) Danke und Grüße! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KraBBy Mitglied Maschinenbau-Ingenieur
  
 Beiträge: 743 Registriert: 19.09.2007 Inventor Professional 2020 WinX
|
erstellt am: 27. Sep. 2023 12:53 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2825 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 27. Sep. 2023 14:00 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
|
Cologne2023 Mitglied
 Beiträge: 2 Registriert: 09.03.2023
|
erstellt am: 27. Sep. 2023 14:06 <-- editieren / zitieren --> Unities abgeben:         
Moin, ja da haben Sie wohl recht und es geht nicht aus diesem Grund. Danke! Ziel war einfach, unsere vorgefertigten Tabellen für unsere Zeichnungen einfacher über die Symbol-Bibliothek einzulesen anstatt die idw-Datei mit den Tabellen zu öffnen und die Tabellen raus zu kopieren. Kann geschlossen werden :-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2825 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 27. Sep. 2023 22:44 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
Moin Nur weil es nicht direkt geht, heißt das ja nicht das gar nix geht. Als einfaches Beispiel mal eine iLogicregel die eine bestimmte Tabelle ins aktuelle Blatt kopiert. Ich würde sie als externe Regel anlegen, damit sie von jeder Zeichnung aus aufrufbar ist. Garantiert schneller und weniger nervig als selber machen. Den Pfad zur Quelldatei musst du natürlich anpassen. Code:
Sub Main Dim sSource As String = "C:\Temp\Test.idw" ' Pfad zur Vorlage anpassen If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then MsgBox("Funktion nur in Zeichnungen verfügbar.", MsgBoxStyle.Critical, "iLogic CopyTableToSheet") Exit Sub End If Dim oApp As Inventor.Application = ThisApplication Dim oSource As DrawingDocument Try oSource = oApp.Documents.Open(sSource, False) Catch MsgBox("Öffnen der Quelldatei fehlgeschlagen", MsgBoxStyle.Critical, "iLogic CopyTableToSheet") oSource.Close(True) Exit Sub End Try Dim oList As List(Of String) = GetTableList(oSource) If oList.Count = 0 Then MsgBox("Keine Tabellen in Quelldatei gefunden", MsgBoxStyle.Critical, "iLogic CopyTableToSheet") Exit Sub End If Dim oListBox As New Autodesk.iLogic.Runtime.InputListBoxDialog("iLogic CopyTableToSheet", "Tabellen", "Bitte auswählen", oList, oList.Item(0)) oListBox.ShowDialog() Dim oResult As Object = oListBox.ChosenItem Dim oTarget As DrawingDocument = ThisDoc.Document Dim oSheet As Sheet = oTarget.ActiveSheet Dim oTBPos As Point2d = oSheet.TitleBlock.RangeBox.MaxPoint Dim oSourceTable As CustomTable = GetTable(oSource, oResult) 'sTable) Dim oTargetTable As CustomTable Dim oPos As Point2d = oApp.TransientGeometry.CreatePoint2d(oTBPos.X,oTBPos.Y) If oSourceTable IsNot Nothing Then oTargetTable = oSourceTable.CopyTo(oSheet) oPos.X = oPos.X - oTargetTable.RangeBox.MaxPoint.X + oTargetTable.RangeBox.MinPoint.X oPos.Y = oPos.Y + oTargetTable.RangeBox.MaxPoint.Y - oTargetTable.RangeBox.MinPoint.Y oTargetTable.Position = oPos End If oSource.Close(True) End Sub Private Function GetTable(ByVal oSource As DrawingDocument, ByVal sTitle As String) As CustomTable Dim oSheet As Sheet Dim oTable As CustomTable For Each oSheet In oSource.Sheets For Each oTable In oSheet.CustomTables oSheet.Activate If oTable.Title=sTitle Then Return oTable Next Next End Function Private Function GetTableList(ByVal oSource As DrawingDocument) As List(Of String) Dim oSheet As Sheet Dim oTable As CustomTable Dim oList As New List(Of String) For Each oSheet In oSource.Sheets For Each oTable In oSheet.CustomTables oList.Add(oTable.Title) Next Next oList.Sort Return oList End Function
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CologneHeiko Mitglied

 Beiträge: 21 Registriert: 10.10.2019
|
erstellt am: 28. Sep. 2023 09:29 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
|
CologneHeiko Mitglied

 Beiträge: 21 Registriert: 10.10.2019
|
erstellt am: 28. Sep. 2023 09:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
Hallo Ralf, wow, das funktioniert super. Ist es aufwendig, die Regel so umzuschreiben, dass der einfach jede vorhandene Tabelle aus der idw rüber kopiert, oder dass man in dem Auswahlfenster alle markieren kann? :-) Dann wäre es perfekt! Grüße, Heiko PS: Mit meinen Programmierkenntnissen bräuchte ich wahrscheinlich 1 Jahr, wenn ichs überhaupt hinbekomme. Das ist schon echt eine super Regel die Du da gemacht hast! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2825 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 28. Sep. 2023 17:30 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
Moin Multiselect unterstützt der Dialog meines Wissens nicht. Bleibt die Option alles auf einmal holen. Da ich nicht weiß welche Tabelle wo auf dem Blatt positioniert werden muss, liegen die alle am selben Punkt übereinander. Kommentiert man die entsprechende Zeile für die Position aus, werden die Tabellen mit den Koordinaten der Quellzeichnung eingefügt. Bei gleicher Blattgröße würde das vielleicht besser passen. Vorausgesetzt die Tabellen sind in der Quellzeichnung korrekt positioniert. Code:
Sub Main Dim sSource As String = "C:\Temp\Test.idw" ' Pfad zur Vorlage anpassen If Not ThisDoc.Document.DocumentType = DocumentTypeEnum.kDrawingDocumentObject Then MsgBox("Funktion nur in Zeichnungen verfügbar.", MsgBoxStyle.Critical, "iLogic CopyTableToSheet") Exit Sub End If Dim oApp As Inventor.Application = ThisApplication Dim oSource As DrawingDocument Try oSource = oApp.Documents.Open(sSource, False) Catch MsgBox("Öffnen der Quelldatei fehlgeschlagen", MsgBoxStyle.Critical, "iLogic CopyTableToSheet") oSource.Close(True) Exit Sub End Try Dim oTarget As DrawingDocument = ThisDoc.Document Dim oTargetSheet As Sheet = oTarget.ActiveSheet Dim oTBPos As Point2d = oTargetSheet.TitleBlock.RangeBox.MaxPoint Dim oTargetTable As CustomTable Dim oPos As Point2d = oApp.TransientGeometry.CreatePoint2d(0,0) For Each oSheet In oSource.Sheets oSheet.Activate For Each oTable In oSheet.CustomTables oTargetTable = oTable.CopyTo(oTargetSheet) oPos.X = oTBPos.X - oTargetTable.RangeBox.MaxPoint.X + oTargetTable.RangeBox.MinPoint.X oPos.Y = oTBPos.Y + oTargetTable.RangeBox.MaxPoint.Y - oTargetTable.RangeBox.MinPoint.Y ' die folgende Zeile auskommentieren, um Originalposition beizubehalten oTargetTable.Position = oPos Next Next oSource.Close(True) End Sub
------------------ MfG Ralf RKW Solutions GmbH www.RKW-Solutions.com Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CologneHeiko Mitglied

 Beiträge: 21 Registriert: 10.10.2019
|
erstellt am: 29. Sep. 2023 09:58 <-- editieren / zitieren --> Unities abgeben:          Nur für Cologne2023
|