yoin

januz

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

Kenny H

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
8) Volvo 4 Life 8)

januz

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

Kenny H

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.
8) Volvo 4 Life 8)

januz

 :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.

Kenny H

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:
8) Volvo 4 Life 8)

FastFiber