Zitat:
Original erstellt von Guijlen:
Hallo,ich bin leider ziemlicher AutoLISP Neuling. Das erstellen einiger Shortcuts funktioniert bei mir ganz gut.
Nun wollte ich einen Shortcut erstellen, um den Linientyp eines Layers zu ändern bzw. neu zu setzen.
Konkret will ich den Layer "E Trassenabschnitt Freileitungen" auf den Linientyp "VonLayer" setzen.
Meine Idee war Folgende:
(defun c c()
(command "CLAYER" "E Trassenabschnitt Freileitungen")
(command "E Trassenabschnitt Freileitungen" "set" "lnientyp" "VonLayer" "" "")
)
Leider funktioniert es nicht, hat jemand Hilfe?
Lade Dir von www.cadcal.de/cadcal.zip das kostenfreie CADCAL herunter, da ist eine Bibliotheksfunktion CC-MAPENT enthalten.
Mit CC-MAPENT kannst Du so ziemlich alles an einem Entity ändern, und natürlich auch Layer und Linientyp. Der Layer muss vorher nicht existieren, und er darf auch gefroren sein.
Erzeuge also Deine "Freileitung" ganz einfach mit den aktuellen Einstellungen für Layer, Linientyp usw, speichere den Enamen mit z.B. (setq en (entlast)) in einer Variablen, und rufe dann
(cc-mapent en 8 "NeuerLayer")
auf. 8 ist der DCF-Code für Layer, und Dein Entity wird danach auf dem Layer "NeuerLayer" liegen.
Ganz analog dann auch den Linientyp. Der DXF-Gruppencode lautet 6, also musst Du eingeben:
(cc-mapent en 6 "meinneuerlinientyp")
Allerdings musst Du hier vorher prüfen, ob der Linientyp in der DWG vorhanden ist, und muss den notfalls vorher nachladen.
Mit CC-MAPENT kannst Du vieles anderes machen, wie z.B. einer Blockreferenz eine andere Blockdefinition zuweisen uswusf..
Mit CC-MAPENT kannst Du auch die Eigenschaften von CALScript Objekten ändern, da gibst Du einfach statt des DXF-Codes den Namen des Parameters an, also z.B.
(cc-mapent en 'HEIGHT 2000)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP