Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  AutoCAD VBA
  Selection Sets

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:  Selection Sets (4624 mal gelesen)
truuck
Mitglied
Student

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

Beiträge: 8
Registriert: 23.02.2005

erstellt am: 11. Mai. 2005 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

I have this problem with using Selection Sets several times for a certain procedure...
When you add a Selection Set you have to give it a name, but can you erase that Selection Set (and the name given to it) at the end of the procedure so that when you use the procedure again later you don't get errors saying that the Selection Set already exists.

In my case the procedure that contains the use of a Selection Set is used for different objects, so they're not the same objects that have to be mirrored every time I call upon that procedure.

Or maybe there's another solution???

Here my code so far:

Public Sub MirrorObjects()

    Dim GpCode(0) As Integer
    Dim GpData(0) As Variant
    ' choose objects by layer
    GpCode(0) = 8
    ' select objects on LayerA
    GpData(0) = "LayerA"

    Dim Mode As Integer
    Dim Filtype, FilData As Variant
    Filtype = GpCode
    FilData = GpData
    ' select all objects on LayerA
    Mode = acSelectionSetAll
   
    Dim newSSet As AcadSelectionSet
    Set newSSet = ACADProject.ThisDrawing.SelectionSets.Add("PSi")
    newSSet.Select Mode, , , Filtype, FilData
   
    Dim ssObject As AcadEntity
    Dim EntMirror As AcadEntity
    Dim MirrPoint1 (0 To 2) As Double
    Dim MirrPoint2 (0 To 2) As Double
    Dim MirrPoint3 (0 To 2) As Double
    MirrPoint1 (0) = 0; MirrPoint1 (1) = 0; MirrPoint1 (2) = 0
    MirrPoint2 (0) = 100; MirrPoint2 (1) = 0; MirrPoint2 (2) = 0
    MirrPoint3 (0) = 100; MirrPoint3 (1) = 0; MirrPoint3 (2) = 100
   
    For Each ssObject In newSSet
        Set EntMirror = ssObject.Mirror3D _
        (MirrPoint1, MirrPoint2, MirrPoint3)
    Next ssObject
       
    newSSet.Erase
    newSSet.Clear
   
End Sub

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

BloodyMess
Mitglied
Applicationingenieur


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

Beiträge: 604
Registriert: 06.06.2002

AutoCAD Map 3D 2005
Win XP pro

erstellt am: 11. Mai. 2005 10:37    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 truuck 10 Unities + Antwort hilfreich

Hello truuck,

try 'newSSet.Delete' instead of 'newSSet.Erase'.

nice greets TP

------------------

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

truuck
Mitglied
Student

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

Beiträge: 8
Registriert: 23.02.2005

erstellt am: 11. Mai. 2005 13: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

VBA-Piet
Mitglied
Bauingenieur


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

Beiträge: 15
Registriert: 07.04.2004

AutoCad 2000
Windows XP

erstellt am: 11. Mai. 2005 13:44    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 truuck 10 Unities + Antwort hilfreich

or use this function:

Public Function CreateSelectionSet(Optional ssName As String = "SS")
    Dim objSelSet As AcadSelectionSet
    For Each objSelSet In ThisDrawing.SelectionSets
      If objSelSet.name = ssName Then
        ThisDrawing.SelectionSets.Item(ssName).Delete
        Exit For
      End If
    Next
    Set objSelSet = tisdrawing.SelectionSets.Add(ssName)
  Set CreateSelectionSet = objSelSet
End Function

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 22. Aug. 2007 13:34    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 truuck 10 Unities + Antwort hilfreich

Hallo!

Ich habe bereits im Forum rumgestöbert, aber finde keine Lösung. Mit folgendem Code-Ausschnitt erzeuge ich ein SelectionSet, dass mir alle Blöcke mit dem Namen "60_40" sucht:

  Dim blockset As AcadSelectionSet
  Dim block As AcadBlockReference
  Dim FType(1) As Integer, FData(1)
   
  FType(0) = 0: FData(0) = "INSERT"
  FType(1) = 2: FData(1) = "60_40"

  For i = 0 To ThisDrawing.SelectionSets.Count - 1
        If ThisDrawing.SelectionSets.Item(i).Name = "BLOCKSET" Then
            ThisDrawing.SelectionSets.Item(i).Delete
        End If
  Next i

  Set blockset = ThisDrawing.SelectionSets.Add("BLOCKSET")
  blockset.Select Mode:=acSelectionSetAll, Filtertype:=FType, filterdata:=FData

Ich will jetzt diesen Code dahingehend erweitern, dass ich alle Blöcke bekomme die entweder "60_40" oder "60_60" oder... heißen. Wenn ich bei FType und FData folgendes erweitere:

  FType(2) = 2: FData(2) = "60_60"

bekomme ich gar nichts mehr, denn das würde ja bedeuten, dass ich nach Blöcken suche, die beide Eigenschaften aufweisen oder?

Habe schon gewisse Ausschnitte mit "<AND..." gesehen, kenn mich damit aber leider nicht aus.

Bitte um Hilfe,

Lg Peter

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 22. Aug. 2007 15: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 truuck 10 Unities + Antwort hilfreich

Habe die Lösung bereits, danke :

  FType(0) = -4
  FData(0) = "<OR"
  FType(1) = 2
  FData(1) = "60_40"
  FType(2) = 2
  FData(2) = "60_60"
  FType(3) = -4
  FData(3) = "OR>"

Lg Peter

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: 22. Aug. 2007 20:54    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 truuck 10 Unities + Antwort hilfreich

Hallo Peter,

schön das du die Lösung gefunden hast.
Gib doch mal "filter or" als Suchbegriff ein  .
Danach hättest du gleich mit einer Lösung weitermachen können.

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

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: 22. Aug. 2007 21: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 truuck 10 Unities + Antwort hilfreich

Hat es fast vergessen,

es geht auch noch anders (einfacher?)

Code:
    Dim sset As AcadSelectionSet
    Dim fType(0 To 2) As Integer
    Dim fData(0 To 2) As Variant
   
    On Error Resume Next
    Set sset = ThisDrawing.SelectionSets("MySel")
    If Err.Number Then
      Set sset = ThisDrawing.SelectionSets.Add("MySel")
    End If
    On Error GoTo 0
   
    fType(0) = 0: fData(0) = "Insert"
    fType(1) = 2: fData(1) = "Kreis,Rechteck"
    fType(2) = 8: fData(2) = "0,Blöcke"

    sset.SelectOnScreen fType, fData
    MsgBox sset.Count



Im Beispiel werden Blöcke mit der Bezeichnung Kreis oder Rechteck und auf den Layern 0 oder Blöcke liegen gesucht.

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 23. Aug. 2007 20: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 Nur für truuck 10 Unities + Antwort hilfreich

Hallo,

danke. hast recht, schaut schon wesentlich einfacher aus  but never change a running system!

lg peter

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 24. Aug. 2007 12: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 truuck 10 Unities + Antwort hilfreich

Hallo Wielfried,

hab deine Lösung probiert, aber sie scheint nicht zu funktionieren:

  Dim FType(0 To 2) As Integer
  Dim FData(0 To 2) As Variant
 
 
  FType(0) = 0
  FData(0) = "INSERT"
 
  FType(1) = 2
 
  For i = LBound(blocknames) To UBound(blocknames)
    FData(1) = FData(1) & blocknames(i)
    If i < UBound(blocknames) Then
      FData(1) = FData(1) & ","
    End If
  Next i
 
  FType(2) = 8
  FData(2) = PIN_LAYER
 
  Set blockset = CreateSelectionSet("BLOCKSET")
  blockset.Select mode:=acSelectionSetAll, FilterType:=FType, FilterData:=FData


Die Blöcke sind auf dem Layer PIN_LAYER, aber nicht in der Auswahl meines SelectionSets. Für was ist as    "INSERT" notwendig, es geht ja auch ohne, oder?

Lg Peter

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. Aug. 2007 14: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 Nur für truuck 10 Unities + Antwort hilfreich

Hallo,
Zitat:
  FType(2) = 8
  FData(2) = PIN_LAYER


Ist PIN_LAYER eine Variable oder hast du die "" vergessen ?

Füg doch mal in der ersten Zeile Option Explict ein. Dann kanst du sehen ob es da Variablen gibt die nicht deklariert sind.

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 24. Aug. 2007 22: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 truuck 10 Unities + Antwort hilfreich

Hallo Wilfried,

mittlerweile kenne ich mich mit VBA schon einigermaßen aus  OPTION EXPLICIT ist eingestellt und PIN_LAYER ist eine String-Konstante.

Lg Peter

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 09. Nov. 2007 09: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 truuck 10 Unities + Antwort hilfreich


Problemstellung.jpg

 
Guten Morgen!

Ich habe mehrere zusammenhängende Linien und will mich ausgehend vom Ende einer Linie (zB der markierten - siehe Grafik) zur nächsten vortasten. Wenn ich nun den Endpunkt der ersten Linie habe, müsste ich laut meiner Überlegung mit "SelectAtPoint" die aktuelle Linie und die nächste (deren Startpunkt der Endpunkt der vorherigen ist) in die Auswahl bekommen (siehe Grafik), sowie alle andere Objekte die in diesem Punkt ihren Ursprung haben.

Wenn ich nun den oberen Punkt der markierten Linie bei "SelectAtPoint" angebe müsste ich also min. 3 Linien im Selectionset haben, aber komischerweise habe ich nur eine Blockreference.

Ich blicke da nicht ganz durch und hoffe,
dass mir jemand helfen kann.

Code:

Public Function getLineAtPoint(line As AcadLine, endpoint As Variant) As AcadLine
On Error GoTo ErrorHandler
 
    Dim newline As AcadLine
    Dim lineset As AcadSelectionSet
    Dim entity As AcadEntity

    ' CreateSelectionSet funktioniert mit Sicherheit   
    Set lineset = CreateSelectionSet("ENDLINESET")
   
    lineset.SelectAtPoint endpoint
   
    Debug.Print "POINT: " & endpoint(0) & " " & endpoint(1)
    Debug.Print "COUNT: " & lineset.count
   
    If lineset.count > 0 Then
   
        'Eigentlich Iteration notwendig, aber da sich immer nur ein Objekt in Set befindet vernachlässigt
        Set entity = lineset.Item(0)
        Debug.Print "Objectname: " & entity.ObjectName
       
    End If
    lineset.Clear
   
    Set getLineAtPoint = Nothing
    Exit Function

ErrorHandler:
    Debug.Print "***************************************"
    Debug.Print "Error: " & Error(Err) & Chr(13) & "Function: getLineAtPoint" & Chr(13) & "Description: " &    Err.Description & Chr(13) & "Number: " & Err.Number & Chr(13) & "Source: " & Err.Source
    Debug.Print "***************************************"
    lineset.Clear
    Set getLineAtPoint = Nothing
    Err.Clear
    On Error GoTo 0
End Function



Ausgabe:

POINT: 525,416415665906 474,305950622901
COUNT: 1
Objectname: AcDbBlockReference


Kann es evtl. daran liegen, dass ich die Koordinaten zuerst auf 4 Stellen runden muss (weil in der Eigenschaftsanzeige von AutoCad auch nur immer die ersten 4 Kommastellen zu sehen sind)?


Bitte um Hilfe,
Liebe Grüße Peter

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: 09. Nov. 2007 10:44    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 truuck 10 Unities + Antwort hilfreich

Hallo Peter,
schon mal die PICKBOX - Variable angesehen?
Diese beeinflußt den SelectAtPoint.
Grüße,
Klaus

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 11. Nov. 2007 08:45    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 truuck 10 Unities + Antwort hilfreich

Hallo KlaK,

danke für den Hinweis. Ich habe jetzt in der VBA-Hilfe nachgesehen und im Forum, aber ich hab zu PICKBOX nicht brauchbares gefunden. Kannst du mir bitte einen Link bzw. eine kurze "Einführung" geben.

Lg Peter

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: 12. Nov. 2007 09: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 truuck 10 Unities + Antwort hilfreich

Hallo Peter,
aus der AutoCAD-Hilfe:
Zitat:
PICKBOX
Variablentyp:  Ganzzahl
Gespeichert in:  Registrierung
Ausgangswert:  3

Bestimmt die Zielhöhe der Objektwahl in Pixeln.

Anmerkung Wenn PICKBOX auf 0 gesetzt wurde, ist keine Auswahlvorschau von Objekten verfügbar


aus der AutoCAD-VBA Reference Hilfe:

Zitat:
SelectAtPoint methode

Signature
object.SelectAtPoint Point, FilterType, FilterData

Object SelectionSet
      The object or objects this method applies to.

Point  Variant (three-element array of doubles); input-only
      The 3D UCS coordinates specifying the point to use for the selection.

FilterType Integer; input-only; optional
        A DXF group code specifying the type of filter to use.

FilterData Variant; input-only; optional
        The value to filter on.

Remarks

This method supports the filtering mechanism.
The PICKBOX system variable affects object selection.
For more selection mode options, see the Select, SelectByPolygon, and SelectOnScreen methods.


Die Größe der PickBox kann auch über Optionen - in Karteikarte Auswahl eingestellt werden.
Wenn Pickbox auf 0 steht kann AutoCAD nur den exakt an dieser Stelle befindlichen Punkt fangen (vermute ich mal, aber so tief gehen meine VBA Acad kenntnisse auch nicht).

Grüße,
Klaus

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

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 12. Nov. 2007 10: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 Nur für truuck 10 Unities + Antwort hilfreich

Hallo Klaus, danke für die Antwort!

Recht peinlich, hab PICKBOX eingegeben und F1 gedrückt und deshalb beim ersten Versuch nichts gefunden.
Ich hab mir das jetzt angesehen und hab die PICKBOX-Variable under "Optionen..." verändert und auf maximale Größe gesetzt, doch es funktioniert trotzdem nicht.
Wenn ich die Größe auf 0 setze, wird eine andere Linie ausgewählt, die auch in diesem Punkt ihren Ursprung hat, aber es müssten doch dann beide Linien im Set seit.


Hast du sonst noch eine Idee?

Lg Peter

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: 12. Nov. 2007 10:40    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 truuck 10 Unities + Antwort hilfreich

Hallo Peter,
evtl. PICKADD auf 1 stellen.
Über Befehlszeile oder im Eigenschaftsfenster (rechts neben Auswahl Anzeige + oder 1)
nur mal so als Vermutung, ansonsten müßt ich mal Deinen Code übernehmen, dann aber erst abends.

Klaus

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: 12. Nov. 2007 10:41    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 truuck 10 Unities + Antwort hilfreich

Hi Peter,

SelectAtPoint wählt, so wie es aussieht immer nur ein Objekt an dem Punkt aus, ähnlich wie du im Acad beim Objekt picken auch nur ein Objekt wählst.

Erstell doch eine SelectionSet über Koordinaten und wähle die benötigten Objekte so aus.

Gruß, Carsten

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



Anzeige:Infos zum Werbeplatz >>

CADprofi HVAC & Piping CAD APP für Heizung, Lüftung und Klimatisierung (HLK), TGA, Messen, Steuern, Regeln (MSR)

pistolpete1
Mitglied
Student


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

Beiträge: 102
Registriert: 06.01.2007

erstellt am: 12. Nov. 2007 10:43    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 truuck 10 Unities + Antwort hilfreich

Hallo Carsten.

Danke für die Antwort, ich hab schon befürchtet, dass es darauf hinauslaufen wird. Dann werde ich es am besten so machen!

Liebe Grüße
Peter

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