Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Pickfirst Objekte entfernen

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 wird von NVIDIA zum Händler des Jahres gewählt – zum dritten Mal in Folge, eine Pressemitteilung
Autor Thema:  Pickfirst Objekte entfernen (1065 mal gelesen)
c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 06. Feb. 2008 10: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

Wie kann man vom Pickfirst selection set eine Objekt enfernen?


ThisDrawing.PickfirstSelectionSet.RemoveItems removeObjects

Er machts damit einfach nicht!! Kein Fehler!
(Befinde mich hier mitten im Beginn Command Befehl Löschen
wollte Testweise ne Linie entfernen)


Mfg Chris

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: 07. Feb. 2008 12:07    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 c.schojer 10 Unities + Antwort hilfreich

Hallo Chris,
 
Zitat:
Original erstellt von c.schojer:
..
ThisDrawing.PickfirstSelectionSet.RemoveItems removeObjects


removeObjects muss ein Array sein.

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

c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 07. Feb. 2008 13:02    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

Es ist auch ein Array
geht trotzdem nicht..
mfg chris

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

erstellt am: 07. Feb. 2008 13:13    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 c.schojer 10 Unities + Antwort hilfreich

Hallo Chris,

Stell doch mal deine komplette Funktion hier rein, damit man sehen kann, wie das Array erstellst.

Gruß, Carsten

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

c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 07. Feb. 2008 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

Function Getactivesset() As AcadSelectionSet
Dim ACTIVESSET, ent, ACTIVESSET2, SSetact As AcadSelectionSet
Dim a

On Error Resume Next
Set ACTIVESSET = ThisDrawing.ActiveSelectionSet
On Error Resume Next
Set ACTIVESSET2 = ThisDrawing.PickfirstSelectionSet
On Error Resume Next
If ACTIVESSET2.count = 0 Then
    Set Getactivesset = ACTIVESSET
Else
    Set Getactivesset = ACTIVESSET2
End If

End Function

Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)


Dim ACTIVESSET, ent, ACTIVESSET2, SSetact As AcadSelectionSet
Dim a
Dim removeObjects() As AcadEntity, index


If CommandName = "ERASE" Then

Set SSetact = Getactivesset

If CheckSSet(SSetact) = True Then
a = -1
    For Each ent In SSetact
    a = a + 1

    If ent.Objectname = "AcDbLine" Then

    ReDim Preserve removeObjects(0 To a)
    Set removeObjects(a) = ent
    End If
    Next ent
 

If a <> -1 Then
ThisDrawing.PickfirstSelectionSet.RemoveItems removeObjects

End If
'Debug.Print SSetact.NAME
a = -1

End If
End If

End Sub

Function CheckSSet(SSetact) As Boolean
Dim a
On Error Resume Next
a = SSetact.count
If Err <> 0 Then
CheckSSet = 0
Else
CheckSSet = 1
End If

End Function

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

erstellt am: 07. Feb. 2008 19:02    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 c.schojer 10 Unities + Antwort hilfreich

Hi Chris,

Ich will dich ja nicht enttäuschen, aber der PickFirstSelectionSet ist ReadOnly.

Aus der Hilfe:

Zitat:
PickfirstSelectionSet

SelectionSet object; read only
The pickfirst selection set.


Abgesehen musst du das "a = a + 1" in die Zeile vor dem "Redim Preserve..." setzen, da du sonst leere Einträge in dem Array bekommst.

Was spricht denn dagegen die Bemassungen, worum es hier ja gehen soll, auf einen gesperrten Layer zu packen, dann können diese auch nicht gelöscht und / oder verändert werden.
Was machst du denn, wenn erst der Befehl löschen aufgerufen wird und dann werden die Elemente gewählt?! Das fällt bei deinem Makro durchs Rost.

Gruß, Carsten

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

c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 07. Feb. 2008 19: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

Ich will sie auch noch bearbeiten können!!
nur nicht löschen! (über einen Ein/Aus Button)
Gehts ev über nen sendcommand Befehl???
Mfg Chris

[Diese Nachricht wurde von c.schojer am 07. Feb. 2008 editiert.]

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

erstellt am: 07. Feb. 2008 19:14    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 c.schojer 10 Unities + Antwort hilfreich

Hi Chris,

Hab noch ne Idee:
Dann frage doch den Löschbefehl ab und Sperre dann den Layer der Bemassung bei Löschbegin und entsperre ihn nach dem der Löschbefehl beendet wurde.

Gruß, Carsten

[Diese Nachricht wurde von Carsten1210 am 07. Feb. 2008 editiert.]

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

c.schojer
Mitglied



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

Beiträge: 299
Registriert: 23.05.2007

Autocad 2018

erstellt am: 07. Feb. 2008 19:18    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

Hab mal ein Programm geschrieben welches sämtliche Layer sperrt wo Bemaßungen vorkommen
Geht natürlich in die Hose wenn man aus Versehen auch auf bemaßungslayer zeichnen würde.
Kann man eventuell die Pickfirst Variable mit nem Sendcommand Befehl aktualisieren??

Noch dazu weiß ich nicht was er macht wenn bereits selektierte Objekte plötzlich gesperrt werden
und man diese versucht zu löschen.

Mfg Chris

[Diese Nachricht wurde von c.schojer am 07. Feb. 2008 editiert.]

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

erstellt am: 07. Feb. 2008 19: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 c.schojer 10 Unities + Antwort hilfreich

Hi Chris,

Dann durchlauf doch den Selectionset, wenn der Löschbefehl gestartet wird und packe alle Nichtbemassungen auf einen nicht-Bemassungslayer und sperr die Bemassunglayer dann. Dann sollte alles im Selectionset ausser den Bemassungen gelöscht werden. Danach entsperrst du den Layer wieder.

So, ich gehe jetzt nach Hause.

Gruß, Carsten

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