fleshget Posted June 7, 2009 Posted June 7, 2009 hello there, i'm new here also in autolisp.. i've a question about my lisp.. i'm new in lisp like i said before.. here is: (defun C:dd() ;parametreler ayarlaniyor. (setq dostmode (getvar "osmode")) (setvar "osmode" 1) ;parametreler ayarlandi. ;layer girisleri yapiliyor. (command "-layer" "new" "SK_SET" "color" "40" "SK_SET" "") (command "-layer" "new" "SK_SET_YAZI" "color" "3" "SK_SET_YAZI" "") ;layer girisleri yapildi. ;veriler aliniyor. (setq point (getpoint "\n Tıkla sıhhat bul...")) ;veriler alindi. ;line objesi hazirlaniyor. (setq linex (car point)) (setq linex (+ linex 0)) (setq liney (cadr point)) (setq liney (+ liney 23)) (setq linepoint (list linex liney)) ;line objesi hazirlandi. ;km hesaplaniyor. (setq kmx (car point)) (setq kmx (- kmx 1)) (setq kmy (cadr point)) (setq kmy (+ kmy 7)) (setq kmpoint (list kmx kmy)) ;;;;;;;;;;;;;;;;;;;; (setq km (car point)) (setq km (rtos km 2 2)) (setq km (strcat "KM=" km)) (princ km) ;km hesaplandi. ;kot hesaplaniyor. (setq kotx (car point)) (setq kotx (+ kotx 3)) (setq koty (cadr point)) (setq koty (+ koty 7)) (setq kotpoint (list kotx koty)) ;;;;;;;;;;;;;;;;;;;; (setq kot (cadr point)) (setq kot (/ kot 10)) (setq kot (rtos kot 2 3)) (setq kot (strcat "KOT=" kot)) (princ kot) ;mesafe hesaplandi. ;ve sonuc (command "-textstyle" "F1") (command "-style" "F1" "ISOCPEUR.TTF" "2" "" "" "" "" "") (command "-layer" "make" "SK_SET_YAZI" "") (command "_text" kmpoint 90 km) (command "_text" kotpoint 90 kot) (command "-layer" "make" "SK_SET" "") (command "donut" "0" "2" point "") (command "_line" point linepoint "") ;ve sonuc ;parametreler ayarlaniyor. (setvar "osmode" dostmode) ;parametreler ayarlandi. ) it's working great for me, but there is something incomplete.. in example: this image is the result by above lisp.. --------------------------- but i want like this: --------------------------- so; OLD: KM=349 WANTED: KM=0+349.00 OLD: KM=1452.43 WANTED: KM=1+452.43 OLD: KM=25.4 WANTED: KM=0+025.40 like this can anyone help me please about that? i'm sorry for poor english Quote
Lee Mac Posted June 7, 2009 Posted June 7, 2009 This should be something like what you are after: [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] c:dd [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] *error* vl ov pt lpt xpt xStr ypt yStr[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] *error* [b][color=RED]([/color][/b]msg[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] ov [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vl ov[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]wcmatch[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcase[/color][/b] msg[b][color=RED])[/color][/b] [b][color=#ff00ff]"*QUIT*,*EXIT*"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n<< Error: "[/color][/b] msg [b][color=#ff00ff]" >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] vl [b][color=DARKRED]'[/color][/b][b][color=RED]([/color][/b][b][color=#ff00ff]"CLAYER"[/color][/b] [b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b][b][color=RED])[/color][/b] ov [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]getvar[/color][/b] vl[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"CMDECHO"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LAYER"[/color][/b] [b][color=#ff00ff]"SK_SET"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.-layer"[/color][/b] [b][color=#ff00ff]"_M"[/color][/b] [b][color=#ff00ff]"SK_SET"[/color][/b] [b][color=#ff00ff]"_C"[/color][/b] [b][color=#ff00ff]"40"[/color][/b] [b][color=#ff00ff]"SK_SET"[/color][/b] [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"LAYER"[/color][/b] [b][color=#ff00ff]"SK_SET_YAZI"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.-layer"[/color][/b] [b][color=#ff00ff]"_M"[/color][/b] [b][color=#ff00ff]"SK_SET_YAZI"[/color][/b] [b][color=#ff00ff]"_C"[/color][/b] [b][color=#ff00ff]"3"[/color][/b] [b][color=#ff00ff]"SK_SET_YAZI"[/color][/b] [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]not[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]tblsearch[/color][/b] [b][color=#ff00ff]"STYLE"[/color][/b] [b][color=#ff00ff]"F1"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"-style"[/color][/b] [b][color=#ff00ff]"F1"[/color][/b] [b][color=#ff00ff]"ISOCPEUR.TTF"[/color][/b] [b][color=#ff00ff]"2"[/color][/b] [b][color=#ff00ff]""[/color][/b] [b][color=#ff00ff]""[/color][/b] [b][color=#ff00ff]""[/color][/b] [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]if[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] pt [b][color=RED]([/color][/b][b][color=BLUE]getpoint[/color][/b] [b][color=#ff00ff]"\nT?kla s?hhat bul..."[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]progn[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"OSMODE"[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] lpt [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009900]23[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] xpt [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009900]1[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009900]7[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] xStr [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cond[/color][/b] [b][color=RED]([/color][/b][b][color=RED]([/color][/b][b][color=BLUE]<=[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] xStr[b][color=RED])[/color][/b] [b][color=#009900]6[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]while[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]<[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] xStr[b][color=RED])[/color][/b] [b][color=#009900]6[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] xStr [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"0"[/color][/b] xStr[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] xStr [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"KM=0+"[/color][/b] xStr[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]t[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] xStr [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"KM="[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] xStr [b][color=#009900]1[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] xStr[b][color=RED])[/color][/b] [b][color=#009900]6[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"+"[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]substr[/color][/b] xStr [b][color=RED]([/color][/b][b][color=BLUE]-[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strlen[/color][/b] xStr[b][color=RED])[/color][/b] [b][color=#009900]5[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setq[/color][/b] ypt [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]car[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009900]3[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]+[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009900]7[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] yStr [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"KOT="[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]rtos[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cadr[/color][/b] pt[b][color=RED])[/color][/b] [b][color=#009999]10.[/color][/b][b][color=RED])[/color][/b] [b][color=#009900]2[/color][/b] [b][color=#009900]3[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]strcat[/color][/b] [b][color=#ff00ff]"\n"[/color][/b] xStr [b][color=#ff00ff]"\n"[/color][/b] yStr[b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]Make_Text xpt xStr [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"SK_SET_YAZI"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b]Make_Text ypt yStr [b][color=RED]([/color][/b][b][color=BLUE]/[/color][/b] [b][color=BLUE]pi[/color][/b] [b][color=#009900]2[/color][/b][b][color=RED])[/color][/b] [b][color=#ff00ff]"SK_SET_YAZI"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]setvar[/color][/b] [b][color=#ff00ff]"CLAYER"[/color][/b] [b][color=#ff00ff]"SK_SET"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.donut"[/color][/b] [b][color=#ff00ff]"0"[/color][/b] [b][color=#ff00ff]"2"[/color][/b] pt [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]command[/color][/b] [b][color=#ff00ff]"_.line"[/color][/b] pt lpt [b][color=#ff00ff]""[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b] [b][color=#ff00ff]"\n<< No Point Selected >>"[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]mapcar[/color][/b] [b][color=DARKRED]'[/color][/b][b][color=BLUE]setvar[/color][/b] vl ov[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]princ[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]defun[/color][/b] Make_Text [b][color=RED]([/color][/b]pt val rot lay[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]entmake[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]list[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]0[/color][/b] [b][color=#ff00ff]"TEXT"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]8[/color][/b] lay[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]10[/color][/b] pt[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]40[/color][/b] [b][color=#009999]2.[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]1[/color][/b] val[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]50[/color][/b] rot[b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]7[/color][/b] [b][color=#ff00ff]"F1"[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]71[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]72[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]73[/color][/b] [b][color=#009900]0[/color][/b][b][color=RED])[/color][/b] [b][color=RED]([/color][/b][b][color=BLUE]cons[/color][/b] [b][color=#009900]11[/color][/b] pt[b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b][b][color=RED])[/color][/b] Take note: Check for layers before creating them Always Switch OFF OSMODE before using "command" use (setvar "CLAYER" ... ) to set the Current layer Use ENTMAKE to create text. Include an Error Handler in case the user hits Esc. Localise your variables! If you do have any questions about the code, just ask Lee Quote
fleshget Posted June 7, 2009 Author Posted June 7, 2009 thank you for help me i am check it out your lisp now there is a problem again, but i'll look up codes and if i can fix that, this will be amazing for me.. then i posting here the results, i hope i doin it this is the problem: re-thanks man, cheers EDIT: man, this codes are so complex for beginners so i can't fix this :/ if "km" value is with "." (i.e.= 1100.52), thats working perfectly when this value is "1100", results like this: KM=0+0001100 sorry for wasted your time bro:unsure: Quote
Lee Mac Posted June 7, 2009 Posted June 7, 2009 Try this: (defun c:dd (/ *error* vl ov pt lpt xpt xStr ypt yStr) (defun *error* (msg) (if ov (mapcar 'setvar vl ov)) (if (not (wcmatch (strcase msg) "*QUIT*,*EXIT*")) (princ (strcat "\n<< Error: " msg " >>"))) (princ)) (setq vl '("CLAYER" "OSMODE" "CMDECHO" "DIMZIN") ov (mapcar 'getvar vl)) (mapcar 'setvar (cddr vl) '(0 0)) (if (not (tblsearch "LAYER" "SK_SET")) (command "_.-layer" "_M" "SK_SET" "_C" "40" "SK_SET" "")) (if (not (tblsearch "LAYER" "SK_SET_YAZI")) (command "_.-layer" "_M" "SK_SET_YAZI" "_C" "3" "SK_SET_YAZI" "")) (if (not (tblsearch "STYLE" "F1")) (command "-style" "F1" "ISOCPEUR.TTF" "2" "" "" "" "")) (if (setq pt (getpoint "\nT?kla s?hhat bul...")) (progn (setvar "OSMODE" 0) (setq lpt (list (car pt) (+ (cadr pt) 23)) xpt (list (- (car pt) 1) (+ (cadr pt) 7)) xStr (rtos (car pt) 2 2)) (cond ((<= (strlen xStr) 6) (while (< (strlen xStr) 6) (setq xStr (strcat "0" xStr))) (setq xStr (strcat "KM=0+" xStr))) (t (setq xStr (strcat "KM=" (substr xStr 1 (- (strlen xStr) 6)) "+" (substr xStr (- (strlen xStr) 5)))))) (setq ypt (list (+ (car pt) 3) (+ (cadr pt) 7)) yStr (strcat "KOT=" (rtos (/ (cadr pt) 10.) 2 3))) (princ (strcat "\n" xStr "\n" yStr)) (Make_Text xpt xStr (/ pi 2) "SK_SET_YAZI") (Make_Text ypt yStr (/ pi 2) "SK_SET_YAZI") (setvar "CLAYER" "SK_SET") (command "_.donut" "0" "2" pt "") (command "_.line" pt lpt "")) (princ "\n<< No Point Selected >>")) (mapcar 'setvar vl ov) (princ)) (defun Make_Text (pt val rot lay) (entmake (list (cons 0 "TEXT") (cons 8 lay) (cons 10 pt) (cons 40 2.) (cons 1 val) (cons 50 rot) (cons 7 "F1") (cons 71 0) (cons 72 0) (cons 73 0) (cons 11 pt)))) Quote
fleshget Posted June 7, 2009 Author Posted June 7, 2009 this is same like first one, results is here: Quote
Lee Mac Posted June 7, 2009 Posted June 7, 2009 Sorry - typo in posted code - please try the above code again Quote
fleshget Posted June 7, 2009 Author Posted June 7, 2009 vohoo! thats great! its working perfectly now! mate, you rule.. you made my day, thanks so muuch bro! e-beer for you re-thank for your effort Quote
Lee Mac Posted June 7, 2009 Posted June 7, 2009 Wooowww Nice beer, thanks No problem - I'm happy to help out If you do have any questions about the code itself, as you probably want to learn LISP yourself, just ask and I'll try to explain as best I can Quote
fleshget Posted June 7, 2009 Author Posted June 7, 2009 Wooowww Nice beer, thanks No problem - I'm happy to help out If you do have any questions about the code itself, as you probably want to learn LISP yourself, just ask and I'll try to explain as best I can sure, i will learn it! i'll check out your lisp, and try to understand.. thanks for helping mate.. Quote
Lee Mac Posted June 7, 2009 Posted June 7, 2009 sure, i will learn it! i'll check out your lisp, and try to understand.. thanks for helping mate.. Anytime Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.