Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - Beleuchtungskörper 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
Autor Thema:  API - Beleuchtungskörper löschen (809 mal gelesen)
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: 2570
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: 18. Feb. 2020 21: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


Beleuchtungskoerper-SW2019.JPG


DeleteLightSource-Fehler.jpg


Beleuchtungskoerper-2.zip

 
Hallo,
ich glaube, ich habe mal wieder nen Brett vor dem Kopf. 

Ich möchte per Makro die bestehenden Beleuchtungskörper außer Umgebungslicht (ID-Name = 0) löschen, um dann neue zu erzeugen.
Alles funktioniert, nur die Löschen-Funktion sträubt sich. (Siehe Bilder)

Auszug aus dem Code:

Code:

    Set swApp = Application.SldWorks
    Set swModel = swApp.ActiveDoc

    boolstatus = swModel.DeleteLightSource(1)

    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


Bei dieser Zeile bekomme ich eine Fehlermeldung. (siehe Bild)

Code:

boolstatus = swModel.DeleteLightSource(1)

Hat jemand eine Idee, was ich falsch mache?
Bestimmt wieder ganz banal.

Ich habe das Makro auch mit angehängt, wer Lust hat, kann ja mal Probieren.

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

Winni-two
Mitglied
Ing. Maschb.


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

Beiträge: 154
Registriert: 12.03.2010

SW 2021 SP5
Intel Xenon W2135 @3.7GHz
Win 10 64 bit
Graka: Nvidia Quadro P4000
32 GB Ram

erstellt am: 19. Feb. 2020 06: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 Nur für Andi Beck 10 Unities + Antwort hilfreich

Hallo Andi,

Ersetze boolstatus = swModel.DeleteLightSource(1) durch:

  For i = 1 To swModel.GetLightSourceCount - 1
  swModel.DeleteLightSource (1)
  Next i

Gruß Winni

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: 2570
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: 19. Feb. 2020 07:09    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

Moin Winni,
besten Dank, funzt. 

Die Schleife wollte ich eh machen, wenn den der Löschbefehlt funktioniert.
Aber das da jetzt vor  swModel.DeleteLightSource (1) nichts kommt, widerspricht ja jeder Logik, siehe die folgenden Befehle.
Diese Variante habe ich zumindest nicht durchgespielt, auf die Idee bin ich gar nicht gekommen.

Schon seltsam.

Grüße, und einen schönen Tag noch. 

------------------
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)2024 CAD.de | Impressum | Datenschutz