17.01.2017 06:55    

heisenberg33
Asagidaki lispte kordinat listesi hazirlayip txt. olarak kaydedebiliyoruz.
Sectigimiz objenin "z" degerini almiyor.
Bununla alakali duzunleme yapabilme sansimiz varmidir?
Simdiden tesekkurler...


Kod:

(defun c:sr1 ()
(setvar "cmdecho" 0)
(setvar "osmode" 555)
(PROMPT "\nTHIS PROGRAM IS EXECUTED BY ENG. SAMI SAYED REZK")
(if  (setq fname (getfiled "Txt dosyasının adını yazın:" (getvar "dwgprefix") "txt" 7))
(progn
(setq fnum (getint "\nEnter Start First Number: "))
(setq txt (open fname "w"))
(setq pt 1)
(while pt
(setvar "osmode" 555)
(setq pt (getpoint "\nSelect point: "))
(command "osnap" "none")
(if (/= pt nil) (setq pt1 (polar pt 1.0 0.05)))
(if (/= pt nil) (command "text" pt1 "0.2" "0.0" fnum))
(if (/= pt nil)
(progn (setq nm (itoa fnum))
(setq n (car pt))
(setq e (cadr pt))
(setq z (caddr pt)) 
(setq n2 (rtos n 2 3))
(setq e2 (rtos e 2 3))
(setq z2 (rtos z 2 3))  (sp)
(setq str (strcat nm n e2 nn n2 nn z2))
(write-line str txt)
(setq fnum (+ 1 fnum))
)
)
)
(close txt)
))(princ))


(defun c:num (/ rand currnt ptlst )
(setvar "cmdecho" 0)
(command "osnap" "end")
(setq rand T )
(setq currnt (getint "\nEnter Start First Number: "))
(setq sc1 (getreal "\nEnter The Drawing Scale: "))
(setq sc (* 1.5 sc1))
(while rand
(setq rand (getpoint "\nSelect Points In Sequence: "))
(setq ptlst
(append ptlst (list rand))))
(mapcar '(lambda (rand) (if rand (progn (setq x (car rand))
(setq y (cadr rand))
(setq x (cadr rand))
(setq rand (list x y z ))
(command "text" rand sc "0" currnt)
(setq currnt (+ 1 currnt ))))) ptlst )(princ)(command "osnap" "none"))



(defun sp ()
(setq RNM (strlen nm))
(setq RN (strlen n2))
(COND
((= RNM 1) (SETQ N (STRCAT " ")))
((= RNM 2) (SETQ N (STRCAT " " )))
((= RNM 3) (SETQ N (STRCAT " " )))
((= RNM 4) (SETQ N (STRCAT " " )))
)
(COND
((= RN 1) (SETQ NN (STRCAT " ")))
((= RN 2) (SETQ NN (STRCAT " " )))
((= RN 3) (SETQ NN (STRCAT " " )))
((= RN 4) (SETQ NN (STRCAT " " )))
((= RN 5) (SETQ NN (STRCAT " " )))
((= RN 6) (SETQ NN (STRCAT " " )))
((= RN 7) (SETQ NN (STRCAT " " )))
((= RN 8) (SETQ NN (STRCAT " " )))
((= RN 9) (SETQ NN (STRCAT " " )))
((= RN 10) (SETQ NN (STRCAT " " )))
((= RN 11) (SETQ NN (STRCAT " " )))
((= RN 12) (SETQ NN (STRCAT " " )))
((= RN 13) (SETQ NN (STRCAT " " )))
((= RN 14) (SETQ NN (STRCAT " " )))
)
)
(defun num (s)
(if (/= s "Function cancelled") (princ (strcat "\nError: " s)) )
(setq S nil)
(setvar "CMDECHO" ocmd)
(setq *error* olderr)
(princ)
)

ehya (17.01.2017 07:17 GMT)

17.01.2017 07:17    

ehya
Lisp kirliliği olmasın diye, gönderdiğiniz lispi güncelledim. Küçük bir değişiklik de yaptım.
Mesajınızdan lispi kopyalayabilirsiniz.

> 1 <
Copyright © 2004-2022 SQL: 0.88 saniye - Sorgu: 46 - Ortalama: 0.01913 saniye