Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Farbe über alles wechseln

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:  Farbe über alles wechseln (1789 mal gelesen)
bushcruiser
Mitglied
Informatik

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

Beiträge: 4
Registriert: 11.10.2005

erstellt am: 11. Okt. 2005 20:36    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

Ich möchte gerne meine komplette Zeichnung in eine einheitliche Farbe wechseln, zum Beispiel in weiss. Mit diesem Code erreiche ich fast alles, aber die Farbe, die sich in einem Block oder Block in Block befindet kann ich nicht ändern.
Wie kann ich eine Farbe über alle Blöcke hinweg, ohne diese auflösen zu müssen ändern.
Für alle Infos bin ich sehr dankbar.

                ents = myDoc.ModelSpace
                ct = ents.Count - 1
                Do Until ct = 0
                    ent = ents.Item(ct)
                    ent.Color = FarbNummer
                    ent.Update()
                    ct = ct - 1
                Loop


Gruss bushcruiser


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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 14. Okt. 2005 00:12    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 bushcruiser 10 Unities + Antwort hilfreich

Ein piece...
Ist ja immer willkommen, aber hier kannst du ruhig mal erwähnen, in welcher API und in welcher Sprache das so gedacht ist;-)

OK, C++ isses nicht, auch kein Java oder C#, da fehlen die ';' am Zeilenende. Lisp kann's auch nicht sein, kaum runde Klammern drin, und für Brainfuck ist es zu buchstabenhaltig. Na ja, dann scheiden wir noch Delphi, Python, Perl und PHP aus, und was bleibt übrig? Visual Basic?

Wenn das Visual Bsic ist, dann fehlt das eine oder andere 'Dim'. Das mag zwar in VB6 funktioniert haben, aber hier nicht mehr - VB7 ist streng typisiert (Variants gibt es nicht mehr).

Gruß, Axel Strube-Zettler

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

bushcruiser
Mitglied
Informatik

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

Beiträge: 4
Registriert: 11.10.2005

erstellt am: 14. Okt. 2005 13:59    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

Tschuldigung wenn meine Frage nicht ganz rüber gekommen ist…..
Ich möchte einem DWG alles auf eine einheitliche Farbe bringen, also auch Block Block Verschachtelungen.
Was mich interessieren würde, ist die Schlaufe, wie man zu den Blöcken vordringen kann! Aus diesem Grund habe ich auch nur die Schlaufe, die ich jetzt verwende gepostet und das ohne jegliche Deklarationen.
Diese Schlaufe ist in VB.NET gemacht, kann es mir aber auch in C# vorstellen.
Das Endprodukt, sollte dann ein dll sein, mit dem es durch Eingabe im Autocad in der command line mit dem command colorchange und Farbnummer, das gesamte DWG auf die entsprechende Farbnummer gewechselt wird.
Besten Dank für eure Hilfe

Bushcruiser

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 15. Okt. 2005 11:25    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 bushcruiser 10 Unities + Antwort hilfreich

So einfach ist das nicht - da braucht es schon einige 'Schlaufen' mehr;-) Am besten orientierst du dich einfach an einem Programm, das die ganze Zeichnung bis in die innersten Ecken durchkämmt - bei den hier geposteten  Adesk-Samples ist einiges dabei.

Ich muss allerdings doch mal die Fage stellen: Macht das Ganze denn irgendeinen Sinn? Wozu ein größerer Programmieraufwand, nur um eine Zeichnung zu zerstören? Im Endeffekt werden Zeichnungen doch geplottet, und da würde es reichen, alle Farben auf schwarz zu stellen. Für mich liegt die Frage auf einer Linie mit "Wie zerschieße ich alle Blöcke" oder "Wie kriege ich alles auf einen Layer" usw. - alles Dinge, die die Welt nicht braucht.

Gruß, Axel Strube-Zettler 

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

bushcruiser
Mitglied
Informatik

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

Beiträge: 4
Registriert: 11.10.2005

erstellt am: 15. Okt. 2005 16:48    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 Axel

Sinn oder Unsinn, das ist eine gute Frage!
Wenn es eine bessere Lösung geben würde wäre ich dir auch dankbar.
Das Problem ist folgender massen.
Ich bekomme Pläne vom Architekten, die sind in den meisten Fällen ziemlich farbig.
Ich als Sanitär, Heizung oder Elektrozeichner, brauche die Pläne als XRef hinter meinen Plänen. Alle Leitungen Apparate oder Rohre haben andere Farben die ich dann entsprechend ausplotten möchte, das XRef vom Architekten sollte aber in einheitlicher Farbe sprich weiss oder grau ausgeplottet werden. Schon beim Zeichnen ist es viel übersichtlicher, wenn das XRef einheitlich in weiss daherkommt. Meine Farben die geplottet werden und die des XRef die als einheitliche Farben daherkommen müssen sind durchaus die selben Farbnummern.
Blöcke zerschiessen ist leider auch nicht eine gute Lösung, da ja bekanntlich aus Attribut Texten nach dem auflösen nur noch so komische Zeichen im Plan rumstehen.
Das ist so zirka das Problemchen, was ich zu lösen habe.
Wenn es möglich wäre das ganze XRef auf einen Layer zu kippen, und dem eine Farbe zuzuweisen wäre das auch Toll nur ist dann der Plan immer noch ziemlich farbig, weil der Architekt meistens ein Künstler ist und bestimmt nicht Farbe von Layer wählt sonder sich die Farben möglichst überall und in jedem Block fantasievoll gestaltet.

Wenn du eine andere Lösung für mein Problem hättest, damit ich nicht ins Herz vom DWG vordringen müsste, wäre ich dir sehr dankbar.

Gruss Bushcruiser

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

Stelli1
Ehrenmitglied
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign
MapGuide
autodesk Topobase 2-2014
VS6, VS.net 2010

erstellt am: 17. Okt. 2005 18:17    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 bushcruiser 10 Unities + Antwort hilfreich

Hallo,

Sieht doch wie VBA,VB6 oder VB.net aus.
häng doch noch eine Schleife für die Blöcke dran und fertig

Code:

For Each BlockDef In myDoc.Blocks
    If BlockDef.IsLayout = False Then
        For Each BlockEnt In BlockDef
            BlockEnt.Color = acWhite
        Next BlockEnt
    End If
Next block

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 17. Okt. 2005 20:32    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 bushcruiser 10 Unities + Antwort hilfreich

Nee, nee, so einfach isses nich...

VB.NET ist nicht VB oder VBA - es ist eine andere Sprache, auch wenn es 'so aussieht'.

Man kann allerdings auch über die COMInterop-Mechanismen des .NET-Frameworks die AutoCAD-COM-API verwenden, genauso wie in Lisp oder VBA. Wie man die Brücke zwischen dem Framework und der COM-Api schlägt, ist in einigen Beispielen drin, die hier im Forum stehen, z.B. auch in meinem Systemvariablen-Beispiel.

Aber nun muss ich doch mal Stellis Signaturspruch aufgreifen: Warum sowas über .NET, wenn das in Lisp ein Fünfzeiler ist? Ich denke, das mit etwas Such-Anstrengung im Lisp-Forum oder auch bei CADWiesel eine fertige Lösung gefunden wird. Ich habe sowas auch schon tausendmal geschrieben, aber mein Rechner ist kürzlich abgeraucht, und noch liegt alles irgendwo auf Backup-CDs. Und nun schleicht er sich schon wieder aus dem Zeitgeschehen. Morgen kommt ein neuer;-)

Wenn's in Lisp 5 Zeilen sind, dann geht's in VBA erfahrungsgemäß mit 50. Oder 100;-)))) in VB.NET oder C# kommt dann eben noch ein bisschen Overhead dazu...

Ach so: Die Gründe für die Vorgehensweise sind für mich mit dieser Begründung durchaus akzeptabel. Ich frag halt immer mal, weil ich hier auch schon viele völlig bekloppte Ideen gesehen habe;-)

Falls du nix findest, noch mal melden!

Gruß, Axel

 

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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

bushcruiser
Mitglied
Informatik

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

Beiträge: 4
Registriert: 11.10.2005

erstellt am: 17. Okt. 2005 21:32    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

wow

Genau was ich gesucht habe. Mit diesem Teil kann ich sehr gut leben, nur noch auf meine Bedürfnisse anpassen und fertig.

Besten Dank und Gruss

Bushcruiser

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

Stelli1
Ehrenmitglied
Verm.-Ing.


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

Beiträge: 1521
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign
MapGuide
autodesk Topobase 2-2014
VS6, VS.net 2010

erstellt am: 18. Okt. 2005 13:16    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 bushcruiser 10 Unities + Antwort hilfreich

Hallo mapcar,
Hallo

Wenn man in VB genauso eine Wurst wie in lisp erzeugt sind's wohl doch nicht so viele Zeilen. Aber Mapcar hat recht das der Aufwand mit VB.net wohl zu hoch ist. Läuft nur wo net Framework installiert ist etc.

Hier noch die komplette VBA Lösung

Code:

Sub EsWerdeDunkel()
    Dim Entity As AcadEntity, Blockdef As AcadBlock, Blockref As AcadBlockReference
    For Each Entity In ThisDrawing.ModelSpace:  Entity.Color = 254: Next Entity
   
    For Each Blockdef In ThisDrawing.Blocks
        If Blockdef.IsLayout = False Then For Each Entity In Blockdef: Entity.Color = 254: Next Entity
    Next Blockdef
End Sub


Läßt man noch die Deklaration weg und schiebt die untere Schleife zusammen wär's zwar gar nicht mehr lesbar aber halt nur 4 Zeilen.

Stelli

------------------
Warum lisp'eln wenn's auch anders geht.

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

mapcar
Mitglied
CADmin



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

Beiträge: 1250
Registriert: 20.05.2002

Time flies like an arrow, fruit flies like a banana (Groucho Marx)

erstellt am: 20. Okt. 2005 08:20    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 bushcruiser 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von bushcruiser:
wow Genau was ich gesucht habe. Mit diesem Teil ...

Öh, welches Teil denn? Was hast du wo gefunden?

Gruß, Axel

------------------
Meine AutoLisp-Seiten Mein Angriff auf dein Zwerchfell Mein Lexikon der Fotografie Mein gereimtes Gesülze

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