Radim Cech
22.09.2006, 15:41
Obracímse s prosbou. Mám LISP na popis poloměru obloku, velikost písma a odsazení je závislé na proměnné USERR1, vše je funkční, až na jednu věc. Po popsání poloměru se funkce znovu spustí a vypíše nesmyslné hlášky. Můžete mi někdo poradit, kde je chyba? Jsem v LISPu laik, tak k přiloženému kódu prosím o shovívavost
;Popis poloměru oblouku
(defun C:POLOMER ( / pt1 cen mid end D1 p)
(if (= 0 (getvar "USERR1")) ; kontrola nastaveni hodnoty USERR1, nesmi byt 0 (progn (setq def_userr1 1) (setq def_userr1 (getreal "\nZadej userr1: ")) (setvar "USERR1" def_userr1) ) ;progn ) ;if
(setq Ods (* 3.5 (getvar "USERR1")) ; odsazeni textu od osy VT (* 2.5 (getvar "USERR1")) ; velikost pisma Uhly (getvar "AUNITS") Delky (getvar "LUNITS") Smer (getvar "ANGDIR") Nula (getvar "ANGBASE") Mista (getvar "LUPREC") KonNul (getvar "DIMZIN") Uchop (getvar "OSMODE") ) ;setq (setvar "AUNITS" 2) (setvar "LUNITS" 2) (setvar "ANGDIR" 0) (setvar "ANGBASE" 0) (setvar "LUPREC" 2) (setvar "DIMZIN" 1) (setvar "OSMODE" 0) (setvar "UCSFOLLOW" 0)
(setq pt1 (cadr (entsel "Ukaž oblouk: ")) cen (osnap pt1 "_CEN") mid (osnap pt1 "_MID") end (osnap pt1 "_END") D1 (distance cen mid) IP (list 0 (- D1 Ods) 0)
)
(COMMAND "_UCS" "3" cen mid end) (COMMAND "_UCS" "Z" "300")
; (COMMAND "TEXT" "J" "C" "0,0,0" VT "0" (STRCAT "R"(RTOS D1 2 1)) "") ;popis na střed oblouku (COMMAND "TEXT" "J" "C" IP VT "0" (STRCAT "R"(RTOS D1 2 1)) "") ;popis přímo k oblouku s odsazením (COMMAND "_UCS" "W")
(setvar "AUNITS" Uhly) (setvar "LUNITS" Delky) (setvar "ANGDIR" Smer) (setvar "ANGBASE" Nula) (setvar "LUPREC" Mista) (setvar "DIMZIN" KonNul) (setvar "OSMODE" Uchop) )(princ "C:POLOMER - měření poloměru oblouku (CZ V/1997)" )(princ)
;Popis poloměru oblouku
(defun C:POLOMER ( / pt1 cen mid end D1 p)
(if (= 0 (getvar "USERR1")) ; kontrola nastaveni hodnoty USERR1, nesmi byt 0 (progn (setq def_userr1 1) (setq def_userr1 (getreal "\nZadej userr1: ")) (setvar "USERR1" def_userr1) ) ;progn ) ;if
(setq Ods (* 3.5 (getvar "USERR1")) ; odsazeni textu od osy VT (* 2.5 (getvar "USERR1")) ; velikost pisma Uhly (getvar "AUNITS") Delky (getvar "LUNITS") Smer (getvar "ANGDIR") Nula (getvar "ANGBASE") Mista (getvar "LUPREC") KonNul (getvar "DIMZIN") Uchop (getvar "OSMODE") ) ;setq (setvar "AUNITS" 2) (setvar "LUNITS" 2) (setvar "ANGDIR" 0) (setvar "ANGBASE" 0) (setvar "LUPREC" 2) (setvar "DIMZIN" 1) (setvar "OSMODE" 0) (setvar "UCSFOLLOW" 0)
(setq pt1 (cadr (entsel "Ukaž oblouk: ")) cen (osnap pt1 "_CEN") mid (osnap pt1 "_MID") end (osnap pt1 "_END") D1 (distance cen mid) IP (list 0 (- D1 Ods) 0)
)
(COMMAND "_UCS" "3" cen mid end) (COMMAND "_UCS" "Z" "300")
; (COMMAND "TEXT" "J" "C" "0,0,0" VT "0" (STRCAT "R"(RTOS D1 2 1)) "") ;popis na střed oblouku (COMMAND "TEXT" "J" "C" IP VT "0" (STRCAT "R"(RTOS D1 2 1)) "") ;popis přímo k oblouku s odsazením (COMMAND "_UCS" "W")
(setvar "AUNITS" Uhly) (setvar "LUNITS" Delky) (setvar "ANGDIR" Smer) (setvar "ANGBASE" Nula) (setvar "LUPREC" Mista) (setvar "DIMZIN" KonNul) (setvar "OSMODE" Uchop) )(princ "C:POLOMER - měření poloměru oblouku (CZ V/1997)" )(princ)