Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API Dokumenteigenschaften Einheiten ändern

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
  
Bechtle Competence Days | Online
Autor Thema:  API Dokumenteigenschaften Einheiten ändern (527 mal gelesen)
brainer
Mitglied
Konstrukteur


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

Beiträge: 31
Registriert: 25.09.2013

erstellt am: 11. Sep. 2023 15: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

Hallo Gemeinde,
bei uns gibt es eine Menge Wildwuchs bei den erstellten Teilen und Baugruppen aus der Vergangenheit
Ich möchte nun wenn man ein Teil oder eine BGR offen hat per API die Einheiten auf Benutzerdefiniert setzen
und die Masse auf Kilogramm und das Volumen auf Liter setzten.
ich hab mit den code experimentiert komme aber nicht weiter

    Dim Part As Object
    Dim boolstatus As Boolean
    Dim longstatus As Long, longwarnings As Long

Set Part = swApp.ActiveDoc

            boolstatus = Part.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, 0, swUnitSystem_e.swUnitSystem_Custom)
         
''''swUnitsMassPropMass_Kilograms = 3

            boolstatus = Part.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropMass, 3)

Hat hier jemand sowas schon mal gemacht? Vileicht ein Beispiel wäre super

Gruß
Rainer

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: 11. Sep. 2023 16: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 brainer 10 Unities + Antwort hilfreich

Hallo Rainer,

ohne den Code näher getestet zu haben
was sofort auffällt
Du verwendest
"SetUserPreferenceInteger" 1x mit 2 Parametern und 1x mit 3 Parametern
das ist schon mal komisch

Ich würde mal die Online-Hilfe bemühen
dort siehst Du, dass der Zugriff
auf "SetUserPreferenceInteger" mit 3 Parametern über "IModelDocExtension"
und
auf "SetUserPreferenceInteger" mit 2 Parametern über "IModelDoc" oder "IModelDoc2"
erfolgt


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

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

Volkmar Grube
Mitglied
Konstrukteur


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

Beiträge: 120
Registriert: 31.01.2009

WIN11 64Bit, SWX 2022, Delphi 10

erstellt am: 11. Sep. 2023 17:41    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 brainer 10 Unities + Antwort hilfreich


SetzeKG.txt

 
Hallo,
probier mal den angehängten Text. Ich habe da noch ein paar Sachen rausgeworfen, es kann also sein, dass irgendeine If-Anweisung das end verloren hat.

------------------
Grüße aus Dresden
Volkmar Grube

Es gibt keine Probleme, es gibt nur Aufgaben.

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

Andi Beck
Ehrenmitglied V.I.P. h.c.
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: 2572
Registriert: 02.10.2006

Firma: SW 2023-4.0 + PDM Prof.
Windows 10 Pro 64bit, i9-11900
32 GbRAM, Quadro P2200
Home:
SW 2022-5.0
Passungstabelle von Heinz
Windows 11 Pro 64bit,
i7-12700K, 32 GbRAM,
GeForce GTX 1050Ti
Samsung C34H892, 3440x1440 Pixel

erstellt am: 11. Sep. 2023 17:58    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 brainer 10 Unities + Antwort hilfreich

Hallo,
ich habe mir zur Dateibereinigung folgendes Makro geschrieben.
Dieses passt die Beleuchtungskörper an, stellt die Einheiten ein und erstellt mir bestimmte Dateieigenschaften.

Code:

Public Sub main()

    Dim swApp           As SldWorks.SldWorks
    Dim swModel         As SldWorks.ModelDoc2
    Dim sFileName       As String
    Dim boolstatus      As Boolean
    Dim value           As String
    Dim i               As Long

    Set swApp = Application.SldWorks
   
    Set swModel = swApp.ActiveDoc
   
    If (swModel.GetType() <> swDocDRAWING) Then

        For i = 1 To swModel.GetLightSourceCount - 1
            swModel.DeleteLightSource (1)
        Next i
   
        boolstatus = swModel.SetLightSourcePropertyValuesVB("Ambient", 1, 1, 16777215, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.29, 0, 0, False)
        boolstatus = swModel.LockLightToModel(0, False)    'Light ID, Mit Modell verknüpfen - True = ja, False = Nein
        swModel.GraphicsRedraw                             'Zeichnet den angegebenen Bereich oder das gesamte SOLIDWORKS-Grafikfenster neu.
        swModel.ClearSelection2 True                       'True löscht die gesamte vorhandene Auswahlliste, False löscht nur die Elemente in der aktiven Auswahlliste
       
        boolstatus = swModel.AddLightSource("Direction1", 4, "Gerichtet1")     '1 = Ambient light, 2 = Spot light, 3 = Point light, 4 = Directional light
        boolstatus = swModel.SetLightSourcePropertyValuesVB("Direction1", 4, 0.45, 16777215, 1, -8.17746082497419E-02, 8.18037459828556E-02, 0.245394474446296, 0, 0, 0, 0, 0, 0, 0, 0.2, 0.69, 0, False)
        boolstatus = swModel.LockLightToModel(1, False)
        swModel.GraphicsRedraw
        swModel.ClearSelection2 True
       
        boolstatus = swModel.AddLightSource("Direction2", 4, "Gerichtet2")     '1 = Ambient light, 2 = Spot light, 3 = Point light, 4 = Directional light
        boolstatus = swModel.SetLightSourcePropertyValuesVB("Direction2", 4, 0.88, 12615808, 1, 0.266475622072952, -4.23453190715314E-02, -2.81958204981437E-02, 0, 0, 0, 0, 0, 0, 0, 0.13, 0.85, 0, False)
        boolstatus = swModel.LockLightToModel(2, False)
        swModel.GraphicsRedraw
        swModel.ClearSelection2 True
   
        boolstatus = swModel.EditRebuild3()
       
   
    '---------------Einheiten in den Dokumenteigenschaften definieren
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitSystem, 0, swUnitSystem_e.swUnitSystem_Custom)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsLinear, 0, swLengthUnit_e.swMM)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsDualLinear, 0, swLengthUnit_e.swINCHES)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsAngular, 0, swAngleUnit_e.swDEGREES)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropLength, 0, swLengthUnit_e.swMM)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsDecimalRounding, 0, swUnitsDecimalRounding_e.swUnitsDecimalRounding_HalfAway)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsLinearDecimalPlaces, 0, 2)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsDualLinearDecimalPlaces, 0, 2)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsAngularDecimalPlaces, 0, 2)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropDecimalPlaces, 0, 2)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropMass, 0, swUnitsMassPropMass_e.swUnitsMassPropMass_Kilograms)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsMassPropVolume, 0, swUnitsMassPropVolume_e.swUnitsMassPropVolume_Millimeters3)
        boolstatus = swModel.Extension.SetUserPreferenceInteger(swUserPreferenceIntegerValue_e.swUnitsTimeDecimalPlaces, 0, 2)
       
    '---------------Dateieigenschaften einfügen
        boolstatus = swModel.DeleteCustomInfo2("", "Number")
        boolstatus = swModel.AddCustomInfo3("", "Number", swCustomInfoText, "$PRP:" & Chr(34) + "SW-File Name" + Chr(34))
       
        sFileName = Mid(swModel.GetPathName, InStrRev(swModel.GetPathName, "\") + 1)
        vConfNameArr = swModel.GetConfigurationNames
    
        For i = 0 To UBound(vConfNameArr)
            sConfigName = vConfNameArr(i)
            boolstatus = swModel.DeleteCustomInfo2(sConfigName, "Gewicht")
            boolstatus = swModel.AddCustomInfo3(sConfigName, "Gewicht", swCustomInfoText, Chr(34) + "SW-Mass" + "@@" + sConfigName + "@" + sFileName + Chr(34))
            If (swModel.GetType() = swDocPART) Then
                boolstatus = swModel.DeleteCustomInfo2(sConfigName, "Material")
                boolstatus = swModel.AddCustomInfo3(sConfigName, "Material", swCustomInfoText, Chr(34) + "SW-Material" + "@@" + sConfigName + "@" + sFileName + Chr(34))
            End If
        Next i
       
    Else
        Call MsgBox("Nicht für Zeichnungen geeignet!", vbSystemModal, "Information")
    End If
   
End Sub


Kannst ja was du nicht brauchst nach belieben deaktivieren.

Grüße, Andi

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

[Diese Nachricht wurde von Andi Beck am 12. Sep. 2023 editiert.]

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

solas
Mitglied



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

Beiträge: 461
Registriert: 11.02.2010

Kämpft mit BIM IFC

erstellt am: 12. Sep. 2023 07:56    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 brainer 10 Unities + Antwort hilfreich

Von meiner Seite ein kleiner Hinweis. Bitte sehr vorsichtig sein, wenn Gleichungen enthalten sind. Vielleicht solltet ihr auf Gleichungen prüfen und wenn vorhanden, und die Längeneinheit geändert werden soll diese melden und überspringen.

------------------
Hat es bisher nicht geschafft Solidworks auf Wine zu betreiben.

Kämpft mit BIM IFC -> An alle macht Enhancement requests bei Solidworks dazu!
https://faq.bechtle-cad.com/index.php?solution_id=1559 dazu!

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

brainer
Mitglied
Konstrukteur


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

Beiträge: 31
Registriert: 25.09.2013

erstellt am: 13. Sep. 2023 14:56    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

Super vieeeeeeeeeelen Dank

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