Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Entities neuen Layer zuweisen

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:  Entities neuen Layer zuweisen (1141 mal gelesen)
Charly Setter
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 11988
Registriert: 28.05.2002

erstellt am: 30. Apr. 2006 23:29    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

Moin.

Heute mal eine (wahrscheinlich dumme) Frage von einem Acad-VBA Rookie 

Ich möchte einzelnen Zeichnungselementen einen neuen Layer zuweisen. Dazu habe ich folgenden Ansatz:

1. Die Zeichnungselemente finde ich in der Collection "ThisDrawing.ModelSpace.Item(0...Count-1).
2. Die Elemente dieser Collection haben den Typ AcadEntity
3. Der Layer wird bestimmt durch den Wert der Eigenschaft "Layer" vom Typ string.

So weit, so gut. Ich kann der Eigenschaft Layer auch neue Werte zuweisen (z.B. "0" oder "test", beide Layer sind in der Zeichnung definiert). Die neuen Werte werden auch eingetragen (Überprüfung via Debug.Print).

Allerdings spiegelt sich diese Änderung nicht in der Zeichnung wieder. D.h.: Die Zeichnungselemente liegen weiterhin auf den alten Layern, wenn ich das Makro erneut durchlaufen lasse, werden mir die geänderten Werte ausgegeben 

Was habe ich vergessen, bzw. wo liegt mein Gedankenfehler

Danke

Mathias

------------------
Der vernünftige Mensch paßt sich der Welt an;
der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.

Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab.
(George Bernard Shaw)

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

Carsten1210
Mitglied
staatl. geprüfter Holztechniker


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

Beiträge: 1360
Registriert: 24.07.2002

AutoCAD ACA 2024
Solidworks 2022 Sp5
Enterprise PDM 2022 Sp5
Pascam Woodworks
Visual Studio 2017 Pro
Windows 10 64Bit
Dell Precision 3660
Intel Core i9-12900K
32 GB Arbeitsspeicher
2x Dell U2415

erstellt am: 01. Mai. 2006 10:03    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 Charly Setter 10 Unities + Antwort hilfreich

Hallo Mathias,

Probier folgenden Code aus und vergleiche ihn mit deinem:

Public Sub test()
Dim Object As Object
Dim promt As String
Dim Pickedpoint As Variant
On Local Error Resume Next
promt = "Bitte 1 Objekt wählen:"
Utility.GetEntity Object, Pickedpoint, promt
If TypeName(Object) <> "Nothing" Then
Object.Layer = "NeuerLayer"
    MsgBox Object.ObjectName
End If
End Sub

Es wird ein Objekt ausgewählt und dem Objekt wird der Layer "NeuerLayer" zugewiesen. Das funktioniert auch beim ersten Durchlauf.
Ausserdem gibt hier eine Messagebox den Namen des Objekts aus.

Wenn du weiterhin Probleme mit deinem Code hast, poste ihn einfach hier.

Gruß, Carsten

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

Charly Setter
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 11988
Registriert: 28.05.2002

erstellt am: 01. Mai. 2006 11:27    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

Danke Carsten.

Hab mir das heute morgen noch mal vorgenommen und es funktioniert jetzt (zumindest mit synthetischen Daten). Wie´s mit den richtigen Daten aussieht, werde ich dann später sehen. 

Manchmal hilft´s doch, wenn man etwas weniger müde ist und die Streichhölzer aus den Augen nehmen kann 

CUSee You

------------------
Der vernünftige Mensch paßt sich der Welt an;
der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.

Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab.
(George Bernard Shaw)

[Diese Nachricht wurde von Charly Setter am 01. Mai. 2006 editiert.]

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