Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  AutoCAD ObjectARX und .NET
  Allg. Fragen zu Layer isFrozen isLocked und trans.commit

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:  Allg. Fragen zu Layer isFrozen isLocked und trans.commit (1919 mal gelesen)
Gloem
Mitglied
Geoinformatiker


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

Beiträge: 179
Registriert: 07.12.2007

Windows 10 - 64 Bit, mindestens 16 GB RAM
<P>AutoCAD Map 2020, VBA, Dot-Net

erstellt am: 01. Dez. 2009 20:53    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 bislang bei meinen Programmierungen so rein gar nicht darauf geachtet ob der Layer mit dem ich gearbeit habe gesperrt oder gefroren ist. Nun musste ich aber leider merken, dass es jedoch in bestimmten Fällen wichtig wäre darauf zu achten:

Z.B. werden bei einem Durchlauf über alle BlockTableRecord und dann allen Objekten und openMode.ForWrite diejenigen nicht beachtet die auf einem gesperrten Layer sind.

Ich meine es auch mal hinbekommen zu haben das der aktuelle Layer gesperrt war, ich aber dennoch per .net Elemente anlegen konnte.

Gibt es noch andere Fälle auf die man zwingend achten sollte? Kann mir vielleicht jemand eine Hilfe empfehlen in der diese Fälle und auch andere Fälle beschrieben sind? Gibt es vielleicht eine Funktion in der ein Zustand eines Layers gespeichert werden kann und nach einer Aktion wieder hergestellt werden kann?

In dem Buch "VB.Net Programming for AutoCAD Cusomization" und in den Beschreibungen von AutoCAd hab ich dazu aber leider nix gefunden.

Code:
                While blockTableEnumerator.MoveNext
                    Dim block As BlockTableRecord = blockTableEnumerator.Current.GetObject(OpenMode.ForRead)
                    Dim blockEnumerator As BlockTableRecordEnumerator = block.GetEnumerator
                    While blockEnumerator.MoveNext
                        Dim entity As Entity = blockEnumerator.Current.GetObject(OpenMode.ForWrite)

                        If (entity.GetType().FullName = "Autodesk.AutoCAD.DatabaseServices.DBText") Then
                            Dim text As DBText = entity
                            ' Prüfen ob die z-Position außerhalb des Toleranzbereiches liegt
                            If (Math.Round(text.Position.Z, toleranceDigits) <> text.Position.Z) Then
                                ' Holen des Layers auf dem das Objekt liegt - Schreibrechte
                                Dim layer As LayerTableRecord = trans.GetObject(layerTable(text.Layer), OpenMode.ForWrite)

                                Dim layerWasLocked As Boolean = layer.IsLocked
                                If (layer.IsLocked) Then
                                    layer.IsLocked = False
                                    trans.Commit()
                                End If

                                text.Position = New Point3d(text.Position.X, text.Position.Y, Math.Round(text.Position.Z, toleranceDigits))

                                If (layerWasLocked) Then
                                    layer.IsLocked = True
                                    trans.Commit()
                                End If

                            End If
                        End If
                    End While
                End While

                trans.Commit()


Muss ich das Ändern des Layerstatus eigentlich jedesmal commiten damit diese Änderung während meiner Funktion wirkung zeigt oder reicht das am Ende der Transaktion einmal

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


Ex-Mitglied

erstellt am: 01. Dez. 2009 21:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

arbeite bitte mit TransActions, das macht es zwar nicht schneller beim Schreiben des Codes, aber steuerbar, was mit Objekten auf gesperrten Layern passieren soll. Die (alte) Open-Methode lässt dies leider imho nicht zu.

Wenn Du ein Objekt mit TransAction zum Bearbeiten öffnest, dann lt. diesem Syntax aus Hilfe

Code:
Public virtual Function GetObject(
    id As ObjectId,
    mode As Autodesk.AutoCAD.DatabaseServices.OpenMode,
    openErased As [MarshalAs(UnmanagedType.U1)] bool,
    forceOpenOnLockedLayer As [MarshalAs(UnmanagedType.U1)] bool
) As DBObject

Mit diesem <forceOpenOnLockedLayer> kannst Du bestimmen, ob das Element trotzdem zum Schreiben geöffnet werden soll oder nicht.

HTH, - alfred -

[EDIT] noch ein kleines Statement:

>> das der aktuelle Layer gesperrt war, ich aber dennoch per .net Elemente anlegen konnte

Das wäre eigentlich in AutoCAD 'legal', anlegen/zeichnen darfst Du Elemente auf gesperrten Layern, nur ändern ist verboten!

[/EDIT]

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

Gloem
Mitglied
Geoinformatiker


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

Beiträge: 179
Registriert: 07.12.2007

Windows 10 - 64 Bit, mindestens 16 GB RAM
<P>AutoCAD Map 2020, VBA, Dot-Net

erstellt am: 02. Dez. 2009 07:23    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 für die schnelle Antwort.

Transactions nutzte schon, nur war ich zu faul das mit zu kopieren und in dem Beitrag einzutragen. Ich dachte das würde sich von selbst ergeben.

Das mit der Variable für 'forceOpenOnLockedLayer' finde ich schon einmal sehr gut und das mit den neu anlegen auf gesperrten Layern hab ich mir auch schon irgendwie gedacht.

Damit wäre das ja schon einmal abgehackt. Gibt es irgendetwas mit gefrorenen oder ausgeblendeten Layern zu beachten?
Ich kann mich noch ein Programm mit VBA erinnern bei dem es nicht möglich war Blöcke in der Zeichnung hinzuzufügen und die Attribute zu verändern wenn sich diese auf gefrorenen Layer befanden.

[EDIT]
Halt, alles zurück. Ich glaub diese Layer waren gesperrt und damit gibt es dann ja auch Sinn das man bereits vorhandene Elemente nicht bearbeiten kann.

Aber trotzdem noch meine Frage, muss man etwas bei gefrorenen und ausgeblendeten Layern und deren Objekten beachten.
[/EDIT]
[Diese Nachricht wurde von Gloem am 02. Dez. 2009 editiert.]

[Diese Nachricht wurde von Gloem am 02. Dez. 2009 editiert.]

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


Ex-Mitglied

erstellt am: 02. Dez. 2009 08:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Gibt es irgendetwas mit gefrorenen oder ausgeblendeten Layern zu beachten?

Nur dann, wenn Du mit Selektionen am Bidschirm arbeitest, sprich wenn Du mittels Window/Crossing/WindowPolygon/CrossingPolygon/byPoint... etwas selektieren willst, dann wird das nur auf Elemente wirken, die
a) im sichtbaren Bereich (+ein wenig rundherum, halt innerhalb des Regen-Bereichs)
b) sichtbar sind (also z.b. getaut sind)

HTH, - alfred -

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

Gloem
Mitglied
Geoinformatiker


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

Beiträge: 179
Registriert: 07.12.2007

Windows 10 - 64 Bit, mindestens 16 GB RAM
<P>AutoCAD Map 2020, VBA, Dot-Net

erstellt am: 02. Dez. 2009 09: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

Ich meinte jetzt nicht bei der Selektion durch den Benutzer sondern eher bei der Bearbeitung. Sind die gefrorenen/ausgeblendeten Objekte irgendwie schreibgeschützt oder ähnliches? Durch die beiden while-Schleifen aus meinem ersten Post werden hoffentlich alle gefrorenen/ausgeblendeten Objekte miterfasst

Bei Selektion mittels Windows/... aus dem Programm - also ohne Benutzerinteraktion - geh ich mal davon aus das diese Objekte nicht mit beachtet werden

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


Ex-Mitglied

erstellt am: 02. Dez. 2009 09:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Sind die gefrorenen/ausgeblendeten Objekte irgendwie schreibgeschützt oder ähnliches?

NEIN

- alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 13. Jan. 2010 09: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 Gloem 10 Unities + Antwort hilfreich

Hallo Zusammen,

ich habe ein ähnliches Problem und zwar möchte ich ein DGM wählen lassen, dass sich eventuell einen gesperrten Layer hat.

Bis jetzt habe ich das folgendermaßen gemacht

Code:
If TrAct IsNot Nothing Then TrAct.Dispose() : TrAct = Nothing
TrAct = AcadDoc.TransactionManager.StartTransaction
Dim tGetEntRes As PromptEntityResult = AcadDoc.Editor.GetEntity(vbNewLine & "Bitte DGM wählen: ")
tEntSurface = TryCast(TrAct.GetObject(tGetEntRes.ObjectId, OpenMode.ForRead, False, True), Entity)
Surface = TryCast(TrAct.GetObject(tGetEntRes.ObjectId, OpenMode.ForRead, True, True).AcadObject, AeccTinSurface)
TrAct.Commit()

Das hat mit nicht gesperrtem Layer auch geklappt aber wenn dieser gesperrt ist erscheint ja wenn ich mit der Maus über das DGM gehe ein Schloss für den gesperrten Layer.

Gibts da eine einfachere Lösung, als das ganze Dokument nach gesperrten DGMs zu durchsuchen und deren Layer zu unlocken?

Grüße

Silvan

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


Ex-Mitglied

erstellt am: 13. Jan. 2010 10:53    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Silvan,

bin nicht sicher, die Frage richtig zu verstehen. Ich plaudere einfach mal los:

Die Bearbeitung von Objekten auf gesperrten Layer funkt mit dotNET (managed und unmanaged, wenn es ObjectARX sein soll) ganz ok, aber nicht mit COM. Mit COM kannst Du das Objekt dann nicht bearbeiten.

Wenn Du jetzt ein SelectionSet machst, das alle DGM's selektiert, dann für jedes DGM den Layerstatus prüfst, dann ist das ja eigentlich nur eine Schleife. Mal verbal:

Für jedes <tDGM> in <selektierten DGMs>
  hol mir die LayerTableID des <tDGM>
  hol mir den LayerTableRecored für die LayerTableID
  ==> und hier kannst Du den Zustand gesperrt prüfen bzw. schalten
Nächstes <tDGM>

An welchen der obigen Aussagen hängt's denn jetzt? Oder wo lieg ich daneben?

- alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 13. Jan. 2010 11: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 Nur für Gloem 10 Unities + Antwort hilfreich

Hallo Alfred,

das Problem ist, dass bei der:

Dim tGetEntRes As PromptEntityResult = AcadDoc.Editor.GetEntity(vbNewLine & "Bitte DGM wählen: ")

Zeile. Die Meldung kommt, Objekt befindet sich auf einem gesperrten Layer. Das Benutzerselektieren wird als nicht gültig gezählt und man bekommt erneut die Möglichkeit zu wählen.

Grüße

Silvan

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


Ex-Mitglied

erstellt am: 13. Jan. 2010 11:17    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

uuiii, so gemein ist AutoCAD?

Ich hab's jetzt nicht probiert (mir fehlt grad ein wenig die Zeit), aber hätte mal versucht:

a) die TransAction erst zu starten nachdem ...GetEntity abgehandelt wurde (DocumentLock ebenfalls nachher, wenn Du die wahl hast), es könnte einen Einfluß auf Entities haben, wenn Dein Doc schon in einem halben EDIT-Modus ist.

b) statt mit GetEntity mit Selectxxx (aus dem Editor) zu arbeiten

c) die Auswahl/Selektion über COM zu machen

Lass mich wissen, wie's läuft, ich hoffe ein kleines Zeitloch zu erarbeiten. 

- alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 13. Jan. 2010 13: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 Nur für Gloem 10 Unities + Antwort hilfreich

Hallo Alfred,

erstmal danke für die schnellen Antworten und deine Mühe!

Also mit A) hab ichs probiert - Die transaction und des documentlock vorher .dispose und auf =Nothing gesetzt - hat leider nicht geklappt kommt trotzdem die Meldung und das Schloss-Zeichen am Coursor.

Punkt b) versteh ich nicht, ist da eine Benutzerauswahl möglich? Da muss doch mit Selectionset gearbeitet werden - was ich aber bräuchte wär eine spezifische Wahl mit Coursormessage usw.

Und über COM würd ichs eher ungern machen 

Grüße

Silvan

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


Ex-Mitglied

erstellt am: 13. Jan. 2010 13:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> zu b)
>> Da muss doch mit Selectionset gearbeitet werden

Ja, ist richtig, wäre ein mögliches Workaround. War einfach nur als Option gedacht.


>> Und über COM würd ichs eher ungern machen

COM tut nicht weh!
Im Gegenteil, mit COM kannst Du Code um einiges kürzer schreiben und z.T. weniger fehleranfällig, da die COM-Schnittstelle seitens AutoCAD deutlich mehr abgesichert ist.

Gerade das hier wäre ein Fall, wo es nicht um Performance ankommt (Anwender werden deutlich länger mit der Mausbewegung und Klick brauchen, Dein Programm kommt da nicht in Performanceprobleme, sondern ist mit 'warten' beschäftigt), sondern um möglichst effizient zum Objekt zu kommen, und damit hast Du mit

Code:
CType(AcadDoc.AcadDocument, Interop.AcadDocument).Utility.GetEntity(tSelEnt, tSelPnt)

wenig Aufwand und zu erwartenderweise wenig Probleme.

- alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 13. Jan. 2010 14:49    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 Gloem 10 Unities + Antwort hilfreich

Hallo Alfred,

also wenn mich nicht Alles täuscht gehts mit COM auch nicht. Habe jetzt folgendes probiert:

Code:
Dim tselpnt As Object = Nothing
Dim tselobj As Object = Nothing
Type(AcadDoc.AcadDocument, Interop.AcadDocument).Utility.GetEntity(tselobj, tselpnt)
tEntSurface = TryCast(tselobj, Entity)

Tritt aber bei der Usereingabe schon das gleiche Problem mit dem Coursor und der Message auf.

Gibts noch Tipps???

Grüße und Danke für die Hilfe

Silvan

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


Ex-Mitglied

erstellt am: 13. Jan. 2010 21:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi Silvan,

ändere Deinen Code:

Code:
Dim tGetEntRes As PromptEntityResult = AcadDoc.Editor.GetEntity(vbNewLine & "Bitte DGM wählen: ")
tEntSurface = TryCast(TrAct.GetObject(tGetEntRes.ObjectId, OpenMode.ForRead, False, True), Entity)

gegen:

Code:
Dim tgetentopt As PromptEntityOptions = New PromptEntityOptions(vbNewLine & "Bitte DGM wählen: ")
tgetentopt.AllowObjectOnLockedLayer = True
Dim tGetEntRes As PromptEntityResult = AcadDoc.Editor.GetEntity(tgetentopt)
'...und jetzt solltest Du ein wenig vorsichtiger sein, denn es kann ja sein
'   dass der Anwender die Abfrage mit <ESC> abgebrochen hat, denn in diesem Fall
'   würde Dein nachfolgender Code, der von einer gültigen ObjectID ausgeht,
'   kräftig abfliegen
if tGetEntRes.Status = EditorInput.PromptStatus.OK then
   Dim tDbObj as DatabaseServices.DBObject = TrAct.GetObject(tGetEntRes.ObjectId, OpenMode.ForRead, False, True)
   if tDbObj IsNot Nothing then
      '...und jetzt casten und weiter


HTH, - alfred -


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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 14. Jan. 2010 09:51    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 Gloem 10 Unities + Antwort hilfreich

Hallo Alfred,

bei deiner Idee wurde bei mir eine ErrorMeldung gezeigt, ich kam aber auf den richtigen Weg (Denke ich  ).

Folgendermaßen sieht jetzt mein Code aus:

Code:
Dim tgetentopt As PromptEntityOptions = New PromptEntityOptions(vbNewLine & "Bitte DGM wählen: ")
tgetentopt.AllowObjectOnLockedLayer = True
Dim tGetEntRes As PromptEntityResult = AcadDoc.Editor.GetEntity(tgetentopt)

Danach ist jedoch mein aktueller Layer auf dem des DGMs, der sollte aber wieder "0" sein. Wie kann ich den wieder umstellen?

Grüße

Silvan

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


Ex-Mitglied

erstellt am: 14. Jan. 2010 10:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> bei deiner Idee wurde bei mir eine ErrorMeldung gezeigt

Sorry ja, hab mich scheinbar mit zu vielem gleichzeitig beschäftig, danke für Deinen Hinweis, hab's aktualisiert. 

>> Danach ist jedoch mein aktueller Layer auf dem des DGMs, der sollte aber wieder "0" sein

Tatsächlich? Unmittelbar nachdem Du das DGM selektiert hast, hat sich der aktuelle Layer in AutoCAD geändert? Kann's nicht glauben und bin (wie so oft) mal skeptisch.

Mach mal wirklich nur eine Funktion mit der Selektion, ich hätte bisher noch keinen Fall gehabt, wo .GetEntity den aktuellen Layer umgestellt hätte. Zugegeben, ich hab bisher auch nie Entities geklickt, die auf gesperrten Layern waren (da ich der Meinung bin, wenn Anwender Layer sperrt, sollen Elemente darauf nicht veränderbar sein, auch nicht durch meine App).

- alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 14. Jan. 2010 10:33    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 Gloem 10 Unities + Antwort hilfreich

Hi,

also ich habe mich getäuscht in diesem Sinne - Sorry.

Ich bräuchte aber trotzdem die Information wie man den aktuellen Layer ändern kann - zwecks eines anderen Fehlers der mir grade aufgefallen ist.

Grüße

silvan

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


Ex-Mitglied

erstellt am: 14. Jan. 2010 11:10    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Ich bräuchte aber trotzdem die Information wie man den aktuellen Layer ändern kann

Im schlechtesten Fall über die Systemvariable 'CLAYER'

Sonst über:

Code:
AcadDoc.Database.CLayer = <und hier die ObjectID des gewünschten Layers>

HTH, - alfred -

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

Silvan01
Mitglied



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

Beiträge: 128
Registriert: 28.04.2009

AutoCAD Civil 2009
AutoCAD Civil 2010
Visual Studio 2008

erstellt am: 15. Jan. 2010 08: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 Gloem 10 Unities + Antwort hilfreich

Hallo Alfred,

danke für die Lösung  .

Zitat:
Zugegeben, ich hab bisher auch nie Entities geklickt, die auf gesperrten Layern waren (da ich der Meinung bin, wenn Anwender Layer sperrt, sollen Elemente darauf nicht veränderbar sein, auch nicht durch meine App).

Die Elemente, die auf gesperrten Layer liegen werden in diesem Sinne nicht verändert, es werden lediglich Daten benötigt.
Der Anwender wünscht es - was kann man machen?! 

Grüße

Silvan

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