CADsite forum

AutoCAD => Autolisp => Topic gestart door: januz op vr 18 05 2007, 14:22:09

Titel: lisp leek
Bericht door: januz op vr 18 05 2007, 14:22:09
hallo allemaal.

ik heb vandaag het onzalige besluit genomen om me maar eens een keer te verdiepen in het maken van een lisp routine, en dat valt niet mee voor een leek.
alles wat ik wil is een functie die ervoor zorgt dat geselecteerde objecten in een tekening vanaf een bepaald punt 1000 mm naar beneden worden verplaatst. ik ben inmiddels een uurtje of 8 verder en heb werkelijk nog geen idee hoe dit verder aan te pakken.
verder dan dit ben ik nog niet gekomen:

(defun C:mm ()
  (terpri) 
  (princ "selecteer objecten: ")
  (setq bp (basepoint))

   
  (command "move")
        )

en dat is toch triest? is er misschien iemand die me iets op weg kan helpen?
alvast bedankt voor de eventuele reactie, groet
Titel: Re: lisp leek
Bericht door: Kenny H op za 19 05 2007, 11:52:08
Effe iets snel geschreven,
tis nog niet echt ideaal maar denk wel dat je hier al kunt op verderbouwen

(defun c:mm ()
(setq maat (getdist "\nAfstand verticaal:"))
(command "move" (ssget) "" (getpoint "\nStarpunt:") (strcat "@0,-"(itoa (fix maat))))
  )

Mvg

Kenny
Titel: Re: lisp leek
Bericht door: januz op za 19 05 2007, 13:36:53
Hé bedankt, daar kan ik wel iets mee het verklaard in ieder geval een hoop. Hetgeen ik eigenlijk zou willen bewerkstelligen is het volgende: move, select objects, specify basepoint, specify second point, from base point @ 0,-1000. dus door het aangeven van het basepoint van de te verplaatsen objecten en vervolgens het punt aan te geven vanaf waar het geheel 1000mm naar beneden verplaatst moet worden de objecten te verplaatsen.

ben nu bezig met de lisplessen die op deze site gedownload kunnen worden en ook die zijn vrij duidelijk. alleen jammer dat zipbestand nr. 1 beschadigd is en derhalve niet uitgepakt kan worden. wanneer er iemand is die nog een link weet naar vergelijkbaar iets houdt ik mij aanbevolen.

groet
Titel: Re: lisp leek
Bericht door: Kenny H op za 19 05 2007, 23:43:45
Wacht effe hé.
Dus jij selecteert een aantal objecten en daarvan een basis punt.
Daarna geef je een 2de punt op.
Nu wil je dat die objecten verplaatst worden ten opzichte van punt 1 naar punt 2 maar dan onmiddelijk 1000 lager.

Om het simpel te houden:

(defun c:mm ()
(command "move" (ssget) "" (getpoint "\nPunt 1:") (getpoint "\nPunt 2:"))
(command "move" "p" "" "0,0" "@0,-1000")
  )
Die move "p" staat voor vorige selectie.  :wink:

Je kunt natuurlijk ook eerst uit uw punt coordinaten bepalen, dan het verschil bepalen in x en y zodat je uw verplaatsing weet.
Maar hiermee lukt het ook al aardig.
Titel: Re: lisp leek
Bericht door: januz op zo 20 05 2007, 19:25:44
 :vreegoe: kenny bedankt! dit is exact wat ik wil. ik ga binnenkort verder stoeien met lisp want het opent vele deuren volgens mij.

nogmaals bedankt.

groet.
Titel: Re: lisp leek
Bericht door: Kenny H op di 22 05 2007, 19:53:40
Dat is graag gedaan hoor,
als er nog zaken zijn die je niet echt snapt, mag je die steeds stellen.
Dit forum dient om elkaar te helpen hé.  :wink: