(defun kata_error (s)
(if (/= s "console break")
(princ (strcat "Error: " s))
)
(puttext (translate stx datab) entx)
(setvar "angbase" angb)
(setvar "angdir" angd)
(setvar "cmdecho" ech)
(setvar "osmode" osm)
(setq *error* olderr)
(princ)
)
(defun rev_data (lst / a xlst)
(mapcar
'(lambda (x)
(setq a (cons (cdr x) (car x)))
(setq xlst (append xlst (list a)))
)
lst
)
xlst
)
(defun delete_string (strx loc / itm lst xln xtx n)
(setq lst (parse1 strx datab))
(setq xtx (apply 'strcat lst))
(setq lst (parse2 xtx rdatab))
(setq xln (length lst))
(setq n 0)
(repeat xln
(if (/= n loc)
(setq itm (append itm (list (nth n lst))))
)
(setq n (+ n 1))
)
(apply 'strcat itm)
)
(defun insert_string (base_str add_str loc / lst1 lst2 cnt1 ctn2 ln lst)
(setq lst (parse1 base_str datab))
(setq ln (length lst))
(cond
( (= loc 0)
(strcat add_str base_str)
)
(t (setq cnt1 loc)
(setq cnt2 (- ln loc))
(setq n 0)
(repeat cnt1
(setq lst1 (append lst1 (list (nth n lst))))
(setq n (+ n 1))
)
(setq n loc)
(repeat cnt2
(setq lst2 (append lst2 (list (nth n lst))))
(setq n (+ n 1))
)
(setq str1 (decipher (apply 'strcat lst1) rdatab))
(setq str2 (decipher (apply 'strcat lst2) rdatab))
(strcat str1 add_str str2)
)
)
)
(defun cursor_parse (lst index / lst1 lst2 lst3 cnt1 cnt2 tex ix1 ix2 ix3 ix4)
(setq cnt1 index)
(setq cnt2 (- (length lst) index 1))
(setq n 0)
(repeat cnt1
(setq tex (nth n lst))
(setq lst1 (append lst1 (list tex)))
(setq n (+ n 1))
)
(setq n (+ index 1))
(repeat cnt2
(setq tex (nth n lst))
(setq lst3 (append lst3 (list tex)))
(setq n (+ n 1))
)
(setq lst2 (list "%%u" (nth index lst) "%%u"))
(setq ix1 (* 4 (if lst1 1 0)))
(setq ix2 (* 2 (if lst2 1 0)))
(setq ix3 (* 1 (if lst3 1 0)))
(setq ix4 (+ ix1 ix2 ix3))
(cond
((= ix4 1) lst3)
((= ix4 2) lst2)
((= ix4 3) (append lst2 lst3))
((= ix4 4) lst1)
((= ix4 5) (append lst1 lst3))
((= ix4 6) (append lst1 lst2))
((= ix4 7) (append lst1 lst2 lst3))
)
)
(defun capitalize (txt index / lst lst1 lst2 lst3 cnt1 cnt2 tex ix1 ix2 ix3 ix4)
(setq lst (parse1 txt datab))
(setq cnt1 index)
(setq cnt2 (- (length lst) index 1))
(setq n 0)
(repeat cnt1
(setq tex (nth n lst))
(setq lst1 (append lst1 (list tex)))
(setq n (+ n 1))
)
(if lst1 (setq lst1 (parse2 (apply 'strcat lst1) rdatab)))
(setq lst1 (strcase (apply 'strcat lst1) t))
(setq n (+ index 1))
(repeat cnt2
(setq tex (nth n lst))
(setq lst3 (append lst3 (list tex)))
(setq n (+ n 1))
)
(if lst3 (setq lst3 (parse2 (apply 'strcat lst3) rdatab)))
(setq lst3 (strcase (apply 'strcat lst3) t))
(setq lst2 (strcase (apply 'strcat (parse2 (nth index lst) rdatab))))
(setq ix1 (* 4 (if lst1 1 0)))
(setq ix2 (* 2 (if lst2 1 0)))
(setq ix3 (* 1 (if lst3 1 0)))
(setq ix4 (+ ix1 ix2 ix3))
(cond
((= ix4 1) lst3)
((= ix4 2) lst2)
((= ix4 3) (strcat lst2 lst3))
((= ix4 4) lst1)
((= ix4 5) (strcat lst1 lst3))
((= ix4 6) (strcat lst1 lst2))
((= ix4 7) (strcat lst1 lst2 lst3))
)
)
(defun mov_cursor (str data index / xlst x x1 x2 x3 x4)
(if index (apply 'strcat (cursor_parse (parse1 str data) index)))
)
(defun kata_pan (pt / c a arot brot pta y1 y2 x1 x2)
(setq c (atof (getcfg "AppData/kata_user/textsize")) )
(setq pta pt)
(if x1 (command "._pan" pta (polar pta 0.0 c)))
(if x2 (command "._pan" pta (polar pta pi c)))
(if y1 (command "._pan" pta (polar pta (* 0.5 pi) c)))
(if y2 (command "._pan" pta (polar pta (* 1.5 pi) c)))
)
(defun bigfont (/ sty)
(setq sty (tblsearch "style" (getvar "textstyle")))
(read (cdr (assoc 4 sty)))
)
(defun parse2 (str data / xlst x x1 x2 x3 x4)
(setq n 1)
(while (/= (substr str n) "")
(setq x1 (substr str n 1))
(setq x8 (substr str n 8))
(setq x16 (substr str n 16))
(setq x24 (substr str n 24))
(cond
((setq x (assoc x24 data))(setq n (+ n 24))
(setq xlst (append xlst (list (cdr x))))
)
((setq x (assoc x16 data))(setq n (+ n 16))
(setq xlst (append xlst (list (cdr x))))
)
((setq x (assoc x8 data))(setq n (+ n 8))
(setq xlst (append xlst (list (cdr x))))
)
((setq x (assoc x1 data))(setq n (+ n 1))
(setq xlst (append xlst (list (cdr x))))
)
(t (setq n (+ n 1))
(cond
((= x1 (chr 32)) (setq xlst (append xlst (list (chr 32)))))
(t (setq xlst (append xlst (list x1))))
)
)
)
)
(setq sx nil)
(foreach n xlst
(cond
((= n (chr 32))
(setq sx (append sx (list (chr 32))))
)
(t (setq sx (append sx (list n))))
)
)
sx
)
(defun parse1 (str data / xlst x x1 x2 x3 x4)
(setq n 1)
(while (/= (substr str n) "")
(setq x1 (substr str n 1))
(setq x2 (substr str n 2))
(setq x3 (substr str n 3))
(setq x4 (substr str n 4))
(cond
((setq x (assoc x4 data))(setq n (+ n 4))
(setq xlst (append xlst (list (cdr x))))
)
((setq x (assoc x3 data))(setq n (+ n 3))
(setq xlst (append xlst (list (cdr x))))
)
((setq x (assoc x2 data))(setq n (+ n 2))
(setq xlst (append xlst (list (cdr x))))
)
((setq x (assoc x1 data))(setq n (+ n 1))
(setq xlst (append xlst (list (cdr x))))
)
(t (setq n (+ n 1))
(cond
((= x1 (chr 32)) (setq xlst (append xlst (list (chr 32)))))
(t (setq xlst (append xlst (list x1))))
)
)
)
)
(setq sx nil)
(foreach n xlst
(cond
((= n (chr 32))
(setq sx (append sx (list (chr 32))))
)
(t (setq sx (append sx (list n))))
)
)
sx
)
(defun decipher (str data / xlst x x1 x2 x3 x4)
(apply 'strcat (parse2 str data))
)
(defun translate (str data / xlst x x1 x2 x3 x4)
(apply 'strcat (parse1 str data)
)
)
(defun fixed_kata (arg / a)
(setq a (cdr (assoc 40 (tblsearch "style" arg))))
(if (> a 0.0) t nil)
)
(defun kata_insertion (ent ud / old new a b c d)
(setq a (entget ent))
(setq b (cdr (setq old (assoc 11 a)))) ;; text insertion
(setq c (atof (getcfg "AppData/kata_user/textsize")) )
(cond
((= ud 0)
(setq d (polar b (- (getvar "userr1") (* 0.5 pi)) (* 1.4 c)))
)
((= ud 1)
(setq d (polar b (+ (getvar "userr1") (* 0.5 pi)) (* 1.4 c)))
)
)
(setq new (cons 11 d))
(setq a (subst new old a))
(entmod a)
)
(defun modify_insertion (handle_lst dir / n)
(foreach n handle_lst (kata_insertion (handent n) dir))
)
(defun insert_handle (hdlst ent idx / c ex pt lst1 lst2)
(setq lst1 (member (nth idx hdlst) (reverse hdlst)))
(setq lst1 (reverse lst1))
(setq lst2 (member (nth idx hdlst) hdlst))
(setq lst2 (member (nth 1 lst2) lst2))
(modify_insertion lst2 0)
(setq pt (cdr (assoc 11 (entget ent))))
(setq c (atof (getcfg "AppData/kata_user/textsize")) )
(setq pt (polar pt (- (getvar "userr1") (* 0.5 pi)) (* 1.4 c)))
(initx pt)
(setq ex (entlast))
(setq hdname (cdr (assoc 5 (entget ex))))
(append lst1 (list hdname) lst2)
)
(defun delete_handle (hdlst idx / c ex pt lst1 lst2 arg)
(setq arg (nth idx hdlst))
(setq lst1 (member arg (reverse hdlst)))
(setq lst1 (reverse (member (nth 1 lst1) lst1)))
(setq lst2 (member (nth idx hdlst) hdlst))
(setq lst2 (member (nth 1 lst2) lst2))
(modify_insertion lst2 1)
(append lst1 lst2)
)
(defun kata_ht (ent / old new a b c)
(setq a (entget ent))
(setq b (cdr (setq old (assoc 40 a)))) ;; text ht
(setq c (atof (getcfg "AppData/kata_user/textsize")))
(setq new (cons 40 c))
(setq a (subst new old a))
(entmod a)
)
(defun puttext (txd arg / ent old new)
(setq ent (entget arg))
(setq old (assoc 1 ent))
(setq new (cons 1 txd))
(setq ent (subst new old ent))
(entmod ent)
)
(defun initx (pt / jst ptex rot)
(setq jst (getvar "users5"))
(setq rot (* (/ 180 pi)(getvar "userr1")))
(setq ptex "_")
(cond
( (fixed_kata (getvar "textstyle"))
(command "text" "j" jst pt rot ptex)
(kata_ht (entlast))
)
(t (command "text" "j" jst pt "" rot ptex))
)
)
(defun initedit (pt / jst ptex rot)
(setq jst (getvar "users5"))
(setq rot (* (/ 180 pi)(getvar "userr1")))
(setq ptex "_")
(cond
( (fixed_kata (getvar "textstyle"))
(command "text" "j" jst pt rot ptex)
(kata_ht (entlast))
)
(t (command "text" "j" jst pt "" rot ptex))
)
)
(defun hiragana_lst ()
(list
(cons "$" "\\M+1818F")
(cons "!" "!") (cons "@" "@") (cons "#" "#") (cons "%" "%") (cons "^" "^") (cons "&" "&") (cons "*" "*")
(cons "(" "(") (cons ")" ")") (cons "_" "_") (cons "+" "+") (cons "=" "=") (cons "{" "{") (cons "}" "}")
(cons "[" "[") (cons "]" "]") (cons "|" "|") (cons "\\" "\\") (cons ";" ";") (cons ":" ":") (cons "\"" "\"")
(cons "'" "'") (cons "," ",") (cons "?" "?") (cons "/" "/")
(cons "0" "0")(cons "1" "1")(cons "2" "2")(cons "3" "3")(cons "4" "4")
(cons "5" "5")(cons "6" "6")(cons "7" "7")(cons "8" "8")(cons "9" "9")
(cons "A" "\\M+182A0")(cons "I" "\\M+182A2")(cons "U" "\\M+182A4")(cons "E" "\\M+182A6")(cons "O" "\\M+182A8")
(cons "KA" "\\M+182A9")(cons "KI" "\\M+182AB")(cons "KU" "\\M+182AD")(cons "KE" "\\M+182AF")(cons "KO" "\\M+182B1")
(cons "KKA" "\\M+182C1\\M+182A9") (cons "KKI" "\\M+182C1\\M+182AB")(cons "KKU" "\\M+182C1\\M+182AD")
(cons "KKE" "\\M+182C1\\M+182AF")(cons "KKO" "\\M+182C1\\M+182B1")
(cons "SA" "\\M+182B3")(cons "SI" "\\M+182B5")(cons "SHI" "\\M+182B5")
(cons "SU" "\\M+182B7")(cons "SE" "\\M+182B9")(cons "SO" "\\M+182BB")
(cons "SSA" "\\M+182C1\\M+182B3")(cons "SSI" "\\M+182C1\\M+182B5")(cons "SSHI" "\\M+182C1\\M+182B5")
(cons "SSU" "\\M+182C1\\M+182B7")(cons "SSE" "\\M+182C1\\M+182B9")(cons "SSO" "\\M+182C1\\M+182BB")
(cons "TA" "\\M+182BD") (cons "TI" "\\M+182BF")(cons "CHI" "\\M+182BF")
(cons "TU" "\\M+182C2")(cons "TSU" "\\M+182C2")(cons "TE" "\\M+182C4")(cons "TO" "\\M+182C6")
(cons "TTA" "\\M+182C1\\M+182BD") (cons "TTI" "\\M+182C1\\M+182BF")(cons "TTU" "\\M+182C1\\M+182C2")
(cons "TTSU" "\\M+182C1\\M+182C2") (cons "TTE" "\\M+182C1\\M+182C4")(cons "TTO" "\\M+182C1\\M+182C6")
(cons "NA" "\\M+182C8")(cons "NI" "\\M+182C9")(cons "NU" "\\M+182CA")(cons "NE" "\\M+182CB")(cons "NO" "\\M+182CC")
(cons "HA" "\\M+182CD")(cons "HI" "\\M+182D0")(cons "FU" "\\M+182D3")
(cons "HU" "\\M+182D3")(cons "HE" "\\M+182D6")(cons "HO" "\\M+182D9")
(cons "MA" "\\M+182DC")(cons "MI" "\\M+182DD")(cons "MU" "\\M+182DE")(cons "ME" "\\M+182DF")(cons "MO" "\\M+182E0")
(cons "YA" "\\M+182E2")(cons "YI" "\\M+182A2")(cons "YU" "\\M+182E4")(cons "YE" "\\M+182A6")(cons "YO" "\\M+182E6")
(cons "RA" "\\M+182E7")(cons "RI" "\\M+182E8")(cons "RU" "\\M+182E9")(cons "RE" "\\M+182EA")(cons "RO" "\\M+182EB")
(cons "WA" "\\M+182ED")(cons "WI" "\\M+182A2")(cons "WU" "\\M+182A4")(cons "WE" "\\M+182A6")(cons "WO" "\\M+182F0")
(cons "N" "\\M+182F1")(cons "-" "\\M+1815B")(cons "." "\\M+18144")(cons "," ",")
(cons "GA" "\\M+182AA")(cons "GI" "\\M+182AC")(cons "GU" "\\M+182AE")(cons "GE" "\\M+182B0")(cons "GO" "\\M+182B2")
(cons "ZA" "\\M+182B4")(cons "JI" "\\M+182B6")(cons "ZI" "\\M+182B6")(cons "ZU" "\\M+182B8")
(cons "ZE" "\\M+182BA")(cons "ZO" "\\M+182BC")
(cons "DA" "\\M+182BE")(cons "DI" "\\\M+182C0")(cons "DU" "\\M+182C3")(cons "DE" "\\M+182C5")(cons "DO" "\\M+182C7")
(cons "BA" "\\M+182CE")(cons "BI" "\\M+182D1")(cons "BU" "\\M+182D4")(cons "BE" "\\M+182D7")(cons "BO" "\\M+182DA")
(cons "PA" "\\M+182CF")(cons "PI" "\\M+182D2")(cons "PU" "\\M+182D5")(cons "PE" "\\M+182D8")(cons "PO" "\\M+182DB")
(cons "PPA" "\\M+182C1\\M+182CF") (cons "PPI" "\\M+182C1\\M+182D2")(cons "PPU" "\\M+182C1\\M+182D5")
(cons "PPE" "\\M+182C1\\M+182D8")(cons "PPO" "\\M+182C1\\M+182DB")
(cons "KYA" "\\M+182AB\\M+182E1")(cons "KYU" "\\M+182AB\\M+182E3")(cons "KYO" "\\M+182AB\\M+182E5")
(cons "KKYA" "\\M+182C1\\M+182AB\\M+182E1")(cons "KKYU" "\\M+182C1\\M+182AB\\M+182E3")
(cons "KKYO" "\\M+182C1\\M+182AB\\M+182E5")
(cons "GYA" "\\M+182AC\\M+182E1") (cons "GYU" "\\M+182AC\\M+182E3") (cons "GYO" "\\M+182AC\\M+182E5")
(cons "SHA" "\\M+182B5\\M+182E1")(cons "SHU" "\\M+182B5\\M+182E3")(cons "SHO" "\\M+182B5\\M+182E5")
(cons "SSHA" "\\M+182C1\\M+182B5\\M+182E1")(cons "SSHU" "\\M+182C1\\M+182B5\\M+182E3")
(cons "SSHO" "\\M+182C1\\M+182B5\\M+182E5")
(cons "JA" "\\M+182B6\\M+182E1")(cons "JU" "\\M+182B6\\M+182E3")(cons "JO" "\\M+182B6\\M+182E5")
(cons "CHA" "\\M+182BF\\M+182E1")(cons "CHU" "\\M+182BF\\M+182E3")(cons "CHO" "\\M+182BF\\M+182E5")
(cons "NYA" "\\M+182C9\\M+182E1")(cons "NYU" "\\M+182C9\\M+182E3")(cons "NYO" "\\M+182C9\\M+182E5")
(cons "HYA" "\\M+182D0\\M+182E1")(cons "HYU" "\\M+182D0\\M+182E3")(cons "HYO" "\\M+182D0\\M+182E5")
(cons "BYA" "\\M+182D1\\M+182E1")(cons "BYU" "\\M+182D1\\M+182E3")(cons "BYO" "\\M+182D1\\M+182E5")
(cons "MYA" "\\M+182DD\\M+182E1")(cons "MYU" "\\M+182DD\\M+182E3")(cons "MYO" "\\M+182DD\\M+182E5")
(cons "PYA" "\\M+182D2\\M+182E1")(cons "PYU" "\\M+182D2\\M+182E3")(cons "PYO" "\\M+182D2\\M+182E5")
(cons "PPYA" "\\M+182C1\\M+182D2\\M+182E1")(cons "PPYU" "\\M+182C1\\M+182D2\\M+182E3")
(cons "PPYO" "\\M+182C1\\M+182D2\\M+182E5")
(cons "RYA" "\\M+182E8\\M+182E1")(cons "RYU" "\\M+182E8\\M+182E3")(cons "RYO" "\\M+182E8\\M+182E5")
)
)
(defun katakana_lst ()
(list
(cons "$" "\\M+1818F")
(cons "!" "!") (cons "@" "@") (cons "#" "#") (cons "%" "%") (cons "^" "^") (cons "&" "&") (cons "*" "*")
(cons "(" "(") (cons ")" ")") (cons "_" "_") (cons "+" "+") (cons "=" "=") (cons "{" "{") (cons "}" "}")
(cons "[" "[") (cons "]" "]") (cons "|" "|") (cons "\\" "\\") (cons ";" ";") (cons ":" ":") (cons "\"" "\"")
(cons "'" "'") (cons "," ",") (cons "?" "?") (cons "/" "/")
(cons "0" "0")(cons "1" "1")(cons "2" "2")(cons "3" "3")(cons "4" "4")
(cons "5" "5")(cons "6" "6")(cons "7" "7")(cons "8" "8")(cons "9" "9")
(cons "a" "\\M+18341")(cons "i" "\\M+18343")(cons "u" "\\M+18345")(cons "e" "\\M+18347")(cons "o" "\\M+18349")
(cons "ka" "\\M+1834A")(cons "ki" "\\M+1834C")(cons "ku" "\\M+1834E")(cons "ke" "\\M+18350")(cons "ko" "\\M+18352")
(cons "kka" "\\M+18362\\M+1834A") (cons "kki" "\\M+18362\\M+1834C")(cons "kku" "\\M+18362\\M+1834E")
(cons "kke" "\\M+18362\\M+18350")(cons "kko" "\\M+18362\\M+18352")
(cons "sa" "\\M+18354")(cons "si" "\\M+18356")(cons "shi" "\\M+18356")
(cons "su" "\\M+18358")(cons "se" "\\M+1835A")(cons "so" "\\M+1835C")
(cons "ssa" "\\M+18362\\M+18354")(cons "ssi" "\\M+18362\\M+18356")(cons "sshi" "\\M+18362\\M+18356")
(cons "ssu" "\\M+18362\\M+18358")(cons "sse" "\\M+18362\\M+1835A")(cons "sso" "\\M+18362\\M+1835C")
(cons "ta" "\\M+1835E") (cons "ti" "\\M+18360")(cons "chi" "\\M+18360")
(cons "tu" "\\M+18363")(cons "tsu" "\\M+18363")(cons "te" "\\M+18365")(cons "to" "\\M+18367")
(cons "tta" "\\M+18362\\M+1835E") (cons "tti" "\\M+18362\\M+18360")(cons "ttsu" "\\M+18362\\M+18363")
(cons "ttu" "\\M+18362\\M+18363") (cons "tte" "\\M+18362\\M+18365")(cons "tto" "\\M+18362\\M+18367")
(cons "na" "\\M+18369")(cons "ni" "\\M+1836A")(cons "nu" "\\M+1836B")(cons "ne" "\\M+1836C")(cons "no" "\\M+1836D")
(cons "ha" "\\M+1836E")(cons "hi" "\\M+18371")(cons "fu" "\\M+18374")
(cons "hu" "\\M+18374")(cons "he" "\\M+18377")(cons "ho" "\\M+1837A")
(cons "ma" "\\M+1837D")(cons "mi" "\\M+1837E")(cons "mu" "\\M+18380")(cons "me" "\\M+18381")(cons "mo" "\\M+18382")
(cons "ya" "\\M+18384")(cons "yi" "\\M+18343")(cons "yu" "\\M+18386")(cons "ye" "\\M+18347")(cons "yo" "\\M+18388")
(cons "ra" "\\M+18389")(cons "ri" "\\M+1838A")(cons "ru" "\\M+1838B")(cons "re" "\\M+1838C")(cons "ro" "\\M+1838D")
(cons "wa" "\\M+1838F")(cons "wi" "\\M+18343")(cons "wu" "\\M+18345")(cons "we" "\\M+18347")(cons "wo" "\\M+18392")
(cons "n" "\\M+18393")(cons "-" "\\M+1815B")(cons "." "\\M+18144")(cons "," ",")
(cons "ga" "\\M+1834B")(cons "gi" "\\M+1834D")(cons "gu" "\\M+1834F")(cons "ge" "\\M+18351")(cons "go" "\\M+18353")
(cons "za" "\\M+18355")(cons "ji" "\\M+18357")(cons "zi" "\\M+18357")(cons "zu" "\\M+18359")
(cons "ze" "\\M+1835B")(cons "zo" "\\M+1835D")
(cons "da" "\\M+1835F")(cons "di" "\\M+18361")(cons "du" "\\M+18364")(cons "de" "\\M+18366")(cons "do" "\\M+18368")
(cons "ba" "\\M+1836F")(cons "bi" "\\M+18372")(cons "bu" "\\M+18375")(cons "be" "\\M+18378")(cons "bo" "\\M+1837B")
(cons "pa" "\\M+18370")(cons "pi" "\\M+18373")(cons "pu" "\\M+18376")(cons "pe" "\\M+18379")(cons "po" "\\M+1837C")
(cons "ppa" "\\M+18362\\M+18370") (cons "ppi" "\\M+18362\\M+18373")(cons "ppu" "\\M+18362\\M+18376")
(cons "ppe" "\\M+18362\\M+18379")(cons "ppo" "\\M+18362\\M+1837C")
(cons "kya" "\\M+1834C\\M+18383")(cons "kyu" "\\M+1834C\\M+18385")(cons "kyo" "\\M+1834C\\M+18387")
(cons "kkya" "\\M+18362\\M+1834C\\M+18383")(cons "kkyu" "\\M+18362\\M+1834C\\M+18385")
(cons "kkyo" "\\M+18362\\M+1834C\\M+18387")
(cons "gya" "\\M+1834D\\M+18383") (cons "gyu" "\\M+1834D\\M+18385") (cons "gyo" "\\M+1834D\\M+18387")
(cons "sha" "\\M+18356\\M+18383")(cons "shu" "\\M+18356\\M+18385")(cons "sho" "\\M+18356\\M+18387")
(cons "ssha" "\\M+18362\\M+18356\\M+18383")(cons "sshu" "\\M+18362\\M+18356\\M+18385")
(cons "ssho" "\\M+18362\\M+18356\\M+18387")
(cons "ja" "\\M+18357\\M+18383")(cons "ju" "\\M+18357\\M+18385")(cons "jo" "\\M+18357\\M+18387")
(cons "cha" "\\M+18360\\M+18383")(cons "chu" "\\M+18360\\M+18385")(cons "cho" "\\M+18360\\M+18387")
(cons "nya" "\\M+1836A\\M+18383")(cons "nyu" "\\M+1836A\\M+18385")(cons "nyo" "\\M+1836A\\M+18387")
(cons "hya" "\\M+18371\\M+18383")(cons "hyu" "\\M+18371\\M+18385")(cons "hyo" "\\M+18371\\M+18387")
(cons "bya" "\\M+18372\\M+18383")(cons "byu" "\\M+18372\\M+18385")(cons "byo" "\\M+18372\\M+18387")
(cons "mya" "\\M+1837E\\M+18383")(cons "myu" "\\M+1837E\\M+18385")(cons "myo" "\\M+1837E\\M+18387")
(cons "pya" "\\M+18373\\M+18383")(cons "pyu" "\\M+18373\\M+18385")(cons "pyo" "\\M+18373\\M+18387")
(cons "ppya" "\\M+18362\\M+18373\\M+18383")(cons "ppyu" "\\M+18362\\M+18373\\M+18385")
(cons "ppyo" "\\M+18362\\M+18373\\M+18387")
(cons "rya" "\\M+1838A\\M+18383")(cons "ryu" "\\M+1838A\\M+18385")(cons "ryo" "\\M+1838A\\M+18387")
)
)
(defun katakana (/ rdatab mode_lst ext ok msg opt dx1 dx2 xht xrot prec xx yy xy prmp
txtht opt hdl stxl pt1 ptx stx prt ln tx eraser out dir entx)
(if (and (/= "" (getcfg "AppData/kata_user/textsize"))
(/= nil (getcfg "AppData/kata_user/textsize"))
)
(setq txtht (atof (getcfg "AppData/kata_user/textsize")))
(setcfg "AppData/kata_user/textsize" (rtos (getvar "textsize") 2 16))
)
(setq jstlst (list "C" "M" "R" "TL" "TC" "TR" "ML" "MC" "MR" "BL" "BC" "BR"))
(setq mode_lst (list "Katakana" "Hiragana"))
(if (> (getvar "useri1") 1) (setvar "useri1" 0))
(setq datab (append (katakana_lst) (hiragana_lst) ))
(setq rdatab (rev_data (append (katakana_lst) (hiragana_lst) )))
(if (not (member (strcase (getvar "users5")) jstlst)) (setvar "users5" "BL"))
(while (not ext)
(princ (strcat "\nActive Mode: " (nth (getvar "useri1") mode_lst)))
(initget 1 "Justify Mode")
(cond
( (= pt1 "Justify")
(initget 1 "Center Middle Right TL TC TR ML MC MR BL BC BR")
(setq opt (getkword "\nCenter/Middle/Right/TL/TC/TR/ML/MC/MR/BL/BC/BR:"))
(cond
((= opt "Center")
(setvar "users5" "C")
(setq msg "\nCenter point:")
)
((= opt "Middle")
(setvar "users5" "M")
(setq msg "\nMiddle point:")
)
((= opt "Right")
(setvar "users5" "R")
(setq msg "\nEnd point:")
)
((= opt "TL")
(setvar "users5" "TL")
(setq msg "\nTop/left point:")
)
((= opt "TC")
(setvar "users5" "TC")
(setq msg "\nTop/center point:")
)
((= opt "TR")
(setvar "users5" "TR")
(setq msg "\nTop/right point:")
)
((= opt "ML")
(setvar "users5" "ML")
(setq msg "\nMiddle/left point:")
)
((= opt "MC")
(setvar "users5" "MC")
(setq msg "\nMiddle point:")
)
((= opt "MR")
(setvar "users5" "MR")
(setq msg "\nMiddle/right point:")
)
((= opt "BL")
(setvar "users5" "BL")
(setq msg "\nBottom/left point:")
)
((= opt "BC")
(setvar "users5" "BC")
(setq msg "\nBottom/center point:")
)
((= opt "BR")
(setvar "users5" "BR")
(setq msg "\nBottom/right point:")
)
)
(initget 7)
(setq pt1 (getpoint msg))
(setq ext t)
)
( (= pt1 "Mode")
(initget 1 "Hiragana Katakana")
(setq opt (getkword "\nKatakana/Hiragana: "))
(cond
((= opt "Hiragana") (setvar "useri1" 1))
((= opt "Katakana") (setvar "useri1" 0))
)
)
(t (setq ext t))
)
)
(setq prec (getvar "luprec"))
(setq dx1 (rtos (atof (getcfg "AppData/kata_user/textsize")) 2 prec))
(initget 6)
(if xht (setvar "textsize" xht))
(if xht (setcfg "AppData/kata_user/textsize" (rtos (getvar "textsize") 2 16)))
(setq dx2 (angtos (getvar "userr1") 1 prec))
(if xrot (setvar "userr1" xrot))
nil)
(setq prmp (strcat "\nKatakana/Hiragana Writer, Version 1.50, Copyright © 1999 by Dem Legaspi Jr."))
(princ prmp)
(princ (strcat "\n" prt))
(initx pt1)
(setq entx (entlast) itx nil)
(setq hdl (append hdl (list (cdr (assoc 5 (entget entx))))))
(while (not out)
(setq grd (grread t 15 1))
(setq code (car grd))
(setq tx (cadr grd))
(if (= code 2)
(progn
(cond
( (= tx 20) ;;added Friday, May 12, 2000
(princ (strcat "\nActive Mode: " (nth (getvar "useri1") mode_lst)))
(initget 1 "Hiragana Katakana")
(setq opt (getkword "\nKatakana/Hiragana: "))
(cond
((= opt "Hiragana") (setvar "useri1" 1))
((= opt "Katakana") (setvar "useri1" 0))
)
(princ (strcat prmp "\n"))
)
( (= tx 8)
(setq lx (length (parse1 stx datab)))
(cond
(itx (setq index itx))
(t (setq index (- lx 1)))
)
(if (> lx 0)
(if itx
(if (< itx 1) (setq index -1))
)
)
(cond
( (>= index 0)
(setq stx (delete_string stx index))
(if itx (setq itx (- itx 1) index itx))
)
( (< index 0)
(setq hd (cdr (assoc 5 (entget entx))))
(setq idx (- (length hdl) (length (member hd hdl))))
(if (> idx 0)
(progn
(if (> lx 0) (setq stx1 stx) (setq stx1 nil))
(entdel entx)
(setq entx (handent (nth (- idx 1) hdl)))
(setq hdl (delete_handle hdl idx))
(setq stx0 (decipher (cdr (assoc 1 (entget entx))) rdatab))
(setq lx (length (parse1 stx0 datab)))
(setq x0 (if stx0 1 0))
(setq x1 (if stx1 2 0))
(setq x01 (+ x0 x1))
(cond
( (= x01 3)
(setq stx (strcat stx0 stx1))
(setq itx lx)
)
( (= x01 2) (setq stx stx1 itx 0))
( (= x01 1) (setq stx stx0 itx nil))
( (= x01 0) (setq stx "" itx nil))
)
)
)
)
)
)
( (= tx 127)
(setq xln (length (parse1 stx datab)))
(if itx
(progn
(setq mx (- xln 1))
(setq stx (delete_string stx itx))
(if (>= itx mx) (setq itx nil))
)
(progn
(setq hd (cdr (assoc 5 (entget entx))));;;
(setq idx (- (length hdl) (length (member hd hdl))));;;
(if (< idx (- (length hdl) 1))
(progn
(setq entx1 (handent (nth (+ idx 1) hdl)))
(setq stx1 (decipher (cdr (assoc 1 (entget entx1))) rdatab))
(if entx1 (entdel entx1))
(setq hdl (delete_handle hdl (+ idx 1)))
(setq xx (if (> (strlen stx) 0) 1 0))
(setq yy (* 2 (if (> (strlen stx1) 0) 1 0)))
(setq xy (+ xx yy))
(cond
((= xy 0) (setq itx nil))
((= xy 3) (setq itx xln))
((= xy 1) (setq itx nil))
((= xy 2) (setq itx 0))
)
(setq stx (strcat stx stx1))
)
)
)
)
)
( (= tx -6) ;; LEFT
(setq xln (length (parse1 stx datab)))
(if itx
(setq itx (- itx 1))
(setq itx (- xln 1))
)
(if (< itx 0)
(progn
(setq hd (cdr (assoc 5 (entget entx))))
(setq idx (- (length hdl) (length (member hd hdl))))
(if (> idx 0)
(progn
(puttext (translate stx datab) entx)
(setq idx (- idx 1))
(setq entx (handent (nth idx hdl)))
(setq stx (decipher (cdr (assoc 1 (entget entx))) rdatab))
)
)
(setq itx nil)
)
);; if
)
( (= tx -7) ;; RIGHT
(setq xln (length (parse1 stx datab)))
(cond
(itx
(setq itx (+ itx 1))
(if (> itx (- xln 1)) (setq itx nil))
)
(t (setq hd (cdr (assoc 5 (entget entx))))
(setq idx (- (length hdl) (length (member hd hdl))))
(if (< idx (- (length hdl) 1))
(progn
(puttext (translate stx datab) entx)
(setq idx (+ idx 1))
(setq entx (handent (nth idx hdl)))
(setq stx (decipher (cdr (assoc 1 (entget entx))) rdatab))
(setq xln (length (parse1 stx datab)))
(if (> xln 0) (setq itx 0))
)
)
)
)
)
( (= tx -4) ;; UP
(setq lxx (length (parse1 stx datab)))
(setq hd (cdr (assoc 5 (entget entx))))
(setq idx (- (length hdl) (length (member hd hdl))))
(if (> idx 0)
(progn
(puttext (translate stx datab) entx)
(setq idx (- idx 1))
(setq entx (handent (nth idx hdl)))
(setq stx (decipher (cdr (assoc 1 (entget entx))) rdatab))
(setq lx (length (parse1 stx datab)))
(cond
(itx (if (> itx (- lx 1)) (setq itx nil))
(if (< itx (- lx 1)) (setq itx itx))
)
(t (if (< lxx lx) (setq itx lxx)))
)
)
)
)
( (= tx -5) ;; DOWN
(setq lxx (length (parse1 stx datab)))
(setq hd (cdr (assoc 5 (entget entx))))
(setq idx (- (length hdl) (length (member hd hdl))))
(if (< idx (- (length hdl) 1))
(progn
(puttext (translate stx datab) entx)
(setq idx (+ idx 1))
(setq entx (handent (nth idx hdl)))
(setq stx (decipher (cdr (assoc 1 (entget entx))) rdatab))
(setq lx (length (parse1 stx datab)))
(cond
(itx (if (> itx (- lx 1)) (setq itx nil))
(if (< itx (- lx 1)) (setq itx itx))
)
(t (if (< lxx lx) (setq itx lxx)))
)
)
)
)
( (= tx 13)
(setq lx (length (setq lsx (parse1 stx datab))))
(cond
(itx (cond
( (= itx 0)
(setq stx0 "")
(setq stx1 stx)
)
(t (setq n 0 stx0 nil)
(repeat itx
(setq stx0 (append stx0 (list (nth n lsx))))
(setq n (+ n 1))
)
(setq stx0 (apply 'strcat stx0))
(setq stx0 (decipher stx0 rdatab))
(setq n itx stx1 nil)
(repeat (- lx itx)
(setq stx1 (append stx1 (list (nth n lsx))))
(setq n (+ n 1))
)
(setq stx1 (apply 'strcat stx1))
(setq stx1 (decipher stx1 rdatab))
)
)
)
(t (setq stx0 stx))
)
(puttext (translate stx0 datab) entx)
(setq hd (cdr (assoc 5 (entget entx))))
(setq idx (- (length hdl) (length (member hd hdl))))
(cond ;;; start
( (= idx (- (length hdl) 1))
(cond
( (> lx 0)
(cond
(itx (setq stx stx1 itx 0))
(t (setq stx ""))
)
(setq pt1 (cdr (assoc 11 (entget entx))) )
(setq pt1 (polar pt1 (- (getvar "userr1") (* 0.5 pi))
(* 1.4 (atof (getcfg "AppData/kata_user/textsize")) )))
(initx pt1)
(setq entx (entlast))
(setq hdl (append hdl (list (cdr (assoc 5 (entget entx))))))
)
(t (setq out t)(entdel entx))
)
)
( (< idx (- (length hdl) 1))
(progn
(puttext (translate stx0 datab) entx)
(setq hdl (insert_handle hdl entx idx))
(setq entx (entlast))
(setq idx (+ idx 1))
(cond
(itx (setq stx stx1)(setq itx 0))
(t (setq stx ""))
)
)
)
) ;;; end
)
( (= tx 21)
(alert
(strcat
"If you want some help, ask Mr. Dem !\n"
"Tel. No.: (032)-273-4840 (Cebu)"
)
)
)
( (= tx 999))
(t (setq opt (if (= (getvar "useri1") 0) t nil))
(if itx
(progn
(setq xln1 (length (parse1 stx datab)))
(setq stx (insert_string stx (strcase (chr tx) opt) itx))
(setq xln2 (length (parse1 stx datab)))
(if (> xln2 xln1) (setq itx (+ itx 1)))
(if (< xln2 xln1) (setq itx (- itx 1)))
)
(cond
((> (strlen stx) 0) (setq stx (strcat stx (strcase (chr tx) opt))))
(t (setq stx (strcase (chr tx) opt)))
)
);;if
);;t
)
(setq pt1 (cdr (assoc 11 (entget entx))) )
(if pt1 (kata_pan pt1))
(setq eraser " ")
(repeat (strlen ptx)(setq eraser (strcat eraser " ")))
(princ "\r")
(princ eraser)
(princ "\r")
(if itx (princ (strcat prt (capitalize stx itx)))
(princ (strcat prt (strcase stx t)))
)
;;;(alert (itoa tx));;;for testing only
(if (= stx "")
(puttext (strcase "_" t) entx)
(if itx
(puttext (mov_cursor stx datab itx) entx)
(puttext (strcat (translate stx datab) "_") entx)
)
)
(setq ptx (strcat prt stx))
)
)
)
)
(defun c:kana (/ ech osm ecur angb angd)
(graphscr)
(setq olderr *error* *error* kata_error)
(setq angb (getvar "angbase"))
(setq angd (getvar "angdir"))
(setq osm (getvar "osmode"))
(setq ech (getvar "cmdecho"))
(setvar "cmdecho" 0)
(setvar "osmode" 0)
(if (bigfont)
(progn
(command "_.undo" "group")
(katakana)
(command "_.undo" "end")
)
(alert "Current Textstyle must be BIGFONT/EXTFONT associated !")
)
(setvar "angbase" angb)
(setvar "angdir" angd)
(setvar "cmdecho" ech)
(setvar "osmode" osm)
(setq *error* olderr)
(princ)
)
(princ "\n\tKATAKANA/HIRAGANA Writer.")
(princ "\n\tTo activate, type \"KANA\".")
(princ)
― donut bitch (donut), Wednesday, 10 December 2003 20:37 (twenty-two years ago)
two years pass...
seven months pass...
two months pass...
three years pass...