FastFiber

Lisp gebruiken na Qselect.

Gestart door H@rm, vr 28 08 2009, 13:59:52

Vorige topic - Volgende topic

H@rm

Ik heb een lisproutine gemaakt die onderdelen die ik selecteer 150m naar boven of terug naar beneden verplaatst. (Soms wil ik ze even kwijt en lukt het niet met layers uit te zetten.)
Het gebeurt dan regelmatig dat ik een selectie maak met Qselect. Als ik ze dan gevonden heb kan ik wel direct het Move commando gebruiken en zit de selectie in het move commando. Als ik mijn lisp gebruik moet ik mijn selectie selecteren met P(revious).
Kan een lisp routine ook werken door eerst een selectie te maken (met qselect) en vervolgens het lisp commando te runnen?

Michel
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

sschevers

Michel,

Volgens mij kun het op de volgende manier oplossen:
maak met qselect een selectie
Start je lisp routine met (setq x (ssget "p"))
vervolgens kan je met (command "move" x ) verder bouwen

greetz stephan

H@rm

sschevers,

ik kan nu idd de elementen die ik op voorhand heb geselecteerd verschuiven. Maar,..  soms heb ik nog niets geselecteerd, maar heb ik wel een previous selectie die ik niet wil verlaatsen.
Ideale situatie zou dus zijn: Als ik iets geselcteerd heb verplaats het dan, indien niets geselecteerd vraag dan wat ik wil verplaatsen.

Michel
Acad 10 t/m 2015
Revit 2010 t/m 2015
autodidact lisp

Reimer

Beste Harm,

bijgaande lisp heb ik onlangs gemaakt omdat ik soms een selectie opzij wil zettten om wat aanpassingen uit te proberen. Ik wil dan dus ook naar de copy pannen.
Ik het eerste deel staat hoe de lisp eerst test of er al een selectie is.

Reimer

; kopieĆ«ren over 1000,0 en dan pannen                                              c1000
(defun c:c1000 ()
  (setq obj (ssget "_i"))
  (command);werkt als escape
  (if (= obj nill)
    (setq obj (ssget))
    (print "\nSelecteer opjecten om -1000 eenheden opzij te copieĆ«ren:   ")
  );einde if
  (if (/= obj nill)
    (command "copy" obj "" "1000,0" "")
  );einde if
  (command "-pan" "-1000,0" "")
  (princ)
)


sschevers

Michel,

Ik heb rond gegoogled en bijgaande lisp gevonden en een klein beetje uitgebreid. Ik heb hem niet uitgebreid getest maar mogelijk kun je er wat mee.

greetz stephan

EddyBeerke

Citaat van: H@rm op vr 28 08 2009, 15:14:45
sschevers,

ik kan nu idd de elementen die ik op voorhand heb geselecteerd verschuiven. Maar,..  soms heb ik nog niets geselecteerd, maar heb ik wel een previous selectie die ik niet wil verlaatsen.
Ideale situatie zou dus zijn: Als ik iets geselcteerd heb verplaats het dan, indien niets geselecteerd vraag dan wat ik wil verplaatsen.

Michel
Verander de (setq x (ssget "p")), in (setq x (ssget)).
De "P" staat voor "previous"
Wanneer je niets geselecteerd hebt moet je nu wel iets selecteren.
Als het trouwens elke keer om dezelfde objecten gaat kun je natuurlijk ook een "group" aanmaken.
Civil3d 2026, Blender 4.x gebruiker
Gebruiker sinds AutoCAD R12

http://eddylucas.c1.biz/
https://www.google.com/maps/contrib/109381066561676463628/photos/

yoin