| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Alle Elemente auf Farbe Von Layer setzen (6988 mal gelesen)
|
Squall Mitglied
Beiträge: 12 Registriert: 10.11.2009 Windows Vista Home Premium SP2, 32 Bit; AMD Phenom 8450 3x2.10 GHz; 4GB RAM; NVIDIA GeForce 9400 GT; AutoCAD 2010
|
erstellt am: 07. Jul. 2010 11:18 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich habe gestern ein kleines Visual-Lisp-Script geschrieben, das alle Layer der aktuellen Zeichnung auf eine graue Farbe setzt, damit ich die Zeichnung als XRef in einer anderen als Unterlage verwenden kann. Falls jemand ebenfalls Verwendung dafür findet, stelle ich es hier zur Verfügung: Code: (vl-load-com)(defun c:layer-gray (/ layer) (vlax-for layer (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (cond ((member (vla-get-color layer) (list 16 18 19 26 28 29 36 38 39 46 48 49 56 58 59 66 68 69 76 78 79 86 88 89 96 98 99 106 108 109 116 118 119 126 128 129 136 138 139 146 148 149 156 158 159 166 168 169 176 178 179 186 188 189 196 198 199 206 208 209 216 218 219 226 228 229 236 238 239 246 248 249)) (vla-put-color layer 251)) ((member (vla-get-color layer) (list 12 14 17 22 24 27 32 34 37 42 44 47 52 54 57 62 64 67 72 74 77 82 84 87 92 94 97 102 104 107 112 114 117 122 124 127 132 134 137 142 144 147 152 154 157 162 164 167 172 174 177 182 184 187 192 194 197 202 204 207 212 214 217 222 224 227 232 234 237 242 244 247)) (vla-put-color layer 252)) ((member (vla-get-color layer) (list 1 2 3 4 5 6 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 220 225 230 235 240 245)) (vla-put-color layer 253)) ((member (vla-get-color layer) (list 11 13 21 23 31 33 41 43 51 53 61 63 71 73 81 83 91 93 101 103 111 113 121 123 131 133 141 143 151 153 161 163 171 173 181 183 191 193 201 203 211 213 221 223 231 233 241 243)) (vla-put-color layer 254)) ) ) )
Nun zu meinem eigentlichen Problem: Obwohl nach Aufruf des Scripts alle Layer eine Graustufe zugewiesen bekommen haben, ist doch noch einiges bunt: alle Elemente, bei denen eine andere Farbe als "Von Layer" gesetzt wurde, haben sich nicht verändert. Also: wie - am liebsten ebenfalls mit Visual Lisp - setze ich alle Eigenschaften aller Elemente, die etwas mit Farbe zu tun haben, auf "Von Layer"? Mit "alle Eigenschaften" meine ich nun beispielsweise auch die (Hilfs)Linien- und Textfarbe von Bemaßungen. Gruß und vielen Dank für jede Hilfe - Squall Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2010 11:26 <-- editieren / zitieren --> Unities abgeben: Nur für Squall
|
Squall Mitglied
Beiträge: 12 Registriert: 10.11.2009 Windows Vista Home Premium SP2, 32 Bit; AMD Phenom 8450 3x2.10 GHz; 4GB RAM; NVIDIA GeForce 9400 GT; AutoCAD 2010
|
erstellt am: 07. Jul. 2010 11:34 <-- editieren / zitieren --> Unities abgeben:
|
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2010 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für Squall
|
Squall Mitglied
Beiträge: 12 Registriert: 10.11.2009 Windows Vista Home Premium SP2, 32 Bit; AMD Phenom 8450 3x2.10 GHz; 4GB RAM; NVIDIA GeForce 9400 GT; AutoCAD 2010
|
erstellt am: 07. Jul. 2010 12:05 <-- editieren / zitieren --> Unities abgeben:
Mit Sternchen kann ich (zumindest in der GUI) sowieso keinen Block erzeugen, da sie zu den nicht-zugelassenen Zeichen gehören. Aber ja, nur die Blöcke zu bearbeiten funktioniert, danke. Hier der Code, habe ich einen kleinen Counter eingebaut.
Code: (vl-load-com)(defun c:layer-gray (/ block i layer object) (setq i 0) (vlax-for layer (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (cond ((member (vla-get-color layer) (list 16 18 19 26 28 29 36 38 39 46 48 49 56 58 59 66 68 69 76 78 79 86 88 89 96 98 99 106 108 109 116 118 119 126 128 129 136 138 139 146 148 149 156 158 159 166 168 169 176 178 179 186 188 189 196 198 199 206 208 209 216 218 219 226 228 229 236 238 239 246 248 249)) (progn (vla-put-color layer 251) (setq i (+ i 1)) ) ) ((member (vla-get-color layer) (list 12 14 17 22 24 27 32 34 37 42 44 47 52 54 57 62 64 67 72 74 77 82 84 87 92 94 97 102 104 107 112 114 117 122 124 127 132 134 137 142 144 147 152 154 157 162 164 167 172 174 177 182 184 187 192 194 197 202 204 207 212 214 217 222 224 227 232 234 237 242 244 247)) (progn (vla-put-color layer 252) (setq i (+ i 1)) ) ) ((member (vla-get-color layer) (list 1 2 3 4 5 6 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120 125 130 135 140 145 150 155 160 165 170 175 180 185 190 195 200 205 210 215 220 225 230 235 240 245)) (progn (vla-put-color layer 253) (setq i (+ i 1)) ) ) ((member (vla-get-color layer) (list 11 13 21 23 31 33 41 43 51 53 61 63 71 73 81 83 91 93 101 103 111 113 121 123 131 133 141 143 151 153 161 163 171 173 181 183 191 193 201 203 211 213 221 223 231 233 241 243)) (progn (vla-put-color layer 254) (setq i (+ i 1)) ) ) ) ) (princ (strcat (itoa i) " Layer veraendert\n")) (setq i 0) (vlax-for block (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object) ) ) (vlax-for object block (if (/= (vla-get-color object) 256) (progn (vla-put-color object 256) (setq i (+ i 1)) ) ) ) ) (princ (strcat (itoa i) " Objekte veraendert\n")) (princ) )
Danke nochmals für die Hilfe. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |