| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: layer farbe änderen (2502 mal gelesen)
|
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 10:38 <-- editieren / zitieren --> Unities abgeben:
hallo (wiedereinmal)! ich versuche layer umzubenennen und deren farbe zu ändern: das umbenennen klappt mit hilfe von einem script aus dem forum schon tadellos: Code: Dim objLayer As AcadLayerFor Each objLayer In ThisDrawing.Layers objLayer.Name = Replace(objLayer.Name, "mwk1-0", "_lin_dick") Next
die frage ist: wie kann ich jetzt die layerfarbe - das ist doch objLayer.TrueColor gleich mit änbderen? danke! mias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Brischke Ehrenmitglied V.I.P. h.c. CAD on demand GmbH
Beiträge: 4171 Registriert: 17.05.2001 ACAD20XX, defun-tools
|
erstellt am: 01. Aug. 2007 10:55 <-- editieren / zitieren --> Unities abgeben: Nur für mias
|
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 11:08 <-- editieren / zitieren --> Unities abgeben:
ok! danke. mir macht aber vorallem probleme beides zu verknüpfen! ich würde gerne mit einer abfrage eben nach: objLayer.Name dann auch objLayer.Color ändern, da in den dateien die farbe variiert, nicht aber die layernamen! danke, mias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002 AutoCAD ACA 2018 Solidworks 2016 Sp5 Enterprise PDM 2016 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Samsung S24C650 Dell M4800
|
erstellt am: 01. Aug. 2007 11:14 <-- editieren / zitieren --> Unities abgeben: Nur für mias
|
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 11:21 <-- editieren / zitieren --> Unities abgeben:
ok danke fürs mitdenken! meine vorläufige löäsung:
Code: Dim objLayer As AcadLayer For Each objLayer In ThisDrawing.Layers If (objLayer.Name = "einri-0") Then objLayer.Name = Replace(objLayer.Name, "einri-0", "_einrichtung") objLayer.color = acBlue End If Next
lg mias
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 12:13 <-- editieren / zitieren --> Unities abgeben:
hallo! ich hab noch eine zusätzliche frage. die layerstruktur ist ein bisschen komplizierter, als ich gedacht habe. es gibt also gruppen von layern, die zusammengefügt und umbenannt werden sollen. zB. mk1-0 mk1-a mk1-b ... und die werden dann zusammengefüg zB zu _lin_dick wie kann ich also das suffix beliebig angeben. in mel wärs: objectLayer.Name = "mk1-"& % danke! mias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Stelli1 Moderator Verm.-Ing.
Beiträge: 1521 Registriert: 17.08.2005 Map 2000-2014, Rasterdesign, MapGuide, Autodesk Topobase, VS6, VS.net 2013
|
erstellt am: 01. Aug. 2007 15:10 <-- editieren / zitieren --> Unities abgeben: Nur für mias
Hallo, a) mit der replace Funktion kannst du doch Teile des Names ersetzen. b) Wenn du jedoch mehrere verschiedene Layer auf den gleichen Namen legen willst wird es wohl etwas komplexer da ein Layername nur einmal vorkommen kann. Dann müsstes du alle Elemente der Layer die wegfallen erst mal auf den endgültigen Layer setzen. Mir ist aber nicht klar was du eigentlich machen willst (a oder b). Wilfried Stelberg ------------------ Warum lisp'eln wenn's auch anders geht. www.ib-stelberg.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 16:04 <-- editieren / zitieren --> Unities abgeben:
hallo! mein problem gliedert sich in zwei teile: zum einen ist nicht der ganze dateiname mit sicherheit bekannt. allerdings werden alle layer die mit dem gleichen suffix zB mwf1-02, mwf1-03,.. mwf1.* zu einem layer zusammengefasst. das heißt: *zum einen versuch ich es zu schaffen, layer auszuwählen, die gleich beginnen *und dann muss ich diese auf einem layer zusammenfassen! danke fürs helfen und mitdenken! mias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002 AutoCAD ACA 2018 Solidworks 2016 Sp5 Enterprise PDM 2016 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Samsung S24C650 Dell M4800
|
erstellt am: 01. Aug. 2007 16:18 <-- editieren / zitieren --> Unities abgeben: Nur für mias
Hi mias, Erstelle doch einen Selection mit allen Objekten, die auf den Layer beginnend mit mwf* liegen und änderst deren Layer-Property auf den Layer, den du dafür erstellt hast. Was hat denn der Dateiname mit deinem Problem zu tun? Gruß, Carsten Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 16:29 <-- editieren / zitieren --> Unities abgeben:
das problem ist die disziplin mit den layernamen in unserem büro ;-) da gibts nämlich unterschiedliche philisophien... wenn ich also mwk* alle elemente verschiederner layer auswähle könnte ich sie auf einem neuen layer zusammenfügen und die alten mwk* löschen... kann das so klappen? und akzeptiert VBA die schreibweise mwk*? danke! mias Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Carsten1210 Mitglied staatl. geprüfter Holztechniker
Beiträge: 1357 Registriert: 24.07.2002 AutoCAD ACA 2018 Solidworks 2016 Sp5 Enterprise PDM 2016 Sp5 Pascam Woodworks Visual Studio 2017 Pro Windows 10 64Bit Dell T3620 Intel Core i7-7700K 16 GB Arbeitsspeicher 2x Samsung S24C650 Dell M4800
|
erstellt am: 01. Aug. 2007 16:39 <-- editieren / zitieren --> Unities abgeben: Nur für mias
Hi, Probiers doch mal: Code: Public Sub Layerkonv() Dim SSET As AcadSelectionSet Dim Object As AcadObject Dim FilterType(0) As Integer Dim FilterData(0) As Variant On Error Resume Next ThisDrawing.SelectionSets.Item("Layerset").Delete Set sset = ThisDrawing.SelectionSets.Add("Layerset") FilterType(0) = 8 FilterData(0) = "mwk*" sset.Select acSelectionSetAll, , , FilterType, FilterData For Each Object In sset Object.Layer = "Layerneu" 'Layer muss angelegt sein!!! Object.Linetype = "byLayer" Object.color = acByLayer Object.LinetypeScale = 1 Object.Update Next End Sub
Gruß, Carsten [Diese Nachricht wurde von Carsten1210 am 01. Aug. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
mias Mitglied
Beiträge: 23 Registriert: 30.07.2007
|
erstellt am: 01. Aug. 2007 16:42 <-- editieren / zitieren --> Unities abgeben:
|