| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Koordinatentabelle mit x-, y-, und z-Koordinaten auf einer Zeichnungsableitung (3553 mal gelesen)
|
FroSte Mitglied Bauingenieur
Beiträge: 20 Registriert: 09.06.2009 Inventor 2021
|
erstellt am: 21. Mai. 2012 18:30 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe in einem anderen Forum ein script gefunden, welches eine Koordinatentabelle mit x, y, und z-Koordinaten auf einer Zeichnungstabelle einfügt: http://forums.autodesk.com/t5/Autodesk-Inventor-Customization/Coordinate-table-on-drawing/m-p/2703727/highlight/false Leider werden die Namen/Bezeichnungen der Punkte nicht mit ausgegeben. Ich habe mit meinen bescheidenen Kenntnissen versucht, das Script entsprechend anzupassen. Aber ich bekomme es nicht hin. Ist jemand hier, der mir hier weiterhelfen kann? Wie muss das Script erweitert werden, dass es die Namen mit ausgibt? Mir fehlt eigentlich nur der richtige Befehl in diesem Teil: For Each oCenterMark In oDrawDoc.ActiveSheet.Centermarks Set oPoint = oCenterMark.ModelWorkFeature.Point oContents(i) = oPoint.X i = i + 1 oContents(i) = oPoint.Y i = i + 1 oContents(i) = oPoint.Z i = i + 1 'Debug.Print oPoint.X & ", " & oPoint.Y & ", " & oPoint.Z Next Vielen Dank für eure Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 21. Mai. 2012 19:47 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
|
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 21. Mai. 2012 19:51 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
Das Makro funktioniert nur für Arbeitspunkte als CenterMarks? Wenn Dir das reicht, und wenn als Name der StyleName gemeint ist, kannst Du das mal ausprobieren: Code:
Public Sub CreateCustomCenterMarkTable() ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument ' Set a reference to the active sheet. Dim oSheet As Sheet Set oSheet = oDrawDoc.ActiveSheet ' Set the column titles Dim oTitles(1 To 4) As String oTitles(1) = "Name" oTitles(2) = "X" oTitles(3) = "Y" oTitles(4) = "Z" ' Set the contents of the custom table (contents are set row-wise) Dim oCenterMark As Centermark Dim oPoint As Point Dim i As Integer i = oSheet.Centermarks.Count * 4 ReDim oContents(1 To i) As String i = 1 For Each oCenterMark In oDrawDoc.ActiveSheet.Centermarks On Error Resume Next Set oPoint = oCenterMark.ModelWorkFeature.Point If Err.Number <> 0 Then oContents(i) = oCenterMark.Style.Name i = i + 1 oContents(i) = "?" i = i + 1 oContents(i) = "?" i = i + 1 oContents(i) = "?" i = i + 1 Else oContents(i) = oCenterMark.ModelWorkFeature.Name 'oContents(i) = oCenterMark.Style.Name i = i + 1 oContents(i) = oPoint.x i = i + 1 oContents(i) = oPoint.y i = i + 1 oContents(i) = oPoint.Z i = i + 1 End If Err.Clear 'Debug.Print oPoint.X & ", " & oPoint.Y & ", " & oPoint.Z Next ' Set the column widths (defaults to the column title width if not specified) Dim oColumnWidths(1 To 4) As Double oColumnWidths(1) = 5 oColumnWidths(2) = 2.5 oColumnWidths(3) = 2.5 oColumnWidths(4) = 2.5 ' Create the custom table Dim oCustomTable As CustomTable Set oCustomTable = oSheet.CustomTables.Add("My Table", ThisApplication.TransientGeometry.CreatePoint2d(15, 15), 4, oSheet.Centermarks.Count, oTitles, oContents, oColumnWidths)End Sub
------------------ Grüße Igor
FX64 Software Solutions - Inventor Tools FX64 LambdaSpect - Lichtsimulation mit Autodesk Inventor Dim oCenterMark As Centermark Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 21. Mai. 2012 19:55 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 21. Mai. 2012 20:34 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
Hi Ralf, nicht Reinhard. Meine Signaturänderung ist leider nicht übernommen worden, wie ich jetzt feststellen muß. Ja, dann ist alles vorbei, da ich für solche kleinen Programmschnipsel auf jegliche Fehlerbehandlung verzichte. Der ursprüngliche Fragensteller wollte auch genau für solche Referenzpunkte eine Lösung, wenn ich mich recht erinnere. Wer was tolles, universal funktionierendes und allen Eventualitäten gerecht werdendes haben will, kann das dann bei dir käuflich erwerben. ------------------ MfG Ralf EDIT: Komisch, jetzt hab ich ja doch eine Sig. [Diese Nachricht wurde von rkauskh am 21. Mai. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 21. Mai. 2012 20:39 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 21. Mai. 2012 21:08 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
Hallo Macht nix, jetzt kann man's ja in der Sig lesen. Klar, man könnte über Code: oCenterMark.AttachedEntity.ModelGeometry.Geometry.Center
an den Zentrumspunkt z.B. einer Bohrung herankommen. Ich bin mir aber nicht sicher, ob da immer der korrekte Punkt zurückgeliefert wird. Müßte man mal mehrere Tests durchlaufen lassen. Liegt die Bohrung nicht lotrecht auf ihrer Ebene oder auf einer gewölbten Fläche, was wird dann geliefert? Spätestens wenn die Referenzpunkte aber z.B. Eckpunkte, Kantenmittelpunkte usw. sein sollen, komme ich um die Arbeitspunkte nicht herum. Es reicht ja diese Arbeitspunkte in die Zeichnungsansicht einzuschließen. Man muß nicht extra nochmal Zentrumspunkte in der Zeichnung "oben drauf" setzen.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Alienware m17x, Win7, Inventor2012
|
erstellt am: 21. Mai. 2012 21:58 <-- editieren / zitieren --> Unities abgeben: Nur für FroSte
|
FroSte Mitglied Bauingenieur
Beiträge: 20 Registriert: 09.06.2009 Inventor 2021
|
erstellt am: 22. Mai. 2012 08:26 <-- editieren / zitieren --> Unities abgeben:
|
FroSte Mitglied Bauingenieur
Beiträge: 20 Registriert: 09.06.2009 Inventor 2021
|
erstellt am: 23. Mai. 2012 13:17 <-- editieren / zitieren --> Unities abgeben:
Hallo, jetzt habe ich noch eine weitere Frage. Ist es auch umgekehrt möglich, aus einer Tabelle, die auf einer Zeichnung vorhanden ist, die Werte in den Spalten und Zeilen auszulesen, um damit z.B. neue Werte zu berechnen? Die Tabelle soll z.B. wie folgt aufgebaut sein: - eine Titelzeile haben - 4 Spalten - eine Zeile mit den Spaltenüberschriften - zwei Zeilen mit den Zahlenwerten Wie sieht hierfür der Code aus? Wäre prima, wenn mir jemand helfen könnte. Danke. Schöne Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |