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)
)
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.
Bedankt. zal eens kijken of het tranparant maakt.
Moet ik denk ik alleen getpoint op een andere manier zien te schrijven.. hmmm
(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.
Transparant & Cool !!
thanx a lot