Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Farbe ändern in einer Blockreferenz

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
  
PNY: der unverzichtbare Partner für umfassende KI-Lösungen von Workstations bis zu Edge Computing und KI-Cluster-Bereitstellung, eine Pressemitteilung
Autor Thema:  Farbe ändern in einer Blockreferenz (4773 mal gelesen)
Frank136
Mitglied



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

Beiträge: 45
Registriert: 06.04.2009

P4 WinXP Acad2004,2005,2008 Office2003

erstellt am: 24. Apr. 2009 15:30    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 Forum-teilnehmer ,
eine letzte Frage vorm Wochenende hätte ich noch:

Wie kann ich die Farbe eines Objektes ändern, welches in einer Blockreferenz eingefügt ist? Natürlich aus VBA raus...

Danke im Vorraus

Frank

------------------
Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen...

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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 24. Apr. 2009 15:52    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 Frank136 10 Unities + Antwort hilfreich

Hallo Frank,
Da mußt Du schon genauer fragen!
Wie ist der Block erzeugt?
Besteht er nur aus Zeichnungselementen?
Hängen noch Attribute daran?
Verschachtelter Block?
Möchtest Du nur die Farbe eines eingefügten Blockes (Blockref) ändern?
Oder alle Blöcke mit gleichem Namen?
Manchmal hilft es wenn man einen Codeschnipsel einfügt, der (noch) nicht funktioniert oder wenn man eine Beispielzeichnung anhängt.
Aber so 

Grüße,
Klaus

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

Stelli1
Moderator
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: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 24. Apr. 2009 16:47    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 Frank136 10 Unities + Antwort hilfreich

Hallo Frank,

vielleicht hilft dir das schon.

Was macht das andere Problem, du hattest keine Rückmeldung gegeben.

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

Frank136
Mitglied



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

Beiträge: 45
Registriert: 06.04.2009

P4 WinXP Acad2004,2005,2008 Office2003

erstellt am: 24. Apr. 2009 17:19    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 Klaus,
wow, das sind ja gleich 6 Wünsche auf einmal! Dann werd ich mal...

Ich hab mir bis jetzt eine Blockdefinitionen erstellt und in die hab ich nur ein farbiges Rechteck(Polylinie) eingefügt. Ein Attribut hängt auch noch an der Blockdefinition.
Jetzt möchte ich mehrere Blockreferenzen in die Zeichnung einfügen, wobei die Rechtecke in den Referenzen unterschiedliche Farben haben sollen. Und als Krönung möchte ich bei jeder Referenz noch das Attribut ändern, was aber schon funktioniert.

kleiner Ausschnitt aus meinem Code:

Dim Blo1 As AcadBlock                      'Blockdefinition
Dim BloRef As AcadBlockReference            'Blockreferenz
Dim Rechteck1 As AcadPolyline              'Modul als Polylinie
Dim Epkt1(0 To 2) As Double                'Einfügepunkt der Blockreferenz
Dim Epkt3(0 To 14) As Double                'Eckpunkte des Rechtecks
Dim Epkt5(0 To 2) As Double                'Einfügepunkt der Blockreferenz
Dim Attri As AcadAttribute                  'Attribut
Dim varAttri1 As Variant                    'Array, wo Attribute reingeschrieben werden

Epkt1(0) = -10 + X-Versatz: Epkt1(1) = 10+ Y-Versatz: Epkt1(2) = 0  'variabler Einfügepunkt der Blockdefinition

Epkt3(0) = -10: Epkt3(1) = 10: Epkt3(2) = 0  'Ergeben ein Rechteck 1mtr x 1.5mtr
Epkt3(3) = -9 Epkt3(4) = 10: Epkt3(5) = 0
Epkt3(6) = -9 : Epkt3(7) = 8.5: Epkt3(8) = 0
Epkt3(9) = -10: Epkt3(10) = 8.5: Epkt3(11) = 0
Epkt3(12) = -10: Epkt3(13) = 10: Epkt3(14) = 0

Epkt5(0) = 20: Epkt5(1) = 5: Epkt5(2) = 0    'Einfügepunkt der Blockreferenz

'ersten Block erstellen
Set Blo1 = ThisDrawing.Blocks.Add(Epkt1, "Modul")
'Modul in Block einfügen
Set Rechteck1 = Blo1.AddPolyline(Epkt3)
'Modulfarbe auf ROT ändern
    Rechteck1.color = 10
'Attribut an Block anhängen
Set Attri = Blo1.AddAttribute(1, mode, "", Epkt1, "ModulDaten", 0)

In einer For-Schleife:
'Blockreferenz einfügen
    Set BloRef = ThisDrawing.ModelSpace.InsertBlock(Epkt5, "Modul", 1, 1, 1, 0)
'Attribute auslesen
    varAttri1 = BloRef.GetAttributes
'Attribute für neues Modul anpassen
    varAttri1(0).TextString = variable Zahl

Ende vom Code!

Wie bekomme ich die Farbe des "Moduls" in der Blockreferenz geändert???

gruß  Frank

------------------
Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen...

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

Stelli1
Moderator
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: 1526
Registriert: 17.08.2005

Map 2000-2014, Rasterdesign,
MapGuide, Autodesk Topobase,
VS6, VS.net 2013

erstellt am: 24. Apr. 2009 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 Frank136 10 Unities + Antwort hilfreich

Hallo Frank,

du sollest dir nochmal anschauen wie man am besten Blöcke definiert.
Stichwort: Layer "0" und Farbe "vonBlock"

So wie du deinen Block definiert (Blockdefinition) hast wird das Rechteck, unabhängig davon was du als Eigenschaften für dein Insert (Blockreferenz), immer die Farbe 10 haben.
Wenn du die Farbe 0 (ent.color=0 'vonLayer) verwendest, wird dein Rechteck die Farbe annehmen die der Layer hat auf dem der Block eingefügt wurde.
Wenn du die Farbe 256 (ent.color=256 'vonBlock) verwendest, wird dein Rechteck die Farbe annehmen die beim Einfügen des Blockes aktuell ist bzw. die du der Blockreferenz als Color Eigenschaft zuweist.

Ich würde vonBlock verwenden. So hast du alle Möglichkeiten,
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

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 24. Apr. 2009 21: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 Frank136 10 Unities + Antwort hilfreich

Da war Wilfried mal wieder schneller und hat es wie immer schnell und präzise auf den Punkt gebracht    

Bleibt mir nur der Hinweis auf die FAQ: Blöcke und FAQ: Blöcke: Objekteigenschaften und deren Auswirkungen in Blöcken

Vielleicht noch ein Hinweis: Es ist nie verkehrt, vor einem bloRef.GetAttributes zu prüfen ob der Block überhaupt Attribute hat ( if bloRef.HasAttributes then ..)

Grüße,
Klaus

PS.: Es ist immer schön, und für andere Threatleser hilfreich, eine Rückmeldung zu bekommen, ob es geholfen hat.

[Diese Nachricht wurde von KlaK am 24. Apr. 2009 editiert.]

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

Frank136
Mitglied



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

Beiträge: 45
Registriert: 06.04.2009

P4 WinXP Acad2004,2005,2008 Office2003

erstellt am: 25. Apr. 2009 14:11    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,
ich hab das mit der Farbe 'vomBlock mal probiert, aber irgendwie funktioniert das noch nicht so ganz...

Beim Erstellen der Blockdefinition habe ich dem Rechteck die Farbe 256 zugewiesen:  Rechteck1.color = 256

Wenn ich nun eine Blockreferenz einfüge und sage: Rechteck1.color = 10 , dann macht er mir das Rechteck auch rot.
Ich jetzt aber noch einmal die gleiche Blockreferenz einfügen mit einem grünen Rechteck, das funktioniert bei mir nicht.
Ich kann zwar Rechteck1.color = 90 vorgeben, aber er macht mir weiterhin ein rotes Rechteck.
Kann man da was machen oder sollte ich mir ne zweite Blockdefinition anlegen mit ner anderen Farbe?

gruß Frank

------------------
Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen...

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


Ex-Mitglied

erstellt am: 25. Apr. 2009 15:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

byBlock ist ColorIndex 0 (und nicht 256)

- alfred -

------------------
www.hollaus.at

KlaK
Ehrenmitglied V.I.P. h.c.
Dipl. Ing. Vermessung, CAD- und Netz-Admin



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

Beiträge: 2855
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2025
Plateia, Canalis
Visual Basic

erstellt am: 27. Apr. 2009 09:35    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 Frank136 10 Unities + Antwort hilfreich

Hallo,
Du mußt unterscheiden zwischen Blockdefinition und Blockreferenz.
In der Blockdefinition stellst Du ein wie der Block erscheinen soll.
Dort also Rechteck.color=0 (byBlock)
Beim Einfügen stellst Du ein wie der Block gezeichnet werden soll
Dort als BloRef.color = 90

Grüße,
Klaus

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

Frank136
Mitglied



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

Beiträge: 45
Registriert: 06.04.2009

P4 WinXP Acad2004,2005,2008 Office2003

erstellt am: 27. Apr. 2009 10:04    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,

es funktioniert! 

Danke für die Hilfe!!!
gruß Frank

------------------
Wenn das Wasser bis zum Hals steht, sollte man den Kopf nicht hängen lassen...

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)2025 CAD.de | Impressum | Datenschutz