Hot News aus dem CAD.de-Newsletter:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  neues Makro - configPropChange-2

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
Autor Thema:   neues Makro - configPropChange-2 (623 mal gelesen)
Andi Beck
Ehrenmitglied
Konstrukteur


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

Beiträge: 1966
Registriert: 02.10.2006

Firma: SW 2017-5.0 Professional,
Windows 7 Pro 64bit, i7-2600K
3,4 GHz, 16 GbRAM, Quadro 2000
120GB SSD Extrememory XLR8 Plus
Home:
SW 2016-5.0
SW 2017-5.0
SW 2018-0.1
Windows 7 Home Premium 64bit,
i7-860, 3,2 GHz, 16 GbRAM, GeForce GTX 1050Ti
Samsung SSD 840EVO 250GB

erstellt am: 21. Jan. 2018 16:59    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


ConfigPropChance-2-01.JPG


configPropChange-2.zip

 
Hallo,
einige von euch kennen sicherlich dieses Makro von Thomas Weith und Dieter Loistl aus der Makro-Tauschbörse von Stefan. 
siehe hier:

http://ww3.cad.de/foren/ubb/Forum2/HTML/002266.shtml
http://solidworks.cad.de/mm_boerse.htm

Ich wollte dieses Makro letzte Woche mal wieder einsetzen und bin ebenfalls darüber gestolpert, dass die Einträge bei Beschreibung: gelöscht werden.
Auch auf diverse andere Probleme bin ich gestoßen, und da Thomas  keine Zeit mehr hat sich darum zu kümmern, habe ich dieses Makro jetzt deutlich überarbeitet.
Die meisten Probleme dürften behoben sein, hoffentlich. 
Da sich der Code um einiges geändert hat, habe ich für dieses Makro einen eigenen Beitrag eröffnet, um auch gezielt hier Fragen beantworten zu können.
Ich weise hier ausdrücklich auf die Urheberschaft von Thomas und Dieter hin.
Ich möchte mich nicht mit fremden Federn schmücken, helfe hier aber gerne weiter, wenn ich kann.

Auf ein Problem bin ich gestoßen, welches schon beim alten Makro bestand.
Die Funktion Neue Komponenten ausblenden im Anzeigestatus lässt sich zwar setzen, aber nicht mehr zurücksetzen.
Ich vermute da einen Bug in der API.
Kann das jemand bestätigen oder mir einen Hinweis geben, wie das evtl. funktionieren könnte?
Falls das tatsächlich ein Bug ist, würde ich den an meine Hotline melden.

So, nun testet mal wie immer und gebt mir entsprechende Rückmeldungen.
Ich habe das mit SW2017 und SW2018 getestet.

Grüße, und einen schönen Wochenanfang euch allen,
Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

bk.sc
Ehrenmitglied
Maschinenbautechniker


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

Beiträge: 1933
Registriert: 18.07.2012

HP Z400 Workstaion
CPU: Intel Xeon 6x 3,33GHz
GPU: NVIDEA Quadro 2000
RAM: 12 GB DDR3
Win 7 x64
CAD Hauptberuflich
-Solid Works 2014 SP4
-Creo Elements Direct Drafting (ME10)
DMS/PDM
-Pro.File V8 (8.4)
Simulation
-Simufact Forming 11.0
CAD Nebenberuflich
-Pro Engineer WF 3+4
-Creo Parametric 2.0

erstellt am: 22. Jan. 2018 08:54    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 Andi Beck 10 Unities + Antwort hilfreich


fmhidnekompasskonf.PNG

 
Hallo Andi,

ich bekomme hier nur das Feedback von SWX, dass die Funktion des Ausblendens von Komponenten wohl nicht mehr in den Konfigurationseinstellungen ist, daher habe ich hier keine Auswirkungen egal ob ich den Haken setze oder nicht. Habe aber jetzt auch noch an keiner anderen Position eine Einstellung dazu gefunden.
Ich könnte mir vorstellen das mit der Meldung gemeint ist, dass der Haken jetzt bei dem Anzeigestatus zu setzen ist, aber wie mann da über die API hinkommt habe ich noch nicht rausgefunden.

Gruß
Bernd

------------------
--- Man muß nicht alles wissen, man muß nur wissen wo es steht ---

Staatlich anerkannte Deutschniete  

[Diese Nachricht wurde von bk.sc am 22. Jan. 2018 editiert.]

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

Eman1
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 32
Registriert: 22.02.2007

SW 2016 SP4, WIN 7 X64, NVIDIA K2000D, INVENTOR 2010, PAC4SW, TOTAL COMMANDER 8.51

erstellt am: 22. Jan. 2018 11:02    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 Andi Beck 10 Unities + Antwort hilfreich

Vielleicht hilft das

For option swConfigOption_SuppressByDefault you use call Configuration.SuppressNewFeatures  to find out what it is set at.
For option swConfigOption_HideByDefault you use call Configuration.HideNewComponentModels  to find out what it is set at.

Mit SW API Help 2017

'-----------------------------------------------------------
' Preconditions:
' 1. Open a part that contains one or more configurations.
' 2. Open the Immediate window.
'
' Postconditions:
' 1. Changes the source for the part number and displays XXXX
'    as the part number in each configuration's Bill of Materials.
' 2. Examine the Immediate window.
'------------------------------------------------------------
Option Explicit
Dim swApp As SldWorks.SldWorks
Dim Part As SldWorks.PartDoc
Dim Doc As SldWorks.ModelDoc2
Dim SelMgr As SldWorks.SelectionMgr
Function BOMPartNumber(config As SldWorks.Configuration, document As SldWorks.ModelDoc2) As String
    Select Case config.BOMPartNoSource
    Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_ConfigurationName
        BOMPartNumber = config.Name
    Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_DocumentName
        BOMPartNumber = document.GetTitle
    Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_UserSpecified
        BOMPartNumber = config.AlternateName
    Case SwConst.swBOMPartNumberSource_e.swBOMPartNumber_ParentName
        Dim parentConfig As SldWorks.Configuration
        Set parentConfig = config.GetParent
        If parentConfig.BOMPartNoSource = SwConst.swBOMPartNumberSource_e.swBOMPartNumber_ParentName Then
            BOMPartNumber = BOMPartNumber(parentConfig, document)
        Else
            BOMPartNumber = parentConfig.Name
        End If
    End Select
End Function
Function InspectConfigurations(Doc As SldWorks.ModelDoc2)
    Dim params As Variant
    params = Doc.GetConfigurationNames
    Dim vName As Variant
    Dim Name As String
    Dim thisConfig As Configuration
    For Each vName In params
        Name = vName
        Set thisConfig = Doc.GetConfigurationByName(Name)
        Debug.Print "Name                      ", thisConfig.Name
        ' Work out what the BOM part number is based on any derived configurations
        Debug.Print "BOMPartNumber             ", BOMPartNumber(thisConfig, Doc)
        Debug.Print "AlternateName             ", thisConfig.AlternateName
        Debug.Print "Comment                   ", thisConfig.Comment
        Debug.Print "Description               ", thisConfig.Description
        Debug.Print "HideNewComponentModels    ", thisConfig.HideNewComponentModels
        Debug.Print "Lock                      ", thisConfig.Lock
        Debug.Print "ShowChildComponentsInBOM  ", thisConfig.ShowChildComponentsInBOM
        Debug.Print "UseAlternateNameInBOM     ", thisConfig.UseAlternateNameInBOM
        Debug.Print "SuppressNewComponentModels", thisConfig.SuppressNewComponentModels
        Debug.Print "SuppressNewFeatures       ", thisConfig.SuppressNewFeatures
        Debug.Print "------------------------------------------------------------------"
    Next vName
End Function
Sub main()
    Set swApp = Application.SldWorks
    Set Part = swApp.ActiveDoc
    Set Doc = Part
    Set SelMgr = Doc.SelectionManager   
    Call InspectConfigurations(Doc)   
    Dim params As Variant
    params = Doc.GetConfigurationNames
    Dim vName As Variant
    Dim Name As String
    Dim thisConfig As Configuration
    Debug.Print "Modifying the configurations..."
    For Each vName In params
        Name = vName
        Set thisConfig = Doc.GetConfigurationByName(Name)
        Debug.Print "Name                      ", thisConfig.Name
        thisConfig.BOMPartNoSource = swBOMPartNumber_UserSpecified
        thisConfig.AlternateName = "XXXX"
        thisConfig.UseAlternateNameInBOM = True
        thisConfig.AlternateName = "XXXX"
    Next vName   
    Debug.Print "------------------------------------------------------------------"   
    Call InspectConfigurations(Doc)   

End Sub


Vielleicht so

Option Explicit 
02.Sub main() 
03.    Dim swApp As SldWorks.SldWorks 
04.    Dim swModel As SldWorks.ModelDoc2 
05.    Dim vConfNameArr As Variant 
06.    Dim sConfigName As String 
07.    Dim i As Long 
08. 
09.    Set swApp = Application.SldWorks 
10.    Set swModel = swApp.ActiveDoc 
11. 
12.    vConfNameArr = swModel.GetConfigurationNames 
13.    For i = 0 To UBound(vConfNameArr) 
14.        sConfigName = vConfNameArr(i) 
15.        swModel.ShowConfiguration2 sConfigName 
16.        swModel.EditConfiguration3 sConfigName, sConfigName, "", "", swConfigurationOptions2_e.swConfigOption_HideByDefault 
17.    Next i 
18.  End Sub 

[Diese Nachricht wurde von Eman1 am 22. Jan. 2018 editiert.]

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

ahop
Mitglied
Konstrukteur

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

Beiträge: 8
Registriert: 10.10.2017

erstellt am: 22. Jan. 2018 12:18    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 Andi Beck 10 Unities + Antwort hilfreich

Hallo Andy

Bei läuft es einwandfrei, allerdings werden die Einstellungen für die Verwendung in der Stückliste immer auf "Dokumentenname" geändert. Ich benötige aber zum 90% "Konfigurationsname".
Kann es im Makro korrigiert, oder wie die "Erweiterte Optionen" wählbar gemacht werden?

------------------
Andrej

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

Andi Beck
Ehrenmitglied
Konstrukteur


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

Beiträge: 1966
Registriert: 02.10.2006

Firma: SW 2017-5.0 Professional,
Windows 7 Pro 64bit, i7-2600K
3,4 GHz, 16 GbRAM, Quadro 2000
120GB SSD Extrememory XLR8 Plus
Home:
SW 2016-5.0
SW 2017-5.0
SW 2018-0.1
Windows 7 Home Premium 64bit,
i7-860, 3,2 GHz, 16 GbRAM, GeForce GTX 1050Ti
Samsung SSD 840EVO 250GB

erstellt am: 22. Jan. 2018 21:21    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


ConfigPropChance-2-02.JPG


configPropChange-2-2018.01.22.zip

 
@Andrej
danke für die Rückmeldung und ich konnte dieses Verhalten nachvollziehen.
habe das jetzt korrigiert und das müsste jetzt so bleiben, wie es vorher eingestellt war.
Nimm das neue Makro vom 22.01.2018

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Andi Beck
Ehrenmitglied
Konstrukteur


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

Beiträge: 1966
Registriert: 02.10.2006

Firma: SW 2017-5.0 Professional,
Windows 7 Pro 64bit, i7-2600K
3,4 GHz, 16 GbRAM, Quadro 2000
120GB SSD Extrememory XLR8 Plus
Home:
SW 2016-5.0
SW 2017-5.0
SW 2018-0.1
Windows 7 Home Premium 64bit,
i7-860, 3,2 GHz, 16 GbRAM, GeForce GTX 1050Ti
Samsung SSD 840EVO 250GB

erstellt am: 22. Jan. 2018 21:46    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


swConfigurationOptions2_e.JPG

 
Zitat:
Original erstellt von Eman1:

16.        swModel.EditConfiguration3 sConfigName, sConfigName, "", "", swConfigurationOptions2_e.swConfigOption_HideByDefault 
'

@Eman,
danke für deine Ausführungen.

Wenn du meinen Code genauer angeschaut hättest, dann wäre dir aufgefallen, dass ich bereits den Befehl swModel.EditConfiguration3 verwende.
Für die Einstellung swConfigurationOptions2_e.swConfigOption_HideByDefault wird ein Wert von 8 bzw. 0 verwendet.
Siehe beiliegendes Bild.
Du hast schon recht, diese Position steuert die von mir reklamierte Einstellung "Neue Komponenten ausblenden".
Setze ich die 8, wird auch brav das Häkchen bei den Anzeigestatus gesetzt.
Möchte ich den Haken wieder zurücksetzen, müsste die gesetzte 0 das tun, macht es aber nicht.

Und das ist hier die Frage, warum nicht?
Bei den anderen beiden Einstellungen (4 bzw. 0 und 16 bzw. 0) funktioniert das hin und her Problemlos.

Im nächsten Beitrag ergänze ich noch etwas die Problematik und schildere meine momentanen Änderungen.

Grüße, Andi

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Andi Beck
Ehrenmitglied
Konstrukteur


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

Beiträge: 1966
Registriert: 02.10.2006

Firma: SW 2017-5.0 Professional,
Windows 7 Pro 64bit, i7-2600K
3,4 GHz, 16 GbRAM, Quadro 2000
120GB SSD Extrememory XLR8 Plus
Home:
SW 2016-5.0
SW 2017-5.0
SW 2018-0.1
Windows 7 Home Premium 64bit,
i7-860, 3,2 GHz, 16 GbRAM, GeForce GTX 1050Ti
Samsung SSD 840EVO 250GB

erstellt am: 22. Jan. 2018 22:12    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


Code-configPropChange-01.JPG

 
Zitat:
Original erstellt von bk.sc:

Ich könnte mir vorstellen das mit der Meldung gemeint ist, dass der Haken jetzt bei dem Anzeigestatus zu setzen ist, aber wie mann da über die API hinkommt habe ich noch nicht rausgefunden.

Hallo Bernd,
ich habe auch etwas Suchen müssen, wo da die Veränderung stattfindet, und ja, bei den Eigenschaften der Anzeigestatus findest du den Haken.
Und wie ich einen Beitrag weiter oben beschrieben habe, weiß ich auch, wie der gesetzt wird. (siehe oben)
Aber er wird nicht zurückgesetzt und man muss das momentan von Hand machen.

Im alten Makro wurde noch der alte Befehl swModel.EditConfiguration verwendet.
Da der Obsolete gesetzt wurde, habe ich ihn durch swModel.EditConfiguration3 ersetzt.
Das Problem bei diesem Befehl ist, dass man alle 9 Optionen bedienen sollte, wenn man verhindern möchte, dass einzelne Optionen auf Standard zurückgesetzt werden.
Siehe den Beitrag von  Andrej.
Ich habe diesen Befehl entfernt und spreche die einzelnen Optionen jetzt direkt an.
Für das Problemkind gilt jetzt folgendes:

Code:
        If CheckBox3.value = True Then
            thisConfig.HideNewComponentModels = True
        Else
            thisConfig.HideNewComponentModels = False
        End If

Und auch hier wiederholt sich die Problematik.
Mit True kann ich das Häkchen setzen, aber es lässt sich mit False nicht zurücksetzen.

Bei den anderen Optionen funktioniert das Wunderbar.

Und da wiederhole ich meine Frage, ist das ein Bug?

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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

Andi Beck
Ehrenmitglied
Konstrukteur


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

Beiträge: 1966
Registriert: 02.10.2006

Firma: SW 2017-5.0 Professional,
Windows 7 Pro 64bit, i7-2600K
3,4 GHz, 16 GbRAM, Quadro 2000
120GB SSD Extrememory XLR8 Plus
Home:
SW 2016-5.0
SW 2017-5.0
SW 2018-0.1
Windows 7 Home Premium 64bit,
i7-860, 3,2 GHz, 16 GbRAM, GeForce GTX 1050Ti
Samsung SSD 840EVO 250GB

erstellt am: 06. Feb. 2018 20:47    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


Konfigurationseigenschaften-01.JPG


Konfigurationseigenschaften-02.JPG

 
Hallo,
das Geheimnis ist gelüftet. 

Nach dem sich hier keine Lösung abzeichnete, habe ich mich an das API-Forum von SolidWorks gewandt.
Dort hat sich dann der Vorhang geöffnet.
Meine Vermutung, dass es sich um eine Option bei den Anzeigestatus handelt, hat sich nicht bestätigt.
Das dortig gesetzte Häkchen ist eher ein Ableger von dem eigentlichen.
Schaut euch die beiden Bilder an, und ihr werdet sehen, dass die gesuchte Option Neue Komponenten ausblenden im ersten Bild nicht vorhanden ist.
Dieses war bei mir immer verborgen und man muss es mit einem Trick sichtbar machen.
Wie das geht, könnt ihr hier im Beitrag von Artem sehen.

https://forum.solidworks.com/thread/216152

Nachdem diese Option sichtbar wurde, konnte ich die ordentliche Funktion des Makros feststellen.
Das Häkchen lässt sich setzten und auch wieder zurücksetzen, wie gewünscht.

Dieses Ausblenden dieser Option habe ich unserer Hotline gemeldet, die erst sehr überrascht war, dann aber das bestehende SPR854728 dazu fand.
Ich habe mich da jetzt drangehängt und wer dies ebenfalls für nötig befindet, darf dies gerne auch tun.

Dann kann ich mich jetzt beruhigt an weitere Änderungen des Makros ran wagen.
Ich habe da noch eine Idee.

Grüße, Andi 

------------------
Hast du kein Problem?
Such dir eins. ( Und löse es )

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)2018 CAD.de