Community
AutoCAD Produktfamilie - Deutsch
Das Forum für alle Fragen zu AutoCAD, LT, Architecture, Electrical, Map 3D, Mechanical, MEP, Plant 3D, Raster Design, Web App, sowie Autodesk Civil 3D und Advance Steel.
abbrechen
Suchergebnisse werden angezeigt für 
Anzeigen  nur  | Stattdessen suchen nach 
Meintest du: 

Wie kann ich in AutoCAD Dynamische Blöcke mit "ssget" Funktion auswählen?

7 ANTWORTEN 7
GELÖST
Antworten
Nachricht 1 von 8
s.hager
801 Aufrufe, 7 Antworten

Wie kann ich in AutoCAD Dynamische Blöcke mit "ssget" Funktion auswählen?

Hallo zusammen,

 

ich möchte einen speziellen dynamischen Block mit der ssget Funktion auswählen:

(command  "_select" (ssget "X" '((2 . "*U6")))) - Kennung bekannt

....funktioniert nicht

(command  "_select" (ssget "X" '((2 . "Kasten")))) - nicht dynamisch

.....hingegen schon.

Wodran liegt es?

Dankeschön im Voraus.

 

 

 @s.hager  Der Beitragstitel wurde bearbeitet von @michele.mk zur besseren Auffindbarkeit. Originaltitel: Dynamische Blöcke

 

7 ANTWORTEN 7
Nachricht 2 von 8
Udo_Huebner
als Antwort auf: s.hager

Das geht leider mit ssget nicht so einfach.

Es wird die Funktion vla-get-effectivename benötigt.

Hier ein Beispiel:

https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-routine-for-selecting-dynamic-b...

 

Oder geht es um das "*" im Namen? Da es ein Wildcard ist muss es mit einem führenden "`" eingeletet werden.

(command  "_select" (ssget "X" '((2 . "`*U6")))) - Kennung bekannt - funktioniert.

Gruß Udo Hübner (CAD-Huebner)
Nachricht 3 von 8
s.hager
als Antwort auf: Udo_Huebner

Hallo und Dankeschön für die Antwort:

Anbei noch eine Ergänzung

Hätte vielleicht etwas genauer beschreiben sollen was letztendlich damit passiert/passieren soll:

 

Also es ist ein dynamischer Block in einer Zeichnung vorh. . Dieser befindet sich 50x in einer Zeichnung und wurde bereits geändert (Damit ändert sich der Blockname von "Kasten" zu einem Anonymen Block *U?! - ist da so richtig?) Beim Ausspielen der Blockdaten mit den Express-Tools erhält man für die Blöcke die *U-Bezeichnung. Eine feste Zuordnung (selbst wenn sich der *U-Wert ändert) existiert immer durch einen Attribut-Wert z.B. 001,002 usw. In dem Block sind Parameter eingebaut. Beispielsweise ein Kreis und der dazugehörige Parameter lautet: Halbmesser.

Es gab vor einiger Zeit auf der Seite CAD.de eine Frage wie man diese Werte ansprechen kann:

Der Fragesteller begann mit folgender Vorgehensweise:

https://ww3.cad.de/foren/ubb/Forum145/HTML/003826.shtml

(command "-einfüge" "N:/Konstruktion/AutoCAD/Block_Konstruktion/Verbinder/Spax-Schraube.dwg" P20 "" "" "")

(setq DBobj (vlax-ename->vla-object (entlast)))

(setProperty (vlax-ename->vla-object DBobj) "Länge Ø4" 45)

Block Einfügen - letzen (eingefügten) Block ansprechen? - Parameter-Wert ändern. Der Lisp-Code wurde im Laufe des Dialogs noch etwas ausgearbeitet.

Suche nach eine Copy und Paste Variante aus Excel mit der ruhig alle 50 Blöcke angesprochen werden können.

Würde denn trotzdem noch der effective-name benötigt werden?

(command  "_select" (ssget "X" '((2 . "`*U6")))) - Block anwählen

(setq DBobj (vlax-ename->vla-object (entlast))) - letzten gewählten Block ansprechen?

setProperty (vlax-ename->vla-object DBobj) "Halbmesser" 45) - Parameter-Wert ändern.

Würde so etwas gehen? Ist als "Übergangslösung" gedacht.

Excel-Liste enthält sowohl Attribut-Werte als auch Parameter-Werte. Code könnte ja dann zusammengefügt werden.

Zeilen aus Excel kopieren in ACAD einfügen und Werte werden geändert....

Nachricht 4 von 8
michele.mk
als Antwort auf: s.hager

Hallo @s.hager,

 

willkommen im Forum. Schön, dass du den Weg zu uns gefunden hast! 

Hast du deine Lösung bereits selbst getestet? Funktioniert es? In dem Fall kannst du deine Antwort als Lösung markieren indem du auf "Lösung akzeptieren" klickst. 

Oder hast du in der Zwischenzeit weiterprobiert und bist vielleicht selbst auf eine Lösung für dein Problem gekommen, die du mit uns teilen könntest?

Falls nicht, sei doch so gut und lass es uns wissen, wie wir dir weiterhelfen können.

Gruß,
Michèle

-------------------------------------------------------------------------------------------------------
Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür Likes!
Eure Anfrage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken!


Michèle Matzeck-Kunstman
Community Manager
Nachricht 5 von 8
s.hager
als Antwort auf: michele.mk

Hallo und vielen Dank für das willkommen heißen hier im Forum.



Ich glaube ich muss noch etwas sicherer werden im Beitragsverhalten hier.

Sonst sorgt das nur für Verwirrung.



Jetzt habe ich eigentlich mit dem Beitrag/der Fragestellung "Dynamische Blöcke" drei Fehler gemacht:



- Ich habe in Absprache mit meiner Kollegin ihren Account genutzt anstatt mir selber einen einzurichten (ist jetzt aber erledigt)

- Der Beitrag von Udo hatte mir bei der eigentlichen/ersten Fragestellung geholfen... "Jetzt habe ich ihm aber das "Lösungshäkchen" nicht zugesprochen.

- Und last but noch least: habe trotz Lösung direkt noch eine weitere Frage in demselben Beitrag gestellt anstatt einen neuen Beitrag zu eröffnen.



Also wie gesagt:



Punkt eins ist erledigt.

Punkt zwei: ist es möglich dem Udo auch noch das "Lösungshäkchen" zuzusprechen?

Punkt drei: wäre es möglich die weitere Fragestellung in einen neuen Beitrag zu verschieben? Und da wäre ich etwas unsicher unter welcher Überschrift man das laufen lassen könnte?





Dankeschön im Voraus



Sascha






Nachricht 6 von 8
michele.mk
als Antwort auf: s.hager

Hallo @s.hager, vielen Dank für deine liebe Rückmeldung! Alles gut, niemand ist dir böse. Ich finde es echt toll, dass du selbst auf das alles gekommen bist. 🙂 Auch ich musste mich am Anfang zuerst zurechtfinden. Du kannst selbst auf den Knopf "Als Lösung akzeptieren" klicken. Auch kannst du mehr als eine Antwort als Lösung im selben Beitrag markieren. Einfach bei Udos Beitrag auf den entsprechenden Knopf drücken. Wegen deiner zweiten Fragestellung, wärst du so lieb und erstellst eigenständig ein neues Thema dazu? Ich kann nicht in deinem Namen posten. Falls du noch Fragen zum Forum hast kannst du sie gerne entweder hier stellen oder mich auch per privater Nachricht anschreiben. Viele Grüße und viel Spaß noch im Forum, Michèle.
-------------------------------------------------------------------------------------------------------
Ihr fandet einen Beitrag hilfreich? Dann vergebt dafür Likes!
Eure Anfrage wurde erfolgreich gelöst? Dann einfach auf den 'Als Lösung akzeptieren'-Button klicken!


Michèle Matzeck-Kunstman
Community Manager
Nachricht 7 von 8
cadffm
als Antwort auf: s.hager

>>"Beim Ausspielen der Blockdaten mit den Express-Tools erhält man für die Blöcke die *U-Bezeichnung." Das ist der richtige Blockname, welcher dem normalen Anwender vorenthalten wird. >>"Eine feste Zuordnung.." Die feste Zuordnung ist nur in deinem Kopf "fest", denn Theoretisch könnte es ja mehrere Blockreferenzen mit diesen Attribut&Parameterwerten geben, damit dann nicht mehr eindeutig sein. Eine feste Zuordnung ist Dateipfad+Dateiname+HANDLE >>"Würde denn trotzdem noch der effective-name benötigt werden?" Um deine (in der Sekunde gemeinte) Frage zu beantworten: Nein, wäre nicht nötig. ABER: SSGET würde ja ALLE Blockreferenzen dieses Blockes (*U6) erfassen, das könnten 0 oder einer, ebenso aber auch 200 sein. >>"(setq DBobj (vlax-ename->vla-object (entlast))) - letzten gewählten Block ansprechen?" Es geht dir nicht um Blöcke, sondern Blockreferenzen (da sollte man bei so einem Thema schon ordentlich unterscheiden), und entlast würde dir das vla-objekt des letzten Objektes liefern, aber am Anfang hast du von "Expresstool ATTOUT" gesprochen, also erstellt du doch nichts, sondern du hast bereits!? Das verwirrt mich etwas. Leider habe ich keine Lust&Laune [=Zeit] dich zur perfektlösung zu führen, das wäre dann eine gescheite Routine zum Export/Import, inkl. Parameter-Änderungen. Ich hoffe dennoch die Antwort hat etwas geholfen.
- Sebastian -
Nachricht 8 von 8
cadffm
als Antwort auf: cadffm

IN DIESEM THREAD BITTE NICH MEHR ANTWORTEN -HIER GEHT ES NUN WEITER => <<KLICKMICH!!>>

 

- Sebastian -

Sie finden nicht, was Sie suchen? Fragen Sie die Community oder teilen Sie Ihr Wissen mit anderen.

In Foren veröffentlichen