Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VBA-Tool zum Setzen der Einheiten ?

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
Autor Thema:  VBA-Tool zum Setzen der Einheiten ? (2225 mal gelesen)
Lueghi
Mitglied
Admin für alle Systeme ....


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

Beiträge: 435
Registriert: 01.07.2005

CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO
PDM...: PRO.FILE 8.6
ERP...: proAlpha 6.2e / 7.1
BS....: Win10, HP ZBook G5

erstellt am: 02. Dez. 2009 18: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

Hallo SolidWorks-Profis,

suche ein paar Codezeilen, um die Einheiten der Masseeigenschaften per Batchlauf verändern zu können.
Wir wollen die Toolboxteile in ein PDM importieren. Das PDM erwartet als Mengeneinheit kg, ccm, qcm; die ganzen Toolboxteile arbeiten aber mit g, cmm, qmm ...

Ich möchte das ungerne alles von Hand ändern  .

Hat da jemand eine Idee?

Gruß Stefan

------------------
Gruß Stefan

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: 03. Dez. 2009 08:45    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 Lueghi 10 Unities + Antwort hilfreich

Hallo Stefan,

nicht, dass ich meinen Teil schwerfällige PDM Systeme nicht auch schon kennengelernt hätte, aber wäre es nicht viel einfacher, dem PDM bei den Importroutinen beizubringen, die Werte einfach durch 1000 zu teilen oder (fast undenkbar) vorher in die Masseeigenschaften reinzuschauen und die einfach richtig auszulesen?

Statt hunderte (tausende? Abertausende?) Dokumente zu ändern (eigentlich also sogar versionspflichtig), neu zu speichern und neu einzuchecken wäre es doch eine Überlegung wert, eine Routine für den Import zu ändern oder zu schreiben, selbst wenn man dafür einen externen Berater für XZY Euros pro Tag braucht.

Wenn es darum geht, dass die clevere Importschnittstelle vor dem Einlesen ein benutzerdefiniertes Makro in SolidWorks ausführen kann (also im Prinzip das macht, was ich oben beschrieben habe) würde ich bei IModelDocExtension::SetUserPreferenceInteger schauen mit den Parametern swUnitsMassPropMass, swUnitsMassPropVolume und swUnitsMassPropLength

Fertiges Makro hab ich dafür gerade nicht rumfliegen.

Ciao,
Stefan

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

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

Lueghi
Mitglied
Admin für alle Systeme ....


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

Beiträge: 435
Registriert: 01.07.2005

CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO
PDM...: PRO.FILE 8.6
ERP...: proAlpha 6.2e / 7.1
BS....: Win10, HP ZBook G5

erstellt am: 03. Dez. 2009 10: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

Zitat:
Original erstellt von StefanBerlitz:

...
nicht, dass ich meinen Teil schwerfällige PDM Systeme nicht auch schon kennengelernt hätte, aber wäre es nicht viel einfacher, dem PDM bei den Importroutinen beizubringen, die Werte einfach durch 1000 zu teilen oder (fast undenkbar) vorher in die Masseeigenschaften reinzuschauen und die einfach richtig auszulesen?

Statt hunderte (tausende? Abertausende?) Dokumente zu ändern (eigentlich also sogar versionspflichtig), neu zu speichern und neu einzuchecken wäre es doch eine Überlegung wert, eine Routine für den Import zu ändern oder zu schreiben, selbst wenn man dafür einen externen Berater für XZY Euros pro Tag braucht.



Da ist auch was dran, aber wir fangen gerade erst mit SolidWorks an und unsere Vorlagen sind schon richtig eingestellt. Es geht mir "nur" um die Toolboxteile (Normteile etc.) die wir "erstmalig" ins PDM einlesen wollen/müssen. Da ist also noch nichts mit Revisionspflicht :D .

Zitat:
Original erstellt von StefanBerlitz:
Wenn es darum geht, dass die clevere Importschnittstelle vor dem Einlesen ein benutzerdefiniertes Makro in SolidWorks ausführen kann (also im Prinzip das macht, was ich oben beschrieben habe) würde ich bei IModelDocExtension::SetUserPreferenceInteger schauen mit den Parametern swUnitsMassPropMass, swUnitsMassPropVolume und swUnitsMassPropLength...[/i]

Ich denke, das ist der Hinweis und wird mir weiterhelfen ... DANKE.

------------------
Gruß Stefan

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

Piet
Mitglied
Konstruktionsleiter & Konstrukteur


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

Beiträge: 661
Registriert: 20.11.2001

SWx 2021

erstellt am: 03. Dez. 2009 11: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 Lueghi 10 Unities + Antwort hilfreich

Für den Code kannst du dich an meinem Makro "Masseeinheiten" orientieren, das ist Nr. 27 in der Makrotauschbörse. http://solidworks.cad.de/mm_boerse03.htm

Piet

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

Lueghi
Mitglied
Admin für alle Systeme ....


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

Beiträge: 435
Registriert: 01.07.2005

CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO
PDM...: PRO.FILE 8.6
ERP...: proAlpha 6.2e / 7.1
BS....: Win10, HP ZBook G5

erstellt am: 03. Dez. 2009 15:35    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

Danke für den Hinweis.

Ich scheitere schon an folgender Zeile:
bret = ModelDoc.SetUserPreferenceIntegerValue(swUnitSystem, swUnitSystem_Custom)
Aber irgendwie sind bei mir die Variablen swUnitSystem, wUnitsMassPropVolume etc. leer obwohl ich die swConst geladen habe. Dann gibt mir die Funktion Get... bzw. Set... auch nichts zurück.
Fehlt mir da noch irgendwas?

Sorry für die Nachfrage, aber ich habe schon öfter in VB programmiert, nichts Großes aber einige kleine Sachen oder mal ein vorhandenes Makro abgeändert. Dabei glaubte ich zumindest bis jetzt, dass ich das Grundprinzip verstanden hätte  .

------------------
Gruß Stefan

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

manoc
Mitglied
Konstrukteur, CAD-Admin, Berechnungsingenieur


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

Beiträge: 104
Registriert: 06.12.2004

erstellt am: 04. Dez. 2009 08:55    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 Lueghi 10 Unities + Antwort hilfreich

Hallo Stefan,

vielleicht wirfst Du mal einen Blick in diesen Thread:
http://ww3.cad.de/foren/ubb/Forum2/HTML/011099.shtml

Da wurde mir bei einem ähnlichen Problem geholfen.

Gruß Martin

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

Lueghi
Mitglied
Admin für alle Systeme ....


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

Beiträge: 435
Registriert: 01.07.2005

CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO
PDM...: PRO.FILE 8.6
ERP...: proAlpha 6.2e / 7.1
BS....: Win10, HP ZBook G5

erstellt am: 04. Dez. 2009 23: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

Zitat:
Original erstellt von manoc:
vielleicht wirfst Du mal einen Blick in diesen Thread:
http://ww3.cad.de/foren/ubb/Forum2/HTML/011099.shtml


Ja, das ist genau das, was ich brauche. Aber die Links zu den ZIP-Dateien funktionieren nicht mehr ....  .
Hast Du davon vielleicht noch was auf Deiner Platte rumliegen ?

------------------
Gruß Stefan

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

Lueghi
Mitglied
Admin für alle Systeme ....


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

Beiträge: 435
Registriert: 01.07.2005

CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO
PDM...: PRO.FILE 8.6
ERP...: proAlpha 6.2e / 7.1
BS....: Win10, HP ZBook G5

erstellt am: 14. Dez. 2009 12:31    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

Zitat:
Original erstellt von Lueghi:
Ja, das ist genau das, was ich brauche. Aber die Links zu den ZIP-Dateien funktionieren nicht mehr ....   .
Hast Du davon vielleicht noch was auf Deiner Platte rumliegen ?[/B]

Darf ich mich noch einmal in Erinnerung bringen ....

------------------
Gruß Stefan

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

Lueghi
Mitglied
Admin für alle Systeme ....


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

Beiträge: 435
Registriert: 01.07.2005

CAD...: SWX2022 SP5, ACAD 2019, Tacton / LINO
PDM...: PRO.FILE 8.6
ERP...: proAlpha 6.2e / 7.1
BS....: Win10, HP ZBook G5

erstellt am: 08. Jun. 2010 12: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

Nach langem Suchen habe ich es endlich geschafft  . Ich hatte eine alte Version der swconst und die kannte die "neueren" Kontanten noch nicht ....

Für jeden, der mal ein ähnliches Problem hat, hier mein verwendeter Code:

Code:
Public swApp As SldWorks.SldWorks
Public ModelDoc As SldWorks.ModelDoc2
Public swDocExt As SldWorks.ModelDocExtension
Public swMass As SldWorks.MassProperty
Dim parttype As Variant
Dim test As Variant

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc
   
    Set swDocExt = ModelDoc.Extension
   
    ' Prüfen, ob es sich um ein Part handelt / check, if the doc is a part
    parttype = ModelDoc.GetType()
    If parttype <> 1 Then
        MsgBox "Tut mir leid, das funktioniert nur bei Teilen"
        Exit Sub
    End If
           
            ' Testen auf Einheiten-System, sonst setzen auf Benutzerdefiniert
            test = swDocExt.GetUserPreferenceInteger(swUnitSystem, swDetailingNoOptionSpecified)
            If test <> swUnitSystem_Custom Then
                test = swDocExt.SetUserPreferenceInteger(swUnitSystem, swDetailingNoOptionSpecified, swUnitSystem_Custom)
            End If
                       
           
            ' Testen auf Masse-Einheit Länge, sonst setzten auf cm
            test = swDocExt.GetUserPreferenceInteger(swUnitsMassPropLength, swDetailingNoOptionSpecified)
            If test <> swCM Then
                test = swDocExt.SetUserPreferenceInteger(swUnitsMassPropLength, swDetailingNoOptionSpecified, swCM)
            End If
                       
            ' Testen auf Masse-Einheit Gewicht, sonst setzen auf kg
            test = swDocExt.GetUserPreferenceInteger(swUnitsMassPropMass, swDetailingNoOptionSpecified)
            If test <> swUnitsMassPropMass_Kilograms Then
                test = swDocExt.SetUserPreferenceInteger(swUnitsMassPropMass, swDetailingNoOptionSpecified, swUnitsMassPropMass_Kilograms)
            End If
           
            ' Testen auf Masse-Einheit Volumen, sonst setzen auf cm³
            test = swDocExt.GetUserPreferenceInteger(swUnitsMassPropVolume, swDetailingNoOptionSpecified)
            If test <> swUnitsMassPropVolume_Centimeters3 Then
                test = swDocExt.SetUserPreferenceInteger(swUnitsMassPropVolume, swDetailingNoOptionSpecified, swUnitsMassPropVolume_Centimeters3)
            End If



Vielleicht kann es mal jemand gebrauchen.

------------------
Gruß Stefan

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