CADsite forum

AutoCAD => Autolisp => Topic gestart door: cadtools@gmail.com op ma 06 06 2005, 16:02:35

Titel: VLA into LISP
Bericht door: cadtools@gmail.com op ma 06 06 2005, 16:02:35
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)
)
Titel: VLA into LISP
Bericht door: Joop op di 07 06 2005, 08:07:43
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.
Titel: VLA into LISP
Bericht door: cadtools@gmail.com op wo 08 06 2005, 12:40:53
Bedankt. zal eens kijken of het tranparant maakt.
Moet ik denk ik alleen getpoint op een andere manier zien te schrijven.. hmmm
Titel: VLA into LISP
Bericht door: WebRacer op za 25 06 2005, 14:31:13
(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.
Titel: VLA into LISP
Bericht door: cadtools@gmail.com op ma 27 06 2005, 14:08:37
Transparant & Cool !!
thanx a lot