| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | NVIDIA GTC Paris und ISC High Performance-Konferenz 2025, eine Pressemitteilung
|
Autor
|
Thema: Layer in Blöcken austauschen (1481 mal gelesen)
|
alexx Mitglied Dipl.Ing.(FH)

 Beiträge: 16 Registriert: 14.08.2003
|
erstellt am: 25. Jul. 2004 14:37 <-- editieren / zitieren --> Unities abgeben:         
Hi, Problem: alle Objekte auf Layer "x" und Layer "y" sollen in der dwg auf layer "z" gelegt werden, auch die, die in Blöcken enthalten sind! Hat jemand eine Idee, wie man in einem Block die Layer anfasst? Also nicht die Eigenschaften der im Block beinhalteten Layer, sondern die Layer im Block tatsächlich durch einen anderen existierenden Layer austauschen. Mein Code zeigt das Prozedere für "normale" Entities: Public Sub LayerKonv(anyObj, oldLayer, newLayer) If LCase(ThisDrawing.Layers.Item(anyObj.Layer).Name) = oldLayer Then 'Call ShowLayerKonv(anyObj) anyObj.Layer = newLayer End If End Sub Das funzt. Wie kann ich aber die Layer in Blöcken anfassen? Für Hilfe bin ich dankbar! Gruß Alexx
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 26. Jul. 2004 12:00 <-- editieren / zitieren --> Unities abgeben:          Nur für alexx
Hallo Alexx, anbei ein kleiner Ansatz Code: Dim BLOCKLISTE As AcadBlocks Dim BlockElem As AcadBlock Dim BlockObj As AcadEntity Dim Elem As Object Set BLOCKLISTE = ThisDrawing.Blocks For Each Elem In BLOCKLISTE On Error Resume Next Set BlockElem = Elem If Err Then Else If BlockElem.IsLayout = False Then If BlockElem.IsXRef = False Then If InStr(1, BlockElem.Name, "|") = 0 Then For Each BlockObj In BlockElem If LayerObj.Name = BlockObj.Layer Then BlockObj.Layer = LayBez & LayCol & "-" & Format(LayLT, "<") & LayWidth Next BlockObj End If End If End If End If Next Elem
ich hoffe das hilft dir weiter. ------------------ Roland Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
alexx Mitglied Dipl.Ing.(FH)

 Beiträge: 16 Registriert: 14.08.2003
|
erstellt am: 26. Jul. 2004 16:11 <-- editieren / zitieren --> Unities abgeben:         
Punktlandung. Ich bin zu höchstem Dank verpflichtet. Für normale Blöcke klappts super. Das Dumme ist nur, dass dies die Blöcke STDPART2D überhaupt nicht interessiert. Auch diese Blöcke werden vermutlich gefunden und die Routine läuft durch. Die Layer werden aber nicht umgestellt als wäre der Block schreibgeschützt. Gibt's da auch nen heißen Tipp? Muss dazusagen, bin kein Mechanical Experte, und da kommen die Dinger wohl her (oder auch aus Genius 'BlockElem.Name = "GENAXEH"') Gruß und Dank Alexx Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RoSiNiNo Mitglied Konstrukteur
   
 Beiträge: 1126 Registriert: 09.10.2002 Acad 2011-deutsch, Express Tools 3ds Max 2010 Win 7-Professional HP Workstation Z400, 6GB GeForce GTX 470
|
erstellt am: 27. Jul. 2004 06:59 <-- editieren / zitieren --> Unities abgeben:          Nur für alexx
|
alexx Mitglied Dipl.Ing.(FH)

 Beiträge: 16 Registriert: 14.08.2003
|
erstellt am: 27. Jul. 2004 08:40 <-- editieren / zitieren --> Unities abgeben:         
|