Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro zum Ändern des Layers eines Objekts

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
  
Tierisch mobil: Der autonome Inspektionsroboter ANYmal | SOLIDWORKS
Autor Thema:  Makro zum Ändern des Layers eines Objekts (552 / mal gelesen)
Cziffra
Mitglied
Maschinenbauing.

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

Beiträge: 8
Registriert: 05.10.2022

erstellt am: 15. Mai. 2023 12:00    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,

leider kenne ich mich Makros fast gar nicht aus. Makros erstelle ich in der Regel über Aufzeichnen der durchzuführenden Optionen.
Jetzt möchte ich den Layer eines Objekts (in meinem Fall z.B. Linie oder Text) anhand eines Makros ändern, so dass der zugewiesene Layer z.B. "Kante" lautet.
Mit meiner gewohnten Methode komme ich leider nicht weiter.
In folgendem Thread ist wohl die Lösung, aber die hilft mir aufgrund meines Wissensstands nicht weiter:
https://ww3.cad.de/foren/ubb/Forum2/HTML/028028.shtml

Unter folgendem Link wird ein Makro vorgeschlagen aber man muss den Layer vorher von Hand eingeben. Das hilft mir aber leider nicht weiter, ich will am Ende auf einen Knopf drücken und die Änderung des Layers wird durchgeführt.
https://www.codestack.net/solidworks-api/document/drawing/change-layer-selected-drawing-objects/

Vielen Dank schonmal für Eure Hilfe 

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

Heiko Soehnholz
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. (FH) Maschinenbau



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

Beiträge: 5473
Registriert: 03.07.2002

SOLIDWORKS 2001 - 2024SP0.1
Elite AE Award 2023
SOLIDWORKS Premium,
Simu, Flow, Plastics, Composer, MBD,
Inspection, PDMP, Visualize, TopsWorks,
DPS Tools, JobBox, MacroSheet, etc.
Passungstabelle von Heinz
WIN10x64 22H2 | HP ZBook 17 Fury G8

erstellt am: 15. Mai. 2023 14: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 Nur für Cziffra 10 Unities + Antwort hilfreich

Moin,

das verlinkte Makro holt sich einen String durch die Abfrage. Wenn du den Layernamen schon kennst, kannst du doch den String direkt zuweisen.

anstelle
layerName = InputBox("Specify the layer")

dann
layerName = "Kante"

------------------
Einen schönen Gruß von Heiko
www.dps-software.dewww.dps-akademie.dewww.iknow-solidworks.dewww.youtube.de/dpssoftwaregmbh

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

deckelmaho
Mitglied
Konstrukteur


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

Beiträge: 239
Registriert: 03.03.2020

SolidWorks 2023 SP5
Windows 10 64bit
Office 2019

erstellt am: 15. Mai. 2023 14:17    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 Cziffra 10 Unities + Antwort hilfreich

Hi Cziffra,

das Makro von Codestack.net ist schon so ziemlich das was du brauchst.

Wenn du aus...

Code:
layerName = InputBox("Specify the layer name to move selected objects to")

...die InputBox entfernst und stattdessen direkt den Namen des Layers angibst

Code:
layerName = "DEINLAYERNAMEN"

dann wird für alle ausgewählten Elemente dieses Layer verwendet.

Gruß Kevin

EDIT: Heiko war schon schneller 

------------------
HOMEPAGE | SWXTools.de - SWXHelper für SOLIDWORKS
KONTAKT | support@swxtools.de
FACEBOOK | facebook.com/SWXHelper
TWITTER | twitter.com/SWXTools

[Diese Nachricht wurde von deckelmaho am 15. Mai. 2023 editiert.]

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3215
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 15. Mai. 2023 14:57    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 Cziffra 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Cziffra:
...
Jetzt möchte ich den Layer eines Objekts (in meinem Fall z.B. Linie oder Text) anhand eines Makros ändern, so dass der zugewiesene Layer z.B. "Kante" lautet.

... ich will am Ende auf einen Knopf drücken
... change-layer-selected-drawing-objects ...


Verstehe den Sinn noch nicht ganz ...
- du musst vorher eh die Elemente auswählen, oder macht das dein Makro?
- wenn du die Symbolleiste "Layer" aktiviert hast, kannst du nach dem Auswählen auch dort mit ca 2 Klicks den Layer zuweisen.
- wenn das ganze aber für dwg- oder dxf-export ist, kannst du eine Abbildungsdatei definieren, da kann alles automatisch nach Funktion auf Layer zugewiesen werden. Also z.B. Kanten, Bemaßungen, Texte, ... jeweils auf bestimmte Layer.

Gruß, Christian

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

gearloose7
Mitglied
Techniker


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

Beiträge: 103
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 29. Apr. 2024 15:25    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 Cziffra 10 Unities + Antwort hilfreich

Hallo,

Habe ein ähnliches Problem, nur in die verkehrte Richtung.
Wie kann ich über VBA bei einem markierten Element den Layer wegnehmen (also auf -kein- setzen)?

Leer lassen geht nicht und nur Anführungsstriche geht auch nicht.

Gruß

[Diese Nachricht wurde von gearloose7 am 29. Apr. 2024 editiert.]

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

ad_man
Mitglied
freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

Beiträge: 1373
Registriert: 20.12.2003

SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000

erstellt am: 29. Apr. 2024 16:30    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 Cziffra 10 Unities + Antwort hilfreich

Hallo,

schau dir doch mal dieses Makro an:

https://www.codestack.net/solidworks-api/document/clear-layer/

Sollte das machen, was du suchst... 

------------------
==========
Gruß
Andreas
==========

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

gearloose7
Mitglied
Techniker


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

Beiträge: 103
Registriert: 26.08.2010

Windows 10 x64 Pro for Workstations
3,1GHz 32GB
NVidia Quadro P5200
SWX2021 SP5.1
Office 365 Pro
Draftsight 2021

erstellt am: 29. Apr. 2024 19: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 Cziffra 10 Unities + Antwort hilfreich

Hallo Andreas,


Vielen Dank.
Probiere ich bei nächster Gelegenheit aus.

Gruß

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3215
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 30. Apr. 2024 00:34    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 Cziffra 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von ad_man:
...
Sollte das machen, was du suchst...  

Hallo Andreas und gearloose,

bei mir löscht das verlinkte Makro die Objekte von der Zeichnung, anstatt ihnen nur den Layer wegzunehmen.

wenn ich mit einer Schleife durch die von dem Makro ermittelten Items gehe, stelle ich fest

  • swLayerItems(i).layer = "" geht nicht.
  • swLayerItems(i).layer = "Layer_temp" geht
    • wenn es ihn gibt
    • nimmt aber nur selbstgemaltes oder - geschriebenes mit gemäß swLayerItemsOptions
    • nimmt keine Kanten von 3D-Modellen mit, auch wenn die auf Layern sind.

    [/list]
    Wenn es um importiertes 2D-Material geht, könnte man das Makro umbauen
    - Layer_temp anlegen
    - mit Schleife die gefundenen Elemente auf "Layer_temp" verschieben
    - Layer_temp löschen.

    Gruß, Christian

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

  • ad_man
    Mitglied
    freiberuflicher Entwicklungsing. (Fahrzeugtechnik, CSWP, CPPA))


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

    Beiträge: 1373
    Registriert: 20.12.2003

    SolidWorks 2023 SP5 mit Enterprise PDM , Windows 11, Dell Precision 3660, i7-12700K, 96 GB DDR-Ram, Quadro RTX A4000

    erstellt am: 30. Apr. 2024 11:26    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 Cziffra 10 Unities + Antwort hilfreich

    Da war dann wohl meine Interpretation von "remove" wohl etwas
    zu gewagt 

    Ansonsten kann ich Christian nur zustimmen, das Ganze mit einem
    "Temp-Layer" zu machen. Ich habe in der API-Hilfe nichts adäquates
    gefunden um "kein" Layer zuzuweisen.

    ------------------
    ==========
    Gruß
    Andreas
    ==========

    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