Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Virtuelle Baugruppe Dateieigenschaften lehren.

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
  
Im Fokus: CAD Automation & CPQE
Autor Thema:  Virtuelle Baugruppe Dateieigenschaften lehren. (1286 mal gelesen)
Matrix82
Mitglied
Konstrukteur


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

Beiträge: 64
Registriert: 11.03.2011

Jäh nach Auftrag<P>Software:
SW 2010 - 2013
Office 2003 - 2010
Inventor 10 - 2013
AutCAD Mech. 10 - 2012
PDM, Kompass, Keytech, SAP, ...
VB bis 2010
C++, CNC Sinumeric,
v. CAD/CAM<P>Hardware:
2x Hp Envy 3D
auf max. ausgerüstet

erstellt am: 30. Jan. 2013 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

Hallo Leute,

Ich habe Makro das die Dateieigenschaften lehrt.
Ich würde gern in das Makro noch eine Sicherung einbauen.
Das Makro soll zuerst prüfen ob es sich um eine virtuelle Baugruppe handelt.
Wenn Ja dann die Eigenschaften lehren. Wenn Nein => MsgBox => Exit SUB.
Ich habe nur wenig Erfahrung mit API Sprache.
Da gibt’s einige Unterschiede zur VBA und komme deswegen nur sehr schlecht damit zurecht.
Ich würde es sehr nett von euch finden wenn ihr mir helfen könnt.

Code:
Option Explicit

Dim swApp As Object
Dim Part As Object
Dim numConfigs As Long
Dim Names As Variant
Dim Retval As Boolean
Dim DelCount As Long
Dim InfoCount As Long
Dim InfoNames As Variant
Dim DelName As String
Dim Conf As Object
Dim ConfName As String
Dim ConfEinlesen As Long
Dim FirstConfName As String
Dim K As Integer
Dim i As Integer


Sub main()

Set swApp = GetObject(, "SldWorks.Application")
Set Part = swApp.ActiveDoc

If Not Part Is Nothing Then
    InfoCount = Part.GetCustomInfoCount2("")            ' wieviele Benutzerdef. Eigenschaften im akt. Teil?
    InfoNames = Part.GetCustomInfoNames2("")            ' Alle Namen der Benutzerdef. Eigenschaften in ein Variant einlesen
       
        For K = 0 To InfoCount - 1                      ' Schleife durch alle Benutzerdef. Eigenschaften
                    Retval = Part.DeleteCustomInfo2("", InfoNames(K))    ' Löschen aller Eigenschaften
        Next K
         
    numConfigs = Part.GetConfigurationCount()
    Names = Part.GetConfigurationNames()
   
         
        For i = 0 To numConfigs - 1                       ' Schleife Durch alle Konfigurationen
        'und nun erst mal die Konfigurationsspezifischen fieldNames auslesen
   
            InfoCount = Part.GetCustomInfoCount2(Names(i))     ' wieviele konf. Eigenschaften in der akt. Konfiguration?
            InfoNames = Part.GetCustomInfoNames2(Names(i))     ' Alle Namen der Konf. Eigenschaften in ein Variant einlesen
   
       
            For K = 0 To InfoCount - 1                      ' Schleife durch alle konf. Eigenschaften
                    Retval = Part.DeleteCustomInfo2(Names(i), InfoNames(K))  ' Löschen aller Eigenschaften
            Next K
           
        Next i
   
    'MsgBox "Alle Dateieigenschaften sind gelöscht"
End If
Set Part = Nothing
Set swApp = Nothing
End Sub
____________________________________

Ich weiss dass ich

Code:
Set swComp = swSelMgr.GetSelectedObject6(1, 0)
If swComp.IsVirtual = True Then
….
End If

einbinden muss.

und hie komme ich nicht weiter


------------------
Alles ist machbar, wenn man weis wie!

Selbständiger Konstrukteur
Für Kontakt E-Mail Adresse ins Gästebuch ablegen.

[Diese Nachricht wurde von Matrix82 am 30. Jan. 2013 editiert.]

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

Matrix82
Mitglied
Konstrukteur


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

Beiträge: 64
Registriert: 11.03.2011

Jäh nach Auftrag<P>Software:
SW 2010 - 2013
Office 2003 - 2010
Inventor 10 - 2013
AutCAD Mech. 10 - 2012
PDM, Kompass, Keytech, SAP, ...
VB bis 2010
C++, CNC Sinumeric,
v. CAD/CAM<P>Hardware:
2x Hp Envy 3D
auf max. ausgerüstet

erstellt am: 30. Jan. 2013 13:08    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 konnte das Problem selbst lösen. Nun stelle ich die Lösung euch zur Verfügung.

Code:
________________________________________________________________________
Option Explicit

Dim swApp As Object
Dim Part As Object
Dim numConfigs As Long
Dim Names As Variant
Dim Retval As Boolean
Dim DelCount As Long
Dim InfoCount As Long
Dim InfoNames As Variant
Dim DelName As String
Dim Conf As Object
Dim ConfName As String
Dim ConfEinlesen As Long
Dim FirstConfName As String
Dim K As Integer
Dim i As Integer
'--------------------------------------------------------------------
Function CountString(SucheNach As String, SucheIn As String) As Long

Dim Position As Long
Dim WieOft As Long

Position = InStr(1, SucheIn, SucheNach)

Do While Position > 0
WieOft = WieOft + 1
Position = InStr(Position + Len(SucheNach), SucheIn, SucheNach)
If Position = 0 Then Exit Do
Loop

CountString = WieOft

End Function

'-------------------------------------------------------------------------------

Sub main()

Set swApp = GetObject(, "SldWorks.Application")
Set Part = swApp.ActiveDoc

If Not Part Is Nothing Then
    If CountString("VC~~", Part.GetPathName) > 0 Then
        InfoCount = Part.GetCustomInfoCount2("")            ' wieviele Benutzerdef. Eigenschaften im akt. Teil?
        InfoNames = Part.GetCustomInfoNames2("")            ' Alle Namen der Benutzerdef. Eigenschaften in ein Variant einlesen
       
            For K = 0 To InfoCount - 1                      ' Schleife durch alle Benutzerdef. Eigenschaften
                    Retval = Part.DeleteCustomInfo2("", InfoNames(K))    ' Löschen aller Eigenschaften
            Next K
         
        numConfigs = Part.GetConfigurationCount()
        Names = Part.GetConfigurationNames()
   
         
            For i = 0 To numConfigs - 1                      ' Schleife Durch alle Konfigurationen
            'und nun erst mal die Konfigurationsspezifischen fieldNames auslesen
   
                InfoCount = Part.GetCustomInfoCount2(Names(i))    ' wieviele konf. Eigenschaften in der akt. Konfiguration?
                InfoNames = Part.GetCustomInfoNames2(Names(i))    ' Alle Namen der Konf. Eigenschaften in ein Variant einlesen
   
       
            For K = 0 To InfoCount - 1                      ' Schleife durch alle konf. Eigenschaften
                    Retval = Part.DeleteCustomInfo2(Names(i), InfoNames(K))  ' Löschen aller Eigenschaften
            Next K
           
            Next i
    Else
    MsgBox "Aktives Dokument ist nicht Virtuell !!"
    End If
   
    'MsgBox "Alle Dateieigenschaften sind gelöscht" vbNormal
End If
Set Part = Nothing
Set swApp = Nothing
End Sub
'-------------------------------------------------------------------

Viel spaß damit

------------------
Alles ist machbar, wenn man weis wie!

Selbständiger Konstrukteur
Für Kontakt E-Mail Adresse ins Gästebuch ablegen.

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