| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | Strömungssimulation auf der 3DEXPERIENCE Plattform |
Autor
|
Thema: SolidWorks Tabelle durch VBA Array befüllen (1650 mal gelesen)
|
AlexSchaaf Mitglied
Beiträge: 21 Registriert: 23.09.2014 SWX 2014 SP5
|
erstellt am: 23. Sep. 2014 14:42 <-- editieren / zitieren --> Unities abgeben:
Hallo CAD Forum! Seit langem lese ich hier fleißig mit und konnte bisher alle meine Probleme durch die Forensuche lösen. Leider stehe ich nun an einem Punkt, an dem ich nichts mehr finden konnte und hoffe hier hat jemand eine Idee! Hintergrund: Wir haben uns in der Firma dazu entschlossen, unsere Zeichnung möglichst zu automatisieren. Da wir auf den Zeichnungen für unsere Kunden die Komponenten alle bemaßen müssen, geht hierbei viel Zeit für den Konstrukteur drauf. Also haben wir in die zu bemaßenden Komponenten eigenschaften gesetzt, die ich mit einem Makro nun auslese. Das ganze soll folgeneder maßen funktionieren: Auf der Zeichnung wählt man die komponente aus, klickt auf das Makro und dieses geht dann den FeatureTree durch und schreibt sich alle Maße in ein Array. Das Array zu schreiben ist auch kein Problem, nur wie kann ich eine Tabelle erstellen? Ich brauche nun eine Funktion, die es mir ermöglicht tabellen zu zeichnen. Gibt es so etwas in SWX? Auf HTML Basis habe ich das ganze einfach realisieren können wie folgt:
Code:
Private Sub Referenced_TXT() Dim strFile As String Dim i As Integer strFile = "referencedDoc2.html" Open strFile For Output As #1 Print #1, "<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01//EN' 'http://www.w3.org/TR/html4/strict.dtd'><html>" Print #1, "<head><style type='text/css'>body {font-family:'Courier New'} table { width:100%; border:1px solid #000; border-collapse: collapse; } th{ border:1px solid #000; vertical align:top;} td {border:1px solid #000;}</style></head>" Print #1, "<h2>ReferencedDoc</h2>" Print #1, "<table><thead><tr><th>Wert1</th><th>Wert2</th><th>Wert3</th><th>Wert4</th><th>Wert5</th><th>Wer t6</th><th>Wert7</th><th>Wert8</th><th>Wert9</th></tr></thead>" Print #1, "<tbody>" For i = 0 To UBound(referencedDoc) Print #1, "<tr>" Print #1, "<td>" + CStr(referencedDoc(i).Wert1) + "</td><td>" + CStr(referencedDoc(i).Wert2) + "</td><td>" + referencedDoc(i).Wert3+ "</td><td>" + referencedDoc(i).Wert4+ "</td><td>" + referencedDoc(i).Wert5+ "</td><td>" + referencedDoc(i).Wert6+ "</td><td>" + referencedDoc(i).Wert7+ "</td><td>" + referencedDoc(i).Wert8+ "</td><td>" + referencedDoc(i).Wert9+ "</td></tr>" Next i Print #1, "</tbody></table><h2>Im Array sind " + CStr(RDC + 1) + " datenfelder enthalten!</h2></body></html>" Close #1 End Sub
Gibt es etwas vergleichbares in SolidWorks? Ich hoffe jemand kann mir helfen LG Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
HenryV Mitglied Konstrukteur, Engineering
Beiträge: 813 Registriert: 18.05.2005 SolidWorks 2022 x64 SP5.0 Dell Precision 5820 Intel Xeon W-2125 4x4GHz NVIDIA Quadro P2000 5GB 32GB RAM 2x Dell U2412M, 24" TFT Windows 10 Enterprise x64 22H2 Microsoft 365 E5 Microsoft Visual Studio Enterprise 2022
|
erstellt am: 23. Sep. 2014 15:09 <-- editieren / zitieren --> Unities abgeben: Nur für AlexSchaaf
|
AlexSchaaf Mitglied
Beiträge: 21 Registriert: 23.09.2014 SWX 2014 SP5
|
erstellt am: 23. Sep. 2014 15:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Andreas, Ich weiß nicht wie mir diese Funktionen durch die SuFu verborgen blieben, aber vielen Dank! Damit konnte ich mein Problem einfach lösen:
Code:
Private Sub Tabelle_Generieren() Dim Düsentabelle As Object Dim i As Integer Set Part = swApp.ActiveDoc Set Düsentabelle = Part.InsertTableAnnotation(0, 0, 1, UBound(referencedDoc) + 2, 6) Düsentabelle.Text(0, 0) = "Wert1" Düsentabelle.Text(0, 1) = "Wert2" Düsentabelle.Text(0, 2) = "Wert3 Düsentabelle.Text(0, 3) = "Wert4" Düsentabelle.Text(0, 4) = "Wert5" Düsentabelle.Text(0, 5) = "Wert6" For i = 1 To UBound(referencedDoc) + 1 Düsentabelle.Text(i, 0) = referencedDoc(i - 1).Wert1 Düsentabelle.Text(i, 1) = referencedDoc(i - 1).Wert2 Düsentabelle.Text(i, 2) = referencedDoc(i - 1).Wert3 Düsentabelle.Text(i, 3) = referencedDoc(i - 1).Wert4 Düsentabelle.Text(i, 4) = referencedDoc(i - 1).Wert5 Düsentabelle.Text(i, 5) = referencedDoc(i - 1).Wert6 Next i End Sub
LG und danke für die Hilfe! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|