Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro aus Tauschbörse - Ansicht

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
  
Ihre Produktion fit für die Zukunft - Smart Manufacturing mit DELMIAWorks ERP/MES, ein Webinar am 12.09.2025
Autor Thema:  Makro aus Tauschbörse - Ansicht (826 mal gelesen)
Teddibaer
Ehrenmitglied V.I.P. h.c.
Struktur-Experte



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

Beiträge: 2125
Registriert: 09.02.2004

erstellt am: 21. Sep. 2004 15:01    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 würde gerne das Makro (Nr. 4 - http://solidworks.cad.de/mm_boerse.htm) um "Skizzen" erweitern. Die Punkte mit "NEU" habe ich hinzugefügt.
Das Problem scheint zu sein, dass es den Befehl "Part.ViewDispSketches " nicht gibt. Kann man das auch irgendwie anders hinbekommen?

Dim swApp As Object
Dim Part As Object
Dim Events As Boolean

Private Sub UserForm_Initialize()
    Const swDisplayAxes = 4
    Const swDisplayPlanes = 5
    Const swDisplayOrigins = 6
    Const swDisplayTemporaryAxes = 7
    'Const swDisplayCoordSystems = 13
    Const swDisplayReferencePoints = 19
    Const swDisplaySketches = 8 'NEU

    Set swApp = CreateObject("SldWorks.Application")
    Set Part = swApp.ActiveDoc

    Events = False
    CheckBox1.Value = Part.GetUserPreferenceToggle(swDisplayPlanes)
    CheckBox2.Value = Part.GetUserPreferenceToggle(swDisplayAxes)
    CheckBox3.Value = Part.GetUserPreferenceToggle(swDisplayTemporaryAxes)
    CheckBox4.Value = Part.GetUserPreferenceToggle(swDisplayOrigins)
    CheckBox5.Value = Part.GetUserPreferenceToggle(swDisplayCoordSystems)
    CheckBox6.Value = Part.GetUserPreferenceToggle(swDisplayReferencePoints)
    CheckBox7.Value = Part.GetUserPreferenceToggle(swDisplaySketches) 'NEU
    Events = True

    Me.Left = CInt(GetSetting("SolidLine", "SWAnsicht", "Left", 200))
    Me.Top = CInt(GetSetting("SolidLine", "SWAnsicht", "Top", 100))
    Me.Repaint
End Sub

Private Sub UserForm_Layout()
    SaveSetting "SolidLine", "SWAnsicht", "Left", CStr(Me.Left)
    SaveSetting "SolidLine", "SWAnsicht", "Top", CStr(Me.Top)
End Sub

Private Sub UserForm_Terminate()
    End
End Sub

Private Sub CheckBox1_Change()
    If Events Then
        Part.ViewDispRefplanes
    End If
End Sub

Private Sub CheckBox2_Change()
    If Events Then
        Part.ViewDispRefaxes
    End If
End Sub

Private Sub CheckBox3_Change()
    If Events Then
        Part.ViewDispTempRefaxes
    End If
End Sub

Private Sub CheckBox4_Change()
    If Events Then
        Part.ViewDispOrigins
    End If
End Sub

Private Sub CheckBox5_Change()
    If Events Then
        Part.ViewDispCoordinateSystems
    End If
End Sub

Private Sub CheckBox6_Change()
    If Events Then
        Part.ViewDispRefPoints
    End If
End Sub
Private Sub CheckBox7_Change()
    If Events Then
        Part.ViewDispSketches 'NEU
    End If
End Sub

------------------
Gruß, der Teddibaer
---------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
John Osborne (1929-94)

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 21. Sep. 2004 15:32    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 Teddibaer 10 Unities + Antwort hilfreich

warum nimmst Du nicht SetUserPreferenceToggle ?

BTWBy the way = Nebenbei bemerkt: Ich hätte auch für die anderen Typen den SetUserPreferenceToggle genommen ... So wie Du beim Öffen der UserForm abfragst
Checkbox.Value=Part.UserPreferenceToggle(...) kannst Du ebenso beim Verlassen der Userform Part.SetUserPreferenceToggle(...,Checkbox.Value) schreiben

oder für das ganz schnelle Makro
boolstatus = Part.SetUserPreferenceToggle(sw..., Not (Part.GetUserPreferenceToggle(sw...))) - schaltet bei jedem Aufruf hin-und-her  

------------------
mfg uc

[Diese Nachricht wurde von u.clemens am 21. Sep. 2004 editiert.]

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

Teddibaer
Ehrenmitglied V.I.P. h.c.
Struktur-Experte



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

Beiträge: 2125
Registriert: 09.02.2004

erstellt am: 21. Sep. 2004 15:38    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

Also ich hab das Makro nur übernommen, um mal zu sehen, ob es abzupassen ist.
Das Problem liegt nicht in der Eleganz, sondern daran, dass es anscheinend den o.g. Befehl für die Skizzen nicht gibt!?!?

Auslesen kann ich:
CheckBox7.Value = Part.GetUserPreferenceToggle(swDisplaySketches)

Aber schreiben geht nicht:
Private Sub CheckBox7_Change()
    If Events Then
        Part.ViewDispSketches 'NEU  <--- gibt's nicht?!?!
    End If
End Sub

------------------
Gruß, der Teddibaer
---------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
John Osborne (1929-94)

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

u.clemens
Mitglied
Konstrukteur


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

Beiträge: 964
Registriert: 04.07.2000

engineer's law
o cheap
o fast
o good
check only two !

erstellt am: 21. Sep. 2004 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 Nur für Teddibaer 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Teddibaer:
Das Problem liegt ... daran, dass es anscheinend den o.g. Befehl für die Skizzen nicht gibt!?!?

Auslesen kann ich:
CheckBox7.Value = Part.GetUserPreferenceToggle(swDisplaySketches)

Aber schreiben geht nicht:
Private Sub CheckBox7_Change()
    If Events Then
        Part.ViewDispSketches 'NEU  <--- gibt's nicht?!?!
    End If
End Sub


na eben dann nimm doch

Private Sub CheckBox7_Change()
    If Events Then
        Part.SetUserPreferenceToggle(swDisplaySketches,CheckBox7.Value)
    End If
End Sub

Im Übrigen solltest Du Dich nicht wundern, wenn es immer noch nicht funktioniert - die Konstante für swDisplaySketches ist 196 und nicht 8 - Nachzulesen in der swconst.bas !!!

------------------
mfg uc

[Diese Nachricht wurde von u.clemens am 21. Sep. 2004 editiert.]

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

Teddibaer
Ehrenmitglied V.I.P. h.c.
Struktur-Experte



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

Beiträge: 2125
Registriert: 09.02.2004

erstellt am: 21. Sep. 2004 15: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

Potzblitz, es fällt mir wie Schuppen von den Haaren ...

Danke und 10P!

------------------
Gruß, der Teddibaer
---------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
John Osborne (1929-94)

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



Anzeige:Infos zum Werbeplatz >>

GeoVisual Civil Engineer CAD APP für 3D, Tiefbau, AEC - Architektur-, Ingenieur- und Bauwesen

Die benutzerfreundliche Softwarelösung zur Visualisierung von Infrastrukturplanungen

Teddibaer
Ehrenmitglied V.I.P. h.c.
Struktur-Experte



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

Beiträge: 2125
Registriert: 09.02.2004

**CSWP 06/2004**
--
MacBook Air M1
MacBook Pro M1-Max

erstellt am: 22. Sep. 2004 10:05    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

Hier das komplette Listing:
' Achtung:
' Mit dem Menübefehl Extras\Verweise... die "SolidWorks Constant type library" einbinden !!

... sonst geht's auch nicht (@ublum: P.S. das mit der const.bas war mir neu, damit's überhaupt funktionierte habe ich irgendwas eingetragen.)

HINWEIS: Das ist nicht aus meinem Mist gewachsen, ich hab's nur abgeändert!

Dim swApp As Object
Dim Part As Object
Dim Events As Boolean

Private Sub UserForm_Initialize()
    Const swDisplayAxes = 4
    Const swDisplayPlanes = 5
    Const swDisplayOrigins = 6
    Const swDisplayTemporaryAxes = 7
    Const swDisplayCoordSystems = 13
    Const swDisplayReferencePoints = 19
    Const swDisplaySketches = 196

    Set swApp = CreateObject("SldWorks.Application")
    Set Part = swApp.ActiveDoc

    Events = False
    CheckBox1.Value = Part.GetUserPreferenceToggle(swDisplayPlanes)
    CheckBox2.Value = Part.GetUserPreferenceToggle(swDisplayAxes)
    CheckBox3.Value = Part.GetUserPreferenceToggle(swDisplayTemporaryAxes)
    CheckBox4.Value = Part.GetUserPreferenceToggle(swDisplayOrigins)
    CheckBox5.Value = Part.GetUserPreferenceToggle(swDisplayCoordSystems)
    CheckBox6.Value = Part.GetUserPreferenceToggle(swDisplayReferencePoints)
    CheckBox7.Value = Part.GetUserPreferenceToggle(swDisplaySketches)

    Events = True

    Me.Left = CInt(GetSetting("SolidLine", "SWAnsicht", "Left", 200))
    Me.Top = CInt(GetSetting("SolidLine", "SWAnsicht", "Top", 100))
    Me.Repaint
End Sub

Private Sub UserForm_Layout()
    SaveSetting "SolidLine", "SWAnsicht", "Left", CStr(Me.Left)
    SaveSetting "SolidLine", "SWAnsicht", "Top", CStr(Me.Top)
End Sub

Private Sub UserForm_Terminate()
    End
End Sub

Private Sub CheckBox1_Change()
    If Events Then
        Part.ViewDispRefplanes
    End If
End Sub

Private Sub CheckBox2_Change()
    If Events Then
        Part.ViewDispRefaxes
    End If
End Sub

Private Sub CheckBox3_Change()
    If Events Then
        Part.ViewDispTempRefaxes
    End If
End Sub

Private Sub CheckBox4_Change()
    If Events Then
        Part.ViewDispOrigins
    End If
End Sub

Private Sub CheckBox5_Change()
    If Events Then
        Part.ViewDispCoordinateSystems
    End If
End Sub

Private Sub CheckBox6_Change()
    If Events Then
        Part.ViewDispRefPoints
    End If
End Sub
Private Sub CheckBox7_Change()
    If Events Then
        retval = Part.SetUserPreferenceToggle(swDisplaySketches, CheckBox7.Value)
    End If
End Sub

------------------
Gruß, der Teddibaer
---------
Der Computer ist die logische Weiterentwicklung des Menschen: Intelligenz ohne Moral.
John Osborne (1929-94)

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