Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Pickfirstselectionset

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:  Pickfirstselectionset (487 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: 12. Feb. 2009 13:22    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 Leute eine Frage wenn ich den Event Beginncommand Abfange
und zb Erase abfange
dann möchte ich ja die derzeit selektierten Objekte erhalten
eben mit Pickfirst!(wenn ich zb zuerst die Polylinie anklicke und dann entferne)
Das Problem ist wenn ich zb mal Zurück anklicke dann
geht beim nächsten Löschen die Pickfirst Variable nicht mehr??
Warum ist das so?
Oder gibts dafür ne sichere bessere Lösung????

Mfg Chris

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


Ex-Mitglied

erstellt am: 12. Feb. 2009 13:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

ganz verstehe ich die Vorgehensweise nicht, aber aus meiner Interpretation heraus:

Wenn Du die Polylinie selektierst (dann ist sie im PickFirstSelSet drin), dann mit 'löschen' oder mittels 'ENTF'-Taste diese löschst, dann ist sie weg, kann daher IMHO auch nicht mehr im PickFirstSelSet sein.

Wenn Du jetzt 'zurück'/'_undo' machst, ist die Polylinie wieder in der Zeichnung, aber nicht selektiert (gegript), wieso erwartest Du jetzt, dass diese im PickFirstSelSet sein sollte?

...oder was verstehe ich falsch?

- alfred -

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

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: 12. Feb. 2009 13:46    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 Also beim Beginn Command Event ist im Pickfirst selectionset normalerweise Pickfirst noch gefüllt
DH das Programm funktioniert Tadellos!

Bis ich einmal zurück anklicke(Der Fehler tritt leider nicht immer auf daher schwer nachvollziehbar)
Ein Neues Objekt anklicke!!und wieder lösche.

Beim X-ten Ausführen funktioniert das Programm dann Plötzlich nicht mehr
Und ich weiß nicht wieso!

Hier der Code
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

[Diese Nachricht wurde von c.schojer am 12. Feb. 2009 editiert.]

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


Ex-Mitglied

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

Hi,
Code:
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

Zum einen, Du kannst Dir die vielen 'On Error Resume Next' spaaren, denn der erste call gilt bis zum Prozedurende oder bis Du eine andere 'On Error ...'-Anweisung durchführst.

Wieso es nicht funktioniert, kann ich Dir nicht sagen, aber ich hätte mal die Fehler (die Du mit 'On Error Resume Next' übergehst), nicht ignoriert, sondern mal angesehen. Und dazu noch die Vermutung, dass es eben manchmal in AutoCAD wechselt, was PickFirst.. und Active... ist. Du gehst aber immer davon aus, dass es das SelectionSet gibt, wenn Du 'xxx.Count' abrufst

Code:
On Error Resume Next

Set ACTIVESSET = ThisDrawing.ActiveSelectionSet
if Err.Number <> 0 then Debug.Print "ActiveSelSet: " & Err.Description

Err.Clear
Set ACTIVESSET2 = ThisDrawing.PickfirstSelectionSet
if Err.Number <> 0 then Debug.Print "PickFirstSelSet: " & Err.Description

Set Getactivesset = Nothing
'zuerst mal pruefen, ob PickFirstSelectionSet was ergeben hat
If (not (ACTIVESSET2 is nothing)) then
  If ACTIVESSET2.count = 0 Then
      'da sind Elemente drin, damit sichern wir uns das
      Set Getactivesset = ACTIVESSET2
  End If
End If

'sollte Getactivesset oben nicht gesetzt worden sein, dann ActiveSelSet pruefen
If (not (Getactivesset is nothing)) then
  if (not (ACTIVESELET is nothing)) then
      if ACTIVESELSET.Count > 0 then
        Set Getactivesset = ACTIVESSET
      end if
  end if
end if

If (Getactivesset is Nothing) then
  Debug.Print "Fehler"
End If


Ich brauch wohl auch nicht zu sagen, dass man da keine SelSet's (Pointer zu diesen) zwischenspeichern muss, denn eigentlich kann man ActiveSetSet und PickFirstSelSet auch pruefen ohne diese als ACTIVESELSET und ACTIVESELSET2 zu referenzieren.

- alfred -

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

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: 12. Feb. 2009 14:58    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 Vielen Dank für die Hilfe!
Hab deinen Code mal(mit kleineren Änderungen)
in Verwendung mal sehen ob da dieser Merkwürdige Fehler auch wieder auftaucht
Ich melde mich auf jeden Fall wieder mal!
Lg Chris

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