Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Stücklistensymbol

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
  
SOLIDWORKS PDM Professional im Einsatz bei Wölfle, ein Anwenderbericht
Autor Thema:  Stücklistensymbol (1736 mal gelesen)
PaBü
Mitglied
Maschinenbauingenieur


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

Beiträge: 61
Registriert: 10.06.2005

erstellt am: 23. Nov. 2012 12:27    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

Guten Tag,

kann mir bitte jemand auf die Sprünge helfen und verraten, wie ein Stücklistensymbol in einer Zeichnung per Code dahingehend untersucht werden kann, an welches Teil/ Baugruppe es auf der Zeichnung angezogen ist?!

Ich möchte sämtliche auf einer Zeichnungen angezogenen Stücklistensymbole per Code editieren bzw. die Positionsnummer mit einer (Fremdsystem)-Stückliste abgleichen 

------------------
mfg

Patrick

EINFACH sein, einfach SEIN!

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

Carsten Heß
Mitglied
Diplom Ingenieur (Konstruktion)


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

Beiträge: 105
Registriert: 23.07.2004

Windows 7 64bit, 12270MB RAM,
3,2 P3 Xeon, Quadro 4000
SW 2014 64bit /SP4.0
MaxxDB SP3.04

erstellt am: 26. Nov. 2012 11:29    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 PaBü 10 Unities + Antwort hilfreich

Hi Patrick,

ich habe etwas ähnliches schon mal programmiert in vb.net
Ich gehe mal davon aus, das du die variable der Positionsnummer
bereits auslesen kannst (Notes)
Anschließend passiert bei mir folgendes:

Dim swan As SldWorks.Annotation
Dim nnote As SldWorks.Note
Dim vAttEntArr As Object
Dim swEnt As SldWorks.Entity
Dim swComp As SldWorks.Component
Dim swCompModel As SldWorks.ModelDoc2

swan = nnote.GetAnnotation
vAttEntArr = swan.GetAttachedEntities2
swEnt = vAttEntArr(0)
If Not swEnt Is Nothing Then
  swComp = swEnt.GetComponent
  swCompModel = swComp.GetModelDoc
  If Not swCompModel Is Nothing Then
      'Hier String-variable' = swCompModel.GetCustomInfoValue(swComp.ReferencedConfiguration, "Identity_Number")
  End If
End If

wenn du dies als Makro in SolidWorks programmierst musst du die
Variable Object in Variant ändern und die SW-Objekte mit z.B. "set swcomp = swEnt.GetComponent" setzen anstelle von "swcomp = swEnt.GetComponent".

Gruß

Carsten

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

PaBü
Mitglied
Maschinenbauingenieur


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

Beiträge: 61
Registriert: 10.06.2005

erstellt am: 03. Dez. 2012 13: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 Carsten,

vielen Dank für Deine Antwort.

Ich glaube das ist das was ich suchte. Vermutlich kann ich es aber erst über die Weihnachtszeit ausprobieren, gebe dann aber Rückinfo ob/ wie es funktioniert hat.

------------------
mfg

Patrick

EINFACH sein, einfach SEIN!

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

PaBü
Mitglied
Maschinenbauingenieur


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

Beiträge: 61
Registriert: 10.06.2005

erstellt am: 06. Dez. 2012 11:43    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


Stucklistenpositionsnummernabgleich.zip

 
Hallo Carsten,

es pressierte ... untenstehend der ausgebaute Code. Besten Dank nochmal.

Private Sub Abgleich_Stückliste(ByVal BOMARRAY)

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swDraw As SldWorks.DrawingDoc
Dim swView As SldWorks.View

Dim swNote As SldWorks.Note
Dim swAnn As SldWorks.Annotation
Dim swEnt As SldWorks.Entity

Dim swComp As SldWorks.Component
Dim swCompModel As SldWorks.ModelDoc2

Dim vAttEntArr As Variant

Dim vConfigNameArr As Variant
Dim vConfigName As Variant
Dim vCustInfoNameArr As Variant
Dim vCustInfoName As Variant

Dim InfoName As Variant
Dim InfoValue As Variant
Dim InfoType As Variant
Dim InfoText As Variant

Dim gesucht As String
Dim Positionsnummer As Variant

Dim bRet As Boolean


gesucht = gesuchter Wert/ Begriff/ Variable

On Error Resume Next


Set swApp = Application.SldWorks

Set swDraw = swApp.ActiveDoc


    Set swView = swDraw.GetFirstView

    Do While Not swView Is Nothing

Dim TypTest 'Durchlauf verkürzt, Abbruch bei Blattformat

TypTest = swView.Type

Select Case TypTest

Case Is <> 1

        Set swNote = swView.GetFirstNote
       
            Do While Not swNote Is Nothing
           
         
                    Dim Check
                     
                    Check = swNote.IsBomBalloon

                 
                    Select Case Check
                 
                    Case True:
                   
                            Set swAnn = swNote.GetAnnotation
                           
                           
                            vAttEntArr = swAnn.GetAttachedEntities2
                           
                           
                            Set swEnt = vAttEntArr(0)
                           
                            Set swComp = swEnt.GetComponent
                           
                            Set swCompModel = swComp.GetModelDoc
                           
                           
                            vConfigNameArr = swCompModel.GetConfigurationNames
                           
                               
                                If IsEmpty(vConfigNameArr) Then
                           
                                    ReDim vConfigNameArr(0)
                           
                                    vConfigNameArr(0) = ""
                           
                                Else
                           
                                    ReDim Preserve vConfigNameArr(UBound(vConfigNameArr) + 1)
                           
                                End If
                               
                           
                                For Each vConfigName In vConfigNameArr
                               
                                Dim ConfigName
                           
                                    ConfigName = vConfigName
                           
                                    vCustInfoNameArr = swCompModel.GetCustomInfoNames2(vConfigName)
                           
                                    If Not IsEmpty(vCustInfoNameArr) Then
                           
                                        For Each vCustInfoName In vCustInfoNameArr
                                       
                                       
                                            InfoName = vCustInfoName
                           
                                            'InfoType = swCompModel.GetCustomInfoType3(vConfigName, vCustInfoName)
                           
                                            InfoValue = swCompModel.GetCustomInfoValue(vConfigName, vCustInfoName)
                           
                                            'InfoText = swCompModel.CustomInfo2(vConfigName, vCustInfoName)
                                   
                                           
                                        If InfoName = gesucht Then
                                       
                                        Dim Postionsnummer As Variant
                                        Dim Check2 As Integer
                                       
                                            Call Stücklistenauswertung(InfoValue, Positionsnummer, BOMARRAY, Check2)
                                           
                                            Select Case Check2
                                           
                                            Case 1:
                                           
                                              bRet = swNote.SetBomBalloonText(swNote.SetText(True), _
                                              Positionsnummer, _
                                              swNote.GetBomBalloonTextStyle(False), _
                                              swNote.GetBomBalloonText(False) & "unterer Text"): Debug.Assert bRet

                                            End Select
                       
                                        End If
                           
                                        Next
                           
                                    End If
                           
                                Next

                 
                    End Select
               
                    Set swNote = swNote.GetNext
   
            Loop
End Select

        Set swView = swView.GetNextView

    Loop

End Sub


Es werden also alle Views auf vorhandene Stücklistensymbole untersucht.
Weiterhin wird geprüft an welche Komponente/ Modell die Stücklistensymbole angezogen sind.
Aus den Komponenten/ Modelle werden bestimmte benutzerdefinierte Eigenschaften ermittelt (gesucht=...), in meinem Fall eine Artikelnummer.
Mit der Artikelnummer wird eine Stückliste (Excel bzw. BOMARRAY=ausgelesene Stückliste) durchsucht (Call ...).

Nüja, ist vielleicht nicht schön geworden, aber es funktioniert. Anbei das ganze Makro.


------------------
mfg

Patrick

EINFACH sein, einfach SEIN!

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