将数字转换为文字数字
嗨,首先感谢李·麦克和rkmcswain帮助我我写了一个lisp,可以将数字转换为阿拉伯语的文本数字
但是,我在这个lisp中有一些问题,我使用数学方程来像这样分离每个数字
665.33
x=600
y=60
z=5
x1=30
x2=3
然后我使用第n个,通过序列修复条件
这没问题,但当到达逗号后的数字时,变量x2增加+1到除3之外的值,我不知道为什么这样做
请帮我解决这个问题
; NCONVERT.lsp - convert number to text
(defun c:NC (x6 )
(setq n ( getdist "\nEnter the no. :"))
(setq x1 ( fix (/ n 100)))
(setq x2 (fix(/ (- n (* (fix (/ n 100)) 100 )) 10)))
(setq x3 (fix(- n (* x1 100) (* x2 10))))
(setq x4 (- n (* 100 x1) (* 10 x2) x3))
(setq x5 (* 100 x4))
(setq x6 (fix x5))
(setq y1 (nth x1 '("" "lhzm" "lzjhk" "eghelhzm" "hvfulhzm" "olslhzm" "sjlhzm""sfulhzm" "elhklhzm" "jsulhzm")))
(setq y2 (nth x2 '("" ",uav" ",uav,k" ",eghe,k" ",hvfu,k" ",ols,k" ",sj,k" ",sfu,k" ",elhk,k" ",jsu,k")))
(setq y3 (nth x3 '("" ",,hp]" ",hekhk" ",eghem" ",hvfum" ",olsm" ",sjm" ",sfum" ",elhkdm" ",jsum")))
(setq x5 (* 100 x4))
(setq x6 (fix x5))
(setq y6 (nth x6 '("" ",,hp]" ",hekhk" ",eghem" ",hvfum" ",olsm" ",sjm" ",sfum" ",elhkdm" ",jsum" ",uavm" ",hp] uav" ",hekh uav" ",eghem uav" ",hvfum uav" ",olsm uav" ",sjm uav" ",sfum uav" ",elhkdm uav" ",jsum uav" ",uav,k" ",,hp] ,uav,k" ",hekhk ,uav,k" ",eghem ,uav,k" ",hvfum ,uav,k" ",olsm ,uav,k" ",sjm ,uav,k" ",sfum ,uav,k" ",elhkdm ,uav,k" ",jsum ,uav,k" ",eghe,k" ",,hp] ,eghe,k" ",hekhk ,eghe,k" ",eghem ,eghe,k" ",hvfum ,eghe,k" ",olsm ,eghe,k" ",sjm ,eghe,k" ",sfum ,eghe,k" ",elhkdm ,eghe,k" ",jsum ,eghe,k" ",hvfu,k" ",,hp] ,hvfu,k" ",hekhk ,hvfu,k" ",eghem ,hvfu,k" ",hvfum ,hvfu,k" ",olsm ,hvfu,k" ",sjm ,hvfu,k" ",sfum ,hvfu,k" ",elhkdm ,hvfu,k" ",jsum ,hvfu,k" ",ols,k" ",,hp] ,ols,k" ",hekhk ,ols,k" ",eghem ,ols,k" ",hvfum ,ols,k" ",olsm ,ols,k" ",sjm ,ols,k" ",sfum ,ols,k" ",elhkdm ,ols,k" ",jsum ,ols,k" ",sj,k" ",,hp] ,sj,k" ",hekhk ,sj,k" ",eghem ,sj,k" ",hvfum ,sj,k" ",olsm ,sj,k" ",sjm ,sj,k" ",sfum ,sj,k" ",elhkdm ,sj,k" ",jsum ,sj,k" ",sfu,k" ",,hp] ,sfu,k" ",hekhk ,sfu,k" ",eghem ,sfu,k" ",hvfum ,sfu,k" ",olsm ,sfu,k" ",sjm ,sfu,k" ",sfum ,sfu,k" ",elhkdm ,sfu,k" ",jsum ,sfu,k" ",elhk,k" ",,hp] ,elhk,k" ",hekhk ,elhk,k" ",eghem ,elhk,k" ",hvfum ,elhk,k" ",olsm ,elhk,k" ",sjm ,elhk,k" ",sfum ,elhk,k" ",elhkdm ,elhk,k" ",jsum ,elhk,k" ",jsu,k" ",,hp] ,jsu,k" ",hekhk ,jsu,k" ",eghem ,jsu,k" ",hvfum ,jsu,k" ",olsm ,jsu,k" ",sjm ,jsu,k" ",sfum ,jsu,k" ",elhkdm ,jsu,k" ",jsum ,jsu,k")))
(setq v (strcat y1 " " y3 " " y2 " " "ljvh lvfu" " " y6 " " "skjljvh lvfu" ))
(SETQ pt (GETPOINT"\nWHERE TO PLACE LABLE ?"))
(command "text" "m" PT 1 0 v)
) 有什么答案吗 也许可以试试这样:
(defun c:nc ( / f n p )
(setq f '(( x ) (fix (+ x 1e-)))
(initget 6)
(if (and (setq n (getreal"\nEnter number: "))
(setq p (getpoint "\nSpecify point for text: "))
)
(entmake
(list
'(0 . "TEXT")
(cons 40 (getvar 'textsize))
(cons 10 p)
(cons 01
(strcat
(nth (f (/ n 100)) '("" "lhzm" "lzjhk" "eghelhzm" "hvfulhzm" "olslhzm" "sjlhzm""sfulhzm" "elhklhzm" "jsulhzm")) " "
(nth (f (rem n 10)) '("" ",,hp]" ",hekhk" ",eghem" ",hvfum" ",olsm" ",sjm" ",sfum" ",elhkdm" ",jsum")) " "
(nth (f (/ (rem n 100) 10)) '("" ",uav" ",uav,k" ",eghe,k" ",hvfu,k" ",ols,k" ",sj,k" ",sfu,k" ",elhk,k" ",jsu,k")) " ljvh lvfu "
(nth (f (* 100 (rem n 1))) '("" ",,hp]" ",hekhk" ",eghem" ",hvfum" ",olsm" ",sjm" ",sfum" ",elhkdm" ",jsum" ",uavm" ",hp] uav" ",hekh uav" ",eghem uav" ",hvfum uav" ",olsm uav" ",sjm uav" ",sfum uav" ",elhkdm uav" ",jsum uav" ",uav,k" ",,hp] ,uav,k" ",hekhk ,uav,k" ",eghem ,uav,k" ",hvfum ,uav,k" ",olsm ,uav,k" ",sjm ,uav,k" ",sfum ,uav,k" ",elhkdm ,uav,k" ",jsum ,uav,k" ",eghe,k" ",,hp] ,eghe,k" ",hekhk ,eghe,k" ",eghem ,eghe,k" ",hvfum ,eghe,k" ",olsm ,eghe,k" ",sjm ,eghe,k" ",sfum ,eghe,k" ",elhkdm ,eghe,k" ",jsum ,eghe,k" ",hvfu,k" ",,hp] ,hvfu,k" ",hekhk ,hvfu,k" ",eghem ,hvfu,k" ",hvfum ,hvfu,k" ",olsm ,hvfu,k" ",sjm ,hvfu,k" ",sfum ,hvfu,k" ",elhkdm ,hvfu,k" ",jsum ,hvfu,k" ",ols,k" ",,hp] ,ols,k" ",hekhk ,ols,k" ",eghem ,ols,k" ",hvfum ,ols,k" ",olsm ,ols,k" ",sjm ,ols,k" ",sfum ,ols,k" ",elhkdm ,ols,k" ",jsum ,ols,k" ",sj,k" ",,hp] ,sj,k" ",hekhk ,sj,k" ",eghem ,sj,k" ",hvfum ,sj,k" ",olsm ,sj,k" ",sjm ,sj,k" ",sfum ,sj,k" ",elhkdm ,sj,k" ",jsum ,sj,k" ",sfu,k" ",,hp] ,sfu,k" ",hekhk ,sfu,k" ",eghem ,sfu,k" ",hvfum ,sfu,k" ",olsm ,sfu,k" ",sjm ,sfu,k" ",sfum ,sfu,k" ",elhkdm ,sfu,k" ",jsum ,sfu,k" ",elhk,k" ",,hp] ,elhk,k" ",hekhk ,elhk,k" ",eghem ,elhk,k" ",hvfum ,elhk,k" ",olsm ,elhk,k" ",sjm ,elhk,k" ",sfum ,elhk,k" ",elhkdm ,elhk,k" ",jsum ,elhk,k" ",jsu,k" ",,hp] ,jsu,k" ",hekhk ,jsu,k" ",eghem ,jsu,k" ",hvfum ,jsu,k" ",olsm ,jsu,k" ",sjm ,jsu,k" ",sfum ,jsu,k" ",elhkdm ,jsu,k" ",jsum ,jsu,k"))
" skjljvh lvfu"
)
)
)
)
)
(princ)
) 谢谢李,但是问题仍然存在,你能帮我吗?
谢谢李,但是问题仍然存在,你能帮我吗?
https://www.cadtutor.net/file:///C:/Users/M.QASWAL/Desktop/111.JPG 谢谢,我现在已经修改了上述代码-请重试,如果问题仍然存在,请告诉我。 谢谢,问题解决了上帝保佑你:D:D 好听;不客气! 谢谢李的帮助,我还有另一个请求,你能用lisp语言选择数字而不是写数字吗
是应该替换选定的文本,还是应该创建新的文本对象?
页:
[1]
2