Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Konfigurationsspezivische Eigenschaft löschen

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
  
SolidCAM Professor Videos | Tipps & Tricks (SolidCAM)
Autor Thema:  Konfigurationsspezivische Eigenschaft löschen (1901 / mal gelesen)
Hermann75
Mitglied
Konstrukteur


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

Beiträge: 124
Registriert: 04.05.2016

MS Windows 11 Pro; Intel Core i9-12900HX, 2.3GHz;
64GB Ram; 64bit; NVIDIA RTX A3000
SW 2021 SP5.1 Professional
SW-PDM 2021 Professional
HiCAD next 2008
Helios next 2008

erstellt am: 12. Jul. 2017 07: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

Hallo zusammen, ich nochmal

Ich ab es geschafft ein Makro zu schreiben, dass in einer Baugruppe Teil für Teil durchgeht, bei jedem Teil benutzerdefinierte Eigenschaften ausliest, diese kombiniert und als neue Eigenschaft "Sortierfeld1" und "Sortierfeld2" in diese Teile reinschreibt. Soweit so gut. Dank eurer Hilfe hab ich das geschafft.

Nun muss ich aus den einzelnen konfigurationsspezifischen Eigenschaften die Eigenschaften "Sortierfeld1" und "Sortierfeld2" entfernen, falls vorhanden. Der dafür vorgesehene Code enthält aber irgendwie ein (Überlegungs-)fehler. Kann mir da jemand den entscheidenden Tipp geben?

'Konfigurationen ausfindig machen
ConfigCount = swModel.GetConfigurationCount
ConfigNames = swModel.GetConfigurationNames
               
'Diese Schlaufe löscht alle benutzerdefinierten Eigenschaften Namens "Sortierfeld1" und "Sortierfeld2" aus den Konfigurationen
For ii = 0 To ConfigCount - 1
  Set swCustProp = swModelDocExt.CustomPropertyManager(ConfigNames(ii))
  bool = swCustProp.Delete2("Sortierfeld1")
  bool = swCustProp.Delete2("Sortierfeld2")
Next ii

Beim dritten Teil, welches durchlaufen wird, bringt er nun die Fehlermeldung: "Run-time error '91': Object variable or With block variable not set"

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

nahe
Ehrenmitglied



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

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 12. Jul. 2017 09:15    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 Hermann75 10 Unities + Antwort hilfreich

Hallo Herman

siehe mal den Beitrag bzw. das Makro unter

http://ww3.cad.de/foren/ubb/Forum2/HTML/020131.shtml#000019

vielleicht hilft Dir das etwas weiter

------------------
Grüße
Heinz

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 12. Jul. 2017 09:40    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 Hermann75 10 Unities + Antwort hilfreich

Hallo Hermann75,

so auf den ersten Blick ist der Makrocode, den du da gepostet hast, okay. Ich vermute das Problem entweder drumherum mit der Schleife, mit der du die Modelle durchläufst, die ModelDocExtension zuweist oder irgendeine Besonderheit am ModelDoc. Das dritte Teil ist doch nicht etwa eine Zeichnung? 

Vlielleicht kannst du und noch etwas mehr Futter geben?

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

Hermann75
Mitglied
Konstrukteur


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

Beiträge: 124
Registriert: 04.05.2016

MS Windows 11 Pro; Intel Core i9-12900HX, 2.3GHz;
64GB Ram; 64bit; NVIDIA RTX A3000
SW 2021 SP5.1 Professional
SW-PDM 2021 Professional
HiCAD next 2008
Helios next 2008

erstellt am: 12. Jul. 2017 10: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


Sortierfelder.txt


Fehlermeldung.JPG


screenshot.JPG

 
Hallo zusammen

Beiliegend das ganze Makro als "Futter". Ich bin wirklich Neuling und somit kann der Fehler wirklich irgendwo darum herum sein.

So wie ich es sehe, ist das dritte Teil keine Zeichnung. Eine MsgBox vor der durch den Debuger markierten Zeile gibt mir als
ConfigCount "1" aus und als ConfigNames "Standard", was bei den ersten zwei Teilen auch der Fall war.

Vielen Dank bis hierher

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

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



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

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 12. Jul. 2017 11:11    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 Hermann75 10 Unities + Antwort hilfreich


30701_fehleranalyse.png


30701_loesung.png

 
Hallo Hermann75,

vielen Dank für die zusätzliche Info, das hat geholfen. Du hast tatsächlich einen kleinen Knoten in deiner Logik, die nicht unbedingt auffällt, wenn alle Dokumente bei euch Standardisierte Konfigurationsnamen haben. Ich versuch das erst mal zu erläutern, die Lösung hängt auch dran, ist recht simpel, wenn man das Problem dingfest gemacht hat (wie meistens in der Programmierung      ):

Ich geh anhand von dem ersten Bild vor: du holst dir das ModelDoc deiner Hauptbaugruppe (Punkt 1) in die Objektvariable swModel und holst dir von dieser Hauptbaugruppe später in deiner Komponentenschleife dann die Anzahl der Konfigurationen und die Konfigurationsnamen (Punkt 2).

In der Schleife klapperst du über die ganzen Komponenten und holst dir jeweils die ModelDocs der Komponenten nach swcompmodel und die Extension dafür nach swModelDocExt (Punkt 3).

Für die konfigurationsspezifischen Eigenschaften willst du dann logischerweise den Propertymanager der ModelDocs der Komponenten benutzen, aber das tust du nicht ganz, da du nacheinander die Konfigurationsnamen der Hauptbaugruppe durchläufst und mit diesen Namen in der Komponente den Propertymanager holst. (Punkt 4)

Das klappt alles, solange deine Komponenten durch Zufall genau dieselben Konfigurationsnamen haben wie deine Hauptbaugruppe. Wenn jetzt aber in der Hauptbaugruppe eine Konfiguration dran ist, deren Namen in der Komponente nicht existiert, versucht das Makro einen Propertymanager für eine Konfiguration zu holen, die gar nicht existerit, daraufhin ist das swCustProp Nothing und die nächste Zeile fliegt auf die Nase mit Runtime Error 91.


Die Lösung ist recht einfach, du willst ja die Dateieigenschaften deiner Komponenten schreiben und musst dafür die Konfigurationen der Komponente durchlaufen, also wie in Bild 2 zwei Zeilen ändern:

Code:
                    'Konfigurationen ausfindig machen
                    ConfigCount = swCompModel.GetConfigurationCount
                    ConfigNames = swCompModel.GetConfigurationNames

Ich hoffe, das war verständlich       

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

Hermann75
Mitglied
Konstrukteur


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

Beiträge: 124
Registriert: 04.05.2016

MS Windows 11 Pro; Intel Core i9-12900HX, 2.3GHz;
64GB Ram; 64bit; NVIDIA RTX A3000
SW 2021 SP5.1 Professional
SW-PDM 2021 Professional
HiCAD next 2008
Helios next 2008

erstellt am: 12. Jul. 2017 11: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

In der Tat. Die Lösung ist wirklich sehr einfach. Vielen Dank Stefan für die Korrektur meines Makros. Werde es morgen umsetzen.

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