Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  BOM-API

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
  
HEDELIUS Hausmesse 2024
Autor Thema:  BOM-API (2279 mal gelesen)
Rainer-S
Mitglied
Konstrukteur


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

Beiträge: 15
Registriert: 23.10.2001

erstellt am: 27. Jan. 2003 09:23    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 Leute,

ich schlage mich zur Zeit mit der bescheidenen APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) rum.

Ergebnis soll sein:

Benutzerdefinierte Positionsnummern auslesen 10,20,25, ...

Mein Weg
1 Erzeugen einer neuern Stückliste
2 Auslesen der Positionsnummern SW 1,2,3
3. Positionsnummern in der Zeichnung suchen und die eigene Nummer auslesen.

Mein Problem:

Ergebnis = View.InsertBomTable(Excell_name, Xloc, Yloc, 0)

Fehlermeldung Typen unverträglich  ?????


Wenn Ich das Objektt Teste mit

1. Stückliste von Hand erzeugen dann:
2. Set BomTable = View.GetBomTable ()
...
Kann ich mit BomTable (von Hand erzeugt) alles tun !


Ich habe es mit 2001 SP 6 und 2003 SP 0 erfolglos versucht.

Hat irgendjwmand einen Rat für mich.

Irgendwie muss man doch die BOM in die Zeichnung kriegen ???
Oder gibt es noch andere Wege um an die Positionsnummern heranzukommen??

Mfg

Rainer

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 27. Jan. 2003 11:34    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 Rainer-S 10 Unities + Antwort hilfreich

Hallo Rainer.

Da scheint sich noch jemand, mit der Stücklisten-APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) rumzuschlagen  !

ich schlage mich zur Zeit mit der bescheidenen APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) rum.

... Ich finde die SWXSolidWorks-APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) gar nicht mal sooo bescheiden  , aber...

....gibt es noch andere Wege um an die Positionsnummern heranzukommen??

...in Bezug auf die Stückliste muss ich Dir leider recht geben. Zur Zeit arbeite ich an einem Programm, welches die StüLi direkt nach Excel ausgibt ( mit einigen Optionen natürlich  ) Trotz intensiver Suche und Test's habe ich auch keinen anderen Weg gefunden, als denjenigen über eine SWXSolidWorks-generierte Stüli. Warum SolidWorks nicht eine Funktion zur Verfügung stellt um die Pos-Nr auszulesen ist mir echt schleierhaft  , denn irgendwo im Modell muss doch diese vorhanden sein!!! Ich lasse mich aber gerne eines besseren belehren!


Problem "Typen unverträglich"

Ist IMHOIn my humble opinion = Meiner bescheidenen Meinung nach ein VBA-Problem. In der Zuweisung

"Ergebnis = View.InsertBomTable(Excell_name, Xloc, Yloc, 0)"

ist vermutlich eine Variable als falscher Datentyp deklariert. Ohne dies getestet zu haben, vermute ich dass:

Ergebnis = Objekt
Excell_name = String
Xloc, Yloc = Long
0 = ??

sein sollten.

------------------
Gruss
Andreas

A+E Müller AG

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

BerndB
Mitglied
Ingenieur


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

Beiträge: 616
Registriert: 28.09.2001

erstellt am: 27. Jan. 2003 11:36    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 Rainer-S 10 Unities + Antwort hilfreich

Hallo Rainer,

an diesem mist... habe ich auch schon mal gesessen.

Mal wieder ein Problem der Variablendeklaration und von Fehlern in der SW Hilfe !!!

Dim Error21                As Long
Dim Xloc                    As Double
Dim Yloc                    As Double

Set ERGEBNIS = VIEW.InsertBomTable("", Xloc, Yloc, Error21)

Ohne Set kein Ergebnis !!!

Gruss

Bernd

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

BerndB
Mitglied
Ingenieur


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

Beiträge: 616
Registriert: 28.09.2001

erstellt am: 27. Jan. 2003 11:48    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 Rainer-S 10 Unities + Antwort hilfreich

Hallo Andreas,

2 Minuten schneller gewesen ?
Aber gleicher Lösungsvorschlag !


Auslesen kann ich über eine bescheidene Schleife:

retval = BomTable.Attach2()

Anzahl = BomTable.GetRowCount()
SUMME = BomTable.GetColumnCount()

'----Feldinhalte erste stelle ist die Zeile nach links
'------Unterdrückte Zeilen werden mit gezählt
'i Ist die Zeile z.B. Pos 1,2,3,4 Maxwert ist ANZAHL
'j Ist Spalte Benennung, nummer Maxwert ist SUMME

For i = 1 To Anzahl
    NUMMER1 = BomTable.GetEntryValue(i, 1)
    Position(i) = i
    MENGE(i) = BomTable.GetEntryValue(i, 2)
    BENENNUNG(i) = BomTable.GetEntryValue(i, 3)
    'DATEI_NAME(i) = BomTable.GetEntryValue(i, 4)
Next i

'---Excell-Schließen
retval = BomTable.Detach()
Ansichtsname = VIEW.Name()

'---Alle NOTEs anwählen !
Do While Ansichtsname <> ""
  Ansichtsname = VIEW.Name()
    For i = 1 To 100
        Part.AndSelectByID "Detailelement" & i & "@" & Ansichtsname & "", "NOTE", 0, 0, 0

    Next i
    Set VIEW = VIEW.GetNextView
    Ansichtsname = VIEW.Name()
    On Error GoTo E1

Loop

E1:

'--Benutzerdefinierte Positionsnummern auslesen
Set SelMgr2 = Part.SelectionManager
Anzahl = SelMgr2.GetSelectedObjectCount

If (Anzahl <> 0) Then
    For i = 1 To Anzahl
        Set BOM_O = SelMgr2.GetSelectedObject2(i)
        ' If selected object is a note, BOM BALLOON
        Type11 = SelMgr2.GetSelectedObjectType(1)
        If (SelMgr2.GetSelectedObjectType(1) = 19) Then
        ' On Error Resume Next
            USERNUMMER = BOM_O.GetBomBalloonText(True)
            ORIGINALNUMMER = BOM_O.GetBomBalloonText(False)
            Position(ORIGINALNUMMER) = USERNUMMER
    Else
        'swapp.SendMsgToUser ("Error changing note text.")
    End If
    Next i
Else

    swapp.SendMsgToUser ("Please Select a Note for this operation.")

End If

For i = 1 To Anzahl
'retval = ModelDoc2.EditBalloonProperties ( style, size, upperTextStyle, upperText, lowerTextStyle, lowerText )
    Set NOTE = Part.EditBalloonProperties(1, 0, 1, "1", 0, "122")
  'retval = Note.SetBomBalloonText(upperTextStyle, upperText, lowerTextStyle, lowerText)


    If NOTE Is Nothing Then
   
    Else
        retval = NOTE.GetBomBalloonText(True)
        retval = NOTE.GetBomBalloonText(False)
    End If

Next i

Die Werte in der SW Stückliste fülle ich über die Datenbank.
Die Schleife über die Zeichenansichten dauert funktioniert aber.

MEIN GRÖßTER WUNSCH zur Zeit für BOM

Den Eigenschaftsbaum in der Zeichnung separat durchscannen!!!
Damit habe ich die Standardnummer 1, 2, 3 aus der SW Reihenfolge.

DAS FUNKTIONIER NICHT NUR BEI TEILEN IM FEATUERBAUM
mit get next Feature

Wenn dir irgendeine bessere Lösung einfällt BITTE MELDEN.

PS deine Ausgabe an Excell ist Standard über DBWorks.
Eine Floatinlizenz würde genügen.

Die Richtigen POS NR können dann wie oben beschrieben ergänzt werden !

Gruss BERND

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

Andreas Müller
Mitglied
Masch. Ing. HTL / Betriebsing. STV


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

Beiträge: 1151
Registriert: 11.04.2001

erstellt am: 27. Jan. 2003 12:03    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 Rainer-S 10 Unities + Antwort hilfreich

@Bernd:

Yesssssssssss, nun war ich mal schneller  !

> PS deine Ausgabe an Excell ist Standard über DBWorks.
> Eine Floatinlizenz würde genügen.

Ich finde einfach, dass solche Dinge zum Standart von SWXSolidWorks gehören sollten, ohne dass man zusätzliche SW haben muss. Ich kenne DBWorks kaum und weiss daher nicht, ob es darmit (oder anderen Programmen) möglich ist, verschiedene Stücklistenvorlagen in Excel zu erstellen und dann beim Exportieren die entspr. auszuwählen. Meine Situation stellt sich so dar, dass ich für verschiedene Kunden tätig bin und somut auch diverse Vorlagen gebrauche. Also möchte ich beim ersten Erstellen der Stückliste dessen Excel-Vorlage auswählen können.

Und nun: guten Appetit!

------------------
Gruss
Andreas

A+E Müller AG

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

Rainer-S
Mitglied
Konstrukteur


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

Beiträge: 15
Registriert: 23.10.2001

erstellt am: 27. Jan. 2003 17:24    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 Zusammen,

Danke für die Infos.
Es lag an der Deklaration der Variablen.

Leider bin ich immer noch bei den Grundlagenforschungen!

Ich habe eine Zeichnung mit benutzerdefinierten Positionsnummern aber ohne Stückliste.

Jetzt kann ich zwar eine Stückliste automatisch einfügen ABER:

SW setzt alle Positionsnummern wieder auf Baugruppenanordnung zurück und hat halt nur 1,2,3 ... in der Struktur stehen(manchmal manchmal nicht).

Die Positionsnummern in der Stücklist kann ich nur dann steuern, wenn ich ZUERST eine Stückliste einfüge und dann die Positionsnummern neu vergebe und die Werte ändere.

Wir wollen das bestimmt nicht tun!!!

Gibt es nicht den Weg,dass ich vorhandene Nummern in die Tabelle bekomme        ?????????
Warum ist das Soooo kompliziert.
Liegt das an MIR oder SolidWorks, die einfach kein INTERESSE an 2D haben!!!!


Gruss Rainer

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