Tema: Re: Kaip AUTOCAD uzdet koordinates
Autorius: ejs
Data: 2011-07-20 16:43:34
2011.07.20 15:09, Laimis rašė:
> 'uzrso', 'licenzijais'. ;-)

Geriau nei krakobriazai vietoj Unicode simbolių. Prieš ~5 metus 
AutoCAD'as normaliai priėmė NLS'us, o dabar nuo r2010 - 2011 kiek pagedo.

> Ar daug skiriasi nuo originalaus lisp'o?
> (ne visavertis atitikmuo, bet viskas kaip ant delno; galima persidaryti)

GETSTRINGD / GETDISTD atsirado :)
su kuom? Turiu ir daugiau VLX'ų, kuriu LSP dingę istorijos šiukšlėse.


   (defun C:PT_ID
  ;; (_al-bind-alist '(ATT1 ATT2 ID:XVALUE ID:YVALUE ENT))
     (setq PT (GETPOINT "\n	Taskas: "))
     (command ".-insert" ID:MARK PT ID:SCALE ID:SCALE "")
     (PT_ID:ATTMOD (ENTLAST))
)


(defun PT_ID:ATTMOD (BLOCK)
;; kažkur ciklas dingęs. Atributų gali būti >2
     (setq ENT BLOCK
	ATT1 (ENTNEXT ENT)
	ATT2 (ENTNEXT ATT1)
	ATT1 (ENTGET ATT1)
	ATT2 (ENTGET ATT2)
	PT (CDR (ASSOC 10 (ENTGET ENT)))
	PT (TRANS PT 0 1)
	ID:XVALUE (STRCAT "X= " (RTOS (* ID:LSCALE (CADR PT))))
	ID:YVALUE (STRCAT "Y= " (RTOS (* ID:LSCALE (CAR PT)))))
;; čia turi suktis ciklas, nes atributų reikšmės nebūtinai eina iš eilės
     (setq ATT1 (SUBST (CONS 1 ID:XVALUE) (ASSOC 1 ATT1) ATT1))
     (ENTMOD ATT1)
     (setq ATT1 (SUBST (CONS 1 ID:YVALUE) (ASSOC 1 ATT1) ATT1))
     (ENTMOD ATT1)
     (setq ATT2 (SUBST (CONS 1 ID:XVALUE) (ASSOC 1 ATT2) ATT2))
     (ENTMOD ATT2)
     (setq ATT2 (SUBST (CONS 1 ID:YVALUE) (ASSOC 1 ATT2) ATT2)))
     (ENTMOD ATT2) ;; bent jau

-- 
ejs