Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  AutoCAD VBA
  Selectionset ohne gefrorene Layer ?

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:  Selectionset ohne gefrorene Layer ? (2113 mal gelesen)
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: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 11. Dez. 2006 20: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

hallo zusammen,
habe gerade alle möglichen Einträge durchsucht aber mein Problem nicht gefunden, vielleicht kann mir jemand bei folgendem Problem helfen:

Ich möchte einen Filter setzen beim mode acSelectionSetAll, der mir nur die sichtbaren Layer auswählt.
Alle Versuche mit Gruppencode 70 waren bisher vergebens.
Ich kapier das Bitsetzen einfach nicht.
Gibt's da 'ne Hilfe???

Grüße,
Klaus

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

CAD-Huebner
Ehrenmitglied V.I.P. h.c.
Verm.- Ing., ATC-Trainer



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

Beiträge: 9732
Registriert: 01.12.2003

AutoCAD 2.5 - 2022, LDD, MDT, RD, ADT, Civil
Inventor AIP 4-11, 2008 -2022
Win 10

erstellt am: 11. Dez. 2006 22: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 Nur für KlaK 10 Unities + Antwort hilfreich

a) Soll eine Liste der eingeschalteten (und getrauten) Layer erzeugt werden, oder
b) sollen alle Objekte auf eingeschalteten (und getauten) Layern gewählt werden?

wenn b)
Was soll mit den Blockreferenzen passieren, deren Einfügepunkte auf ausgeschalteten Layern liegen, deren Blockelemente aber auf eingeschalteten Layern definiert sind und somit in der Zeichnung sichtbar sind?

GC 70 der Layer kann man bei der direkten Objektwahl nicht verwenden, da die Objekte nur ihren Layer, nicht aber die erweiterten Einstellungen des Layers kennen.

Hier mal auf die Schnelle mit meinen (rudimentären) VBA Kenntnissen zusammengeklappert:

Code:
Function visibleLayers() As String
' Erzeugung einer Layerliste der eingeschalteten Layer
' in der Form ",Layer 1,Layer 2,Layer 3"

For i = 0 To (ThisDrawing.Layers.Count - 1)
  If ThisDrawing.Layers.Item(i).LayerOn And _
    Not ThisDrawing.Layers.Item(i).Freeze Then
    visibleLayers = visibleLayers + "," + ThisDrawing.Layers.Item(i).Name
  End If
Next i
' MsgBox visibleLayers
End Function


Sub Filtertest()

  Dim sset As AcadSelectionSet
  Dim FilterType(1) As Integer
  Dim FilterData(1) As Variant
  On Error Resume Next
  ThisDrawing.SelectionSets.Item("SS3").Delete
  Set sset = ThisDrawing.SelectionSets.Add("SS3")
  FilterType(0) = 8    'Filter nach Layer
  FilterData(0) = visibleLayers()  'Layername
  FilterType(1) = 67  'Filter ob Modell oder Layout
  FilterData(1) = 0    'Modell (0) / Layout (1)
 
  sset.Select acSelectionSetAll, , , FilterType, FilterData
End Sub


------------------
Mit freundlichem Gruß

Udo Hübner

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: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 12. Dez. 2006 08: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

Whow, das ging ja schnell!
Meine VBAutoCAD -Kenntnisse sind noch rudimentärer. Hatte schon die Vermutung dass es wohl nur über eine Suchroutine bei den Layern geht.
Werde den Code gleich mal ausprobieren.
Danke für den Hinweis auf die Blockreferenzen, sind zwar für die jetzige Aktion ( Umwandeln von Polylinien auf 3D Polylinien mit Ausgleich der Bögen und übernahme von Höhen aus Texten an manchen Endpunkten) nicht relevant, aber vielleicht bei späteren Projekten.

Grüße,
Klaus

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 12. Dez. 2006 10: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 KlaK 10 Unities + Antwort hilfreich


PL-Convert.VLX.txt

 
Zitat:
Original erstellt von KlaK:
Umwandeln von Polylinien auf 3D Polylinien mit Ausgleich der Bögen..

In dem Zusammenhang hilft dir vielleicht das Teil im Anhang ..

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 12. Dez. 2006 14: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

Hallo CADmium,
was kann ich mit dem Teil im Anhang anfangen? Bzw. was ist das??
Scheint verschlüsselt zu sein (Aufruf mit Editor), wird im VLisp Editor ebenfalls nicht angezeigt.
Aufrufen von pl-convert geht, wenn vlx geladen ist.
Ich verstehe dich ja, man muß das Rad nicht zweimal erfinden, aber wir brauchen eine Routine die in einem Zug ca. 500000 Bruchkanten mit Höhen versieht, deshalb die Neuprogrammierung in VBA.
Das Tool ist nett - wenn auch langsamer als VB - und enthält leifer keine Abfrage ob Original behalten / gelöscht werden soll.
Trotzdem Danke - gut wenn man solche Tools zur Verfügung hat.
Klaus

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

CADmium
Moderator
Maschinenbaukonstrukteur




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

Beiträge: 13508
Registriert: 30.11.2003

ACAD 2008 Mechanical

erstellt am: 12. Dez. 2006 14:30    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 KlaK 10 Unities + Antwort hilfreich

na dann viel Spaß.. "Original behalten" wär kein Problem .. und mit dem Tempo .. ich greif genau wie VB auf die ActivX-Schnittstelle zu.. 

------------------
  - Thomas -
"Bei 99% aller Probleme ist die umfassende Beschreibung des Problems bereits mehr als die Hälfte der Lösung desselben."

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: 2624
Registriert: 02.05.2006

AutoCAD LandDesktop R2 bis 2004
Civil 3D 2005 - 2022
Plateia, Canalis
Visual Basic

erstellt am: 12. Dez. 2006 22: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

Komisch, kann ich mir auch nicht erklären.
Da der Programmcode nicht sichtbar zu machen ist kann ich nicht nachvollziehen wo die Unterschiede in der Programmierung sind.
Beim Testen der Routine habe ich nur festgestellt, dass nach der Anwahl eines Objektes und der Eingabe von 0.15 als Sekantenhöhe eine ziemliche Zeit vergeht bevor das Element neu gezeichnet wird.
Die gleiche Routine in VB - zu Testzwecken mit tippen eines Objektes erzeugt (getentity) - hat bei dem gleichem Element keine Zeitverzögerung. Die jetzige endgültige mit Erzeugen eines SelectionSets braucht schon eine ganze Weile.
Bei der Menge an Elementen aber kein Wunder.
NAja, Hauptsache Programm läuft und irgendwann werde ich auch mal wissen wie das mit den Filtern setzen funktioniert.
Nochmals Danke für die prompte Hilfe,
Klaus

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