FastFiber

VLA into LISP

Gestart door cadtools@gmail.com, ma 06 06 2005, 16:02:35

Vorige topic - Volgende topic

cadtools@gmail.com

Onderstaande code wil ik wegschrijven in VLA stijl....
Welke hardcore programeur kan mij helpen?
De bedoeling is dus dat "command" en "getpoint" niet meer word gebruikt in de code. Als dit lukt werkt de code nl. transparant met overige (zelf geschreven) code.


(ZIE p 14-16 Augi MAY/JUNE 2005)



********************************



(defun msl (/ CMDECHO CMDDIA FRAD E1 E2)
 (princ "\nMultiple single lines")
 (setq
   ERR     *ERROR*
   *ERROR* LISP-ERR
   CMDECHO 0
   CMDDIA  0
   E1      nil
   E2      nil
 )
 (setq E1 (getpoint "\nfrom point"))
 (while (/= E1 nil)
   (setq E2 (getpoint E1 "\tsecond point: "))
   (command "line" E1 E2 "")  ; ?? vla stijl ??
   (setq E1 (getpoint "\nfirst: "))
 ) ;_end of while

 (if (= E1 nil)
   (command "line" "")  ; ?? vla stijl ??
   ()
 )
 (princ)
)

Joop

Je kunt de code
(command "line" E1 E2 "")
vervangen door (entmake ( de lijst met eigenschappen zoals coordinaten, laag, kleur, lineweight, enz.))
Zie de help voor verdere details.

Programmeren in vla-stijl is geen hardcore programmeren maar programmeren met objects, methods, propertries en events. net als in VBA, maar dan in Visual Lisp.
Een gelovig volger van
"de Sacrale Kunst van Luiheid",
zijn leider "Lisp" en acoliet "Script".

cadtools@gmail.com

Bedankt. zal eens kijken of het tranparant maakt.
Moet ik denk ik alleen getpoint op een andere manier zien te schrijven.. hmmm

WebRacer

(defun msl (/ CMDECHO CMDDIA FRAD E1 E2 osmo)
 (princ "\nMultiple single lines")
 (setq osmo (getvar "Osmode"))
 (setvar "Osmode" 0)
 (setvar "Cmdecho" 0)
 (setq   ERR   *ERROR*
   *ERROR*   LISP-ERR
   CMDECHO   0
   CMDDIA   0
   E1   nil
   E2   nil
 )
 (setq E1 (getpoint "\nfrom point"))
 (while (/= E1 nil)
   (setq E2 (getpoint E1 "\tsecond point: "))
   (entmake (list '(0 . "LINE")   ;type entiteit
               ;'(8 . "0")      ;laag - indien weggelaten -current layer
               ;'(6 . "CONTINUOUS")   ;lijntype - indien weggelaten bylayer
               ;'(62 . 1)      ;kleur - indien weggelaten bylayer
         (cons 10 E1)      ;startpunt
         (cons 11 E2)      ;eindpunt
        )
   )
   (princ "\nMultiple single lines")
   (setq E1 (getpoint "\nfirst: "))
 ) ;_end of while
 (setvar "Cmdecho" 1)
 (setvar "Osmode" osmo)
 (princ)
)

*Transparant, getest.
?

cadtools@gmail.com

Transparant & Cool !!
thanx a lot