Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Lisp
  Name Linientyp automatisch vor Layername schreiben

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 Autodesk Produkte
Autor Thema:  Name Linientyp automatisch vor Layername schreiben (332 / mal gelesen)
Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 198
Registriert: 31.01.2020

Windows 10 Pro - 64-Bit -
Lenovo Thinkstation P520 -
Intel Xeon W-2255 CPU @ 3.70 GHz 10 Kerne -
3x32GB DDR4 RAM @ 2933 MHz -
WD Blue SN570 SSD 1000GB -
Samsung MZVLB512HAJQ-000L7 SSD 500GB -
NVIDIA Quadro P2200 5GB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2019 -
Revit 2018+2019+2020+2021+2022

erstellt am: 22. Apr. 2023 14: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

Hallo zusammen.

Ich suche nach einer Möglichkeit, den Linientyp der Objekten direkt zugewiesen ist, vor den Layernamen zu schreiben.
Des weiteren wäre es schön, wenn ich dies auch für Layernamen machen könnte die auf vonLayer stehen und einen Linientyp im Layermanager zugewiesen haben.

Code:
Alle Objekte auf dem Linientyp VERDECKT2 werden auf den Layer _VERDECKT2 gelegt / Der Layer _VERDECKT2 wird auf Farbe 8 gelegt / Der Layer _VERDECKT2 wird auf den Linientyp VERDECKT2 gelegt / Alle Objekte auf dem Layer _VERDECKT2 werden auf den Linientyp VonLayer gelegt

(if (ssget "_X" (list '(6 . "VERDECKT2")(cons 410 (getvar 'CTAB))))(command "_.-LAYER" "_Make" "_VERDECKT2" "_Color" "8" "_VERDECKT2" "_Ltype" "VERDECKT2" "_VERDECKT2" "" "_.CHPROP" "_P" "" "_LAYER" "_VERDECKT2" "_LTYPE" "VonLayer" ""))


Hier hätte ich eine Lösung wie ich alles auf einen Layer bekomme.

Ziel wäre es wie folgt aufzubauen:
-Prüfe auf welchen Layern Objekte mit Linientyp VERDECKT2 liegen
-Nehme diese Layer und schreibe den entsprechenden Linientyp-Namen vor den Layernamen.
-Lege dann alle Objekte, die den Linientyp VERDECKT2 haben, und auf LAYERNAME1 liegen auf den Layer VERDECKT2_LAYERNAME1

Ich denke es wäre leicht zu lösen, habe aber irgendwie ein hängerchen in den Hirnwindungen.

Vielleicht kann mir einen von euch auf die Sprünge helfen.

Ich freu mich auf eure Vorschläge und wünsche ein schönes WE.

------------------
Gruß
Manuel

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

Meldin
Mitglied



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

Beiträge: 387
Registriert: 15.07.2011

ACA2020
Windows10

erstellt am: 23. Apr. 2023 12:44    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 Manuel486 10 Unities + Antwort hilfreich

Meinst due so etwa?
Code:
(while (setq LTYPEdat (tblnext "LTYPE" (null LTYPEdat)))
  (setq LTYPEname    (cdr (assoc 2 LTYPEdat))
NewLayername (strcat (cdr (assoc 2 LTYPEdat)) "_Layernamen1")
  )
  (if (setq SS-LTYPEdat
    (ssget
      "_X"
      (list (cons 6 LTYPEname) (cons 410 (getvar 'CTAB)))
    )
      )
    (command "_.-LAYER"   "_Make" NewLayername  "_Color"
    "8"   NewLayername "_Ltype"      LTYPEname
    NewLayername  "" "_.CHPROP"    "_P"
    SS-LTYPEdat  "" "_LAYER"      NewLayername
    "_LTYPE"   "VonLayer" ""
    )
  )
)

------------------
Gruß Wolfgang

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

archtools
Mitglied



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

Beiträge: 838
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 24. Apr. 2023 10: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 Manuel486 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Manuel486:

Vielleicht kann mir einen von euch auf die Sprünge helfen.



Code:

(defun at-subst (ntok lst / temp)
  (cond
    ((not lst)
    (list ntok)  ; lst existiert nicht
    )
    ((not (assoc (car ntok) lst))
    (reverse (cons ntok (reverse lst)))      ; assoc existiert noch nicht, hinten dran
    )
    ( 'T
      (subst ntok (assoc (car ntok) lst) lst)  ; assoc existiert schon, ersetzen
    )
  )
)

(defun ss->list (sset / eset counter)
  (setq counter 0)
  (if (= 'PICKSET (type sset))
    (repeat (sslength sset)
      (setq eset (cons (ssname sset counter) eset)
            counter (1+ counter)
      )
    )
  )
  eset
)

(defun ssmodent (ename dxf val)
  (entmod (at-subst
            (cons dxf val)
            (entget ename)
          )
  )
)

(defun c:test ()
  (foreach en (ss->list (ssget "X" '((0 . "LINE"))))
    (setq el (entget en)
          la (cdr (assoc 8 el))
    )
    (if (setq lt (cdr (assoc 6 el)))
      (ssmodent en 8 (strcat lt "-" la))
    )
  )
)


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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 198
Registriert: 31.01.2020

Windows 10 Pro - 64-Bit -
Lenovo Thinkstation P520 -
Intel Xeon W-2255 CPU @ 3.70 GHz 10 Kerne -
3x32GB DDR4 RAM @ 2933 MHz -
WD Blue SN570 SSD 1000GB -
Samsung MZVLB512HAJQ-000L7 SSD 500GB -
NVIDIA Quadro P2200 5GB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2019 -
Revit 2018+2019+2020+2021+2022

erstellt am: 24. Apr. 2023 13: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


23-04-24_Layerstruktur.JPG

 
Das ist genau was ich geschrieben habe.
Macht auch was es soll.
Jetzt habe ich mich etwas doof ausgedrückt.

Layername1 war natürlich nur ein Beispiel.
Der Layername müsste auch wie der Linientyp ausgelesen werden.

Bei der aktuellen Layerstruktur hätte ich dann z.B.

STRICHPUNKT2_Achsen.dwg
STRICHPUNKT2_Treppen.dwg
VERDECKT2_Achsen.dwg
VERDECKT2_Treppen.dwg

usw.

------------------
Gruß
Manuel

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

CADwiesel
Moderator
CAD4FM UG




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

Beiträge: 1971
Registriert: 05.09.2000

AutoCAD, Bricscad
Wir machen das Mögliche unmöglich

erstellt am: 24. Apr. 2023 14:23    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 Manuel486 10 Unities + Antwort hilfreich

dann nimm das von archtools

------------------
Gruß
CADwiesel
Besucht uns im CHAT

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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 198
Registriert: 31.01.2020

Windows 10 Pro - 64-Bit -
Lenovo Thinkstation P520 -
Intel Xeon W-2255 CPU @ 3.70 GHz 10 Kerne -
3x32GB DDR4 RAM @ 2933 MHz -
WD Blue SN570 SSD 1000GB -
Samsung MZVLB512HAJQ-000L7 SSD 500GB -
NVIDIA Quadro P2200 5GB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2019 -
Revit 2018+2019+2020+2021+2022

erstellt am: 24. Apr. 2023 15:42    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

Das läuft wie gewünscht. Danke. 
Jetzt fällt mir nur auf, dass Continuos natürlich sehr oft vorkommt.
Wenn er Continuos nicht berücksichtigt, wäre es perfekt.

------------------
Gruß
Manuel

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

archtools
Mitglied



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

Beiträge: 838
Registriert: 09.10.2004

Entwickler für AutoCAD, BricsCAD u.a., alle Systeme

erstellt am: 24. Apr. 2023 15:53    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 Manuel486 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Manuel486:
Das läuft wie gewünscht. Danke.  
Jetzt fällt mir nur auf, dass Continuos natürlich sehr oft vorkommt.
Wenn er Continuos nicht berücksichtigt, wäre es perfekt.


Na, das wirst Du wohl selbst hinbekommen ...

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

Manuel486
Mitglied
Technischer Zeichner Elektro


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

Beiträge: 198
Registriert: 31.01.2020

Windows 10 Pro - 64-Bit -
Lenovo Thinkstation P520 -
Intel Xeon W-2255 CPU @ 3.70 GHz 10 Kerne -
3x32GB DDR4 RAM @ 2933 MHz -
WD Blue SN570 SSD 1000GB -
Samsung MZVLB512HAJQ-000L7 SSD 500GB -
NVIDIA Quadro P2200 5GB -
Elgato Stream Deck 15 Tasten -
AutoCAD MEP 2019 -
Revit 2018+2019+2020+2021+2022

erstellt am: 25. Apr. 2023 09: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

Da hast du recht, dafür reicht es gerade noch.
Das war Quasi ein Memo an mich selbst. 

Habe auch ein paar mehr Objekte hinzugefügt.

Code:
(foreach en (ss->list (ssget "X" '((0 . "LINE,LWPOLYLINE,POLYLINE,CIRCLE,TEXT")(-4 . "<NOT")(6 . "Continuous")(-4 . "NOT>"))))

Vielen dank nochmal an alle für die schnelle Hilfe. 

------------------
Gruß
Manuel

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