Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  SolidWorks Tabelle durch VBA Array befüllen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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



Sehen Sie sich das Profil von AlexSchaaf an!   Senden Sie eine Private Message an AlexSchaaf  Schreiben Sie einen Gästebucheintrag für AlexSchaaf

Beiträge: 21
Registriert: 23.09.2014

SWX 2014 SP5

erstellt am: 23. Sep. 2014 14:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von HenryV an!   Senden Sie eine Private Message an HenryV  Schreiben Sie einen Gästebucheintrag für HenryV

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für AlexSchaaf 10 Unities + Antwort hilfreich

Hallo Alex

Zum Einfügen einer Tabelle gibt es die InsertTableAnnotation2 Methode .

Dazu ist auch ein Beispiel vorhanden.
http://help.solidworks.com/2013/English/api/sldworksapi/insert_general_table_example_vb.htm

Ich empfehle auch noch das ImportBOM-Makro von angelsix anzuschauen.
http://sw.fcsuper.com/index.php?name=UpDownload&req=viewdownloaddetails&lid=123

Gruss Andreas

------------------
21 ist nur die halbe Antwort.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

AlexSchaaf
Mitglied



Sehen Sie sich das Profil von AlexSchaaf an!   Senden Sie eine Private Message an AlexSchaaf  Schreiben Sie einen Gästebucheintrag für AlexSchaaf

Beiträge: 21
Registriert: 23.09.2014

SWX 2014 SP5

erstellt am: 23. Sep. 2014 15:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz