| | | 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 Set LISP -> VBA (1016 mal gelesen)
|
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003 If you want to help and want to respect other people's questions, then, please: Please, ALWAYS assume that I already tried to search for an answer to my question. Thx. Also, please, DON'T ask me what the "actual" goal of my question is. Please, firstly just answer it directly as stated - if you know an answer and want to give it. Only secondly, add other commments. Many, many, many thanks in advance!
|
erstellt am: 18. Dez. 2008 09:25 <-- editieren / zitieren --> Unities abgeben:
Hallo! Gibt es eine einfache (in Autocad eingebaute) Möglichkeit, ein LISP-Selection-Set in ein VBA-Selection-Set-Object umzuwandeln (und umgekehrt)? Danke. (In der Suche fand ich dazu noch nichts, obwohl man meinen sollte, dass das eher zu den Grundlagen gehört.)
------------------ Gruß, Stephan www.stbartl.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
Beiträge: 13527 Registriert: 30.11.2003 .
|
erstellt am: 18. Dez. 2008 09:58 <-- editieren / zitieren --> Unities abgeben: Nur für autocart
|
Ex-Mitglied
|
erstellt am: 18. Dez. 2008 10:01 <-- editieren / zitieren -->
Hi Stephan, ein paar Dinge könnten mir da schon einfallen, hängt aber sehr von der Arbeitsweise ab. Da wären für SelectionSet in DVB die Parameter acSelectionSetPrevious, acSelectionSetLast ==> abhängig von dem, wie Du in Lisp selektiert hast, kannst Du das eventuell direkt verwenden Dann wäre noch das ImpliedSelectionSet oder Suchbegriff 'PickFirst'xxx ==> aktuell selektierte Elemente Sind mal ein paar Ideen, wenn ein wenig mehr Beschreibung Deines Workflows kommt, dann kommen vielleicht noch mehr Ideen - alfred - |
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 18. Dez. 2008 10:23 <-- editieren / zitieren --> Unities abgeben:
Danke Cadmium für die Info (Absicherung), dass es nicht internes (fix-fertiges) gibt. Noch größerer Dank an Alfred für die Idee mit acSelectionSetPrevious, da es für mich funktioniert, z.B.: Zitat: (setq selsetLisp (ssget "_X")) (setq selsetVBA (vla-Select(vla-Add(vla-get-SelectionSets(vla-get-ActiveDocument(vlax-get-acad-object))) "selset01")acSelectionSetPrevious))
So muss ich nicht händisch jedes einzelne Element durchgehen. Toll. Danke. ------------------ Gruß, Stephan www.stbartl.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 18. Dez. 2008 10:40 <-- editieren / zitieren -->
Hi Stephan, vorweg ich verstehe 0 (in Worten NULL) von Lisp, aber Deine Lösungsbeschreibung ist mit nicht klar, vielleicht fehlt mir nur LISP-Verständnis, vielleicht mach ich Dich mit diesem nur auf etwas aufmerksam. Das in VBA reservierte Wort 'acSelectionSetPrevious' hat in Lisp IMHO keine Bedeutung, und aus meiner Sicht hat Deine 2.te Zeile auch für das Funktionieren in VBA keine Auswirkung. Wenn Du zuerst in Lisp dieses machst: (setq selsetLisp (ssget "_X")) Und unter der Voraussetzung, dass der Anwender die Selektion nicht abgebrochen hat, dann kannst Du danach in VBA Code: dim tSSet as AcadSelectionSet set tSSet = ThisDrawing.SelectionSets.Add("MeinTestSSET") 'darf halt noch nicht existieren tSSet.Select acSelectionSetPrevious
machen, und es wird funktionieren. Lass mich wissen, wenn ich irre - alfred -
|
autocart Mitglied Technischer Redakteur
Beiträge: 698 Registriert: 08.09.2003
|
erstellt am: 18. Dez. 2008 11:02 <-- editieren / zitieren --> Unities abgeben:
@Alfed: Zitat: ... vielleicht fehlt mir nur LISP-Verständnis ... Lass mich wissen, wenn ich irre
hehe... was soll ich noch mehr sagen? vielleicht nur so viel: probiers doch mal aus: Befehl: vlide und dann am einfachsten in der "Visual LISP-Konsole" zuerst (vl-load-com) <ENTER> und dann die 2 Zeilen Code hintereinander. Dass bei der 2.Zeile "nil" zurückgegeben wird, macht nichts -> ist so. Mit (vla-dump-object selsetVBA) siehst du dann, dass im VBA-SelSet die selbe Anzahl an Objekten drin ist, wie mit ssget gewählt wurden und das, obwohl das SelSet gerade erst mit dem Code erstellt wurde. ------------------ Gruß, Stephan www.stbartl.at Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|