明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 品茗新秀

[已解答] 求序号标注,如1写到l图上为一

[复制链接]
发表于 2014-5-10 23:04 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
回复

使用道具 举报

发表于 2014-5-11 06:38 | 显示全部楼层
这个晓东上面 有函数

评分

参与人数 1明经币 +1 收起 理由
品茗新秀 + 1 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2014-5-11 12:14 | 显示全部楼层
品茗新秀 发表于 2014-5-10 17:49
为什么不把自已写的贴出来,主要是自已是写的如是1,变量就是一,以此类推,实在太笨的方法,但可以一次写入 ...

多笨的办法老师们也不会笑你。。至少你写了。。。没成功
说出你的想法和思路   大师们会给你指正或修改
你一味地求程序,,大师们也不会帮你
怀疑你压根就没写
回复

使用道具 举报

 楼主| 发表于 2014-5-14 18:05 | 显示全部楼层
本帖最后由 品茗新秀 于 2014-5-14 18:09 编辑
ysq101 发表于 2014-5-11 12:14
多笨的办法老师们也不会笑你。。至少你写了。。。没成功
说出你的想法和思路   大师们会给你指正或修改
...


实在想不起来,还还求高手帮助,对我实在找不到好办法。几天一直在想如何搞。这个怎么好象简单,实质难得不得了。
跪求各路大神不吝赐教


回复

使用道具 举报

发表于 2014-5-14 20:24 | 显示全部楼层
品茗新秀 发表于 2014-5-14 18:05
实在想不起来,还还求高手帮助,对我实在找不到好办法。几天一直在想如何搞。这个怎么好象简单,实质难 ...

贴码出来看看
回复

使用道具 举报

 楼主| 发表于 2014-5-14 21:47 | 显示全部楼层
看了这个可能对我有一定的帮助,贴出来;;数字转中文
;;num string 数字
;;mod t 中文数字 nil 大写中文数字
(defun XD::String:Num->CN (String  mod           /           List:Split
                           ChkZerop           Int->CN l1           l2
                           nint           nzerop  dot           int           zp
                           l
                          )
  (defun list:split (lst n / ll nl)
    (while lst
      (repeat n
        (setq ll  (cons (car lst) ll)
              lst (cdr lst)
        )
      )
      (setq nl (cons (reverse ll) nl)
            ll nil
      )
    )
    (reverse nl)
  )
  (defun chkzerop (lst)
    (mapcar '(lambda (x)
               (mapcar '(lambda        (a)
                          (if (or (= a "0") (null a))
                            ""
                            a
                          )
                        )
                       x
               )
             )
            lst
    )
  )
  (defun Int->CN (lst mod / str tf)
    (setq lst (mapcar '(lambda (x)
                         (mapcar '(lambda (a b)
                                    (if        (= a "")
                                      ""
                                      (strcat
                                        (if mod
                                          (cadr (assoc a l2))
                                          (caddr (assoc a l2))
                                        )
                                        (if mod
                                          (car b)
                                          (cadr b)
                                        )
                                      )
                                    )
                                  )
                                 x
                                 l1
                         )
                       )
                      lst
              )
          lst (mapcar
                '(lambda (a / l)
                   (setq l (mapcar '(lambda (x y)
                                      (if (= x "")
                                        (if (= y "")
                                          "零"
                                          (strcat "零" y)
                                        )
                                        (strcat x y)
                                      )
                                    )
                                   a
                                   (cdr a)
                           )
                   )
                   (vl-string-subst "零" "零零" (strcat (car l) (caddr l)))
                 )
                (reverse (mapcar 'reverse lst))
              )
          lst (mapcar '(lambda (x)
                         (if (= x "零")
                           ""
                           x
                         )
                       )
                      lst
              )
    )
    (if        (= (substr (car lst) 1 2) "零")
      (setq lst (cons (substr (car lst) 3) (cdr lst)))
    )
    (setq lst (reverse lst)
          str (car lst)
          tf  t
    )
    (while (setq lst (cdr lst))
      (if tf
        (setq str (strcat (car lst) "万" str)
              tf  nil
        )
        (setq str (strcat (car lst) "亿" str)
              tf  t
        )
      )
    )
    (setq str (vl-string-subst "万" "零万" str)
          str (vl-string-subst "亿" "零亿" str)
    )
    (if        mod
      (xdrx_string_replace str "零" "〇")
      str
    )
  )
  ;;Main
  (setq        zp (vl-string-search "." String)
        l1 '(("" "") ("十" "拾") ("百" "佰") ("千" "仟"))
        l2 '(("0" "〇" "零")
             ("1" "一" "壹")
             ("2" "二" "贰")
             ("3" "三" "叁")
             ("4" "四" "肆")
             ("5" "五" "伍")
             ("6" "六" "陆")
             ("7" "七" "柒")
             ("8" "八" "捌")
             ("9" "九" "玖")
            )
  )
  (if (or zp (and zp (zerop zp)))
    (setq nzerop (XD::String:RegexpS "\\d" (substr String (+ 2 zp)) "")
          nzerop (strcat "点"
                         (apply        'strcat
                                (if mod
                                  (mapcar '(lambda (x)
                                             (cadr (assoc x l2))
                                           )
                                          nzerop
                                  )
                                  (mapcar '(lambda (x)
                                             (caddr (assoc x l2))
                                           )
                                          nzerop
                                  )
                                )
                         )
                 )
          nint         (substr String 1 zp)
    )
    (setq nzerop ""
          nint String
    )
  )
  (if (/= nint "")
    (setq nint (chkzerop
                 (list:split
                   (reverse (XD::String:RegexpS "\\d" nint "")
                   )
                   4
                 )
               )
          nint (vl-string-right-trim "零" (Int->CN nint mod))
    )
    (setq nint "")
  )
  (strcat nint nzerop)
)
回复

使用道具 举报

发表于 2014-5-17 16:48 | 显示全部楼层
本帖最后由 edata 于 2014-5-17 21:24 编辑

  1. (defun int->str2(sk_n sk_flag / sk- A I K LST LST2 S SK_N->STR1 SK_N->STR2 STR)
  2.   (setq sk_n->str1(list(list 0 (if sk_flag "〇" "零"))
  3.                        (list 1 (if sk_flag "一" "壹"))
  4.                        (list 2 (if sk_flag "二" "贰"))
  5.                        (list 3 (if sk_flag "三" "叁"))
  6.                        (list 4 (if sk_flag "四" "肆"))
  7.                        (list 5 (if sk_flag "五" "伍"))
  8.                        (list 6 (if sk_flag "六" "陆"))
  9.                        (list 7 (if sk_flag "七" "柒"))
  10.                        (list 8 (if sk_flag "八" "捌"))
  11.                        (list 9 (if sk_flag "九" "玖")))
  12.         sk_n->str2(list'(1 "")
  13.                        (list 2 (if sk_flag "十" "拾"))
  14.                        (list 3 (if sk_flag "百" "佰"))
  15.                        (list 4 (if sk_flag "千" "仟"))
  16.                        (list 5 "万")
  17.                        (list 6 (if sk_flag "十万" "拾万"))
  18.                        (list 7 (if sk_flag "百万" "佰万"))
  19.                        (list 8 (if sk_flag "千万" "仟万"))
  20.                        (list 9 "亿万")
  21.                        (list 10 (if sk_flag "十亿" "拾亿"))
  22.                        (list 11 (if sk_flag "百亿" "佰亿"))
  23.                        (list 12 "万亿")
  24.                        (list 13 "兆")))
  25.   (if (< sk_n 0)(setq sk_n(abs sk_n) sk- "负"))
  26.   (if(= sk_n 0)(setq lst2 "零")
  27.     (progn
  28.       (setq str(rtos sk_n 2 0) lst'() i 0 lst2 "" )
  29.       (while (/= (setq s(substr str (setq i(1+ i)) 1)) "")
  30.         (setq lst(cons s lst))
  31.         )
  32.       (setq lst(reverse lst) k (1+(length lst)))
  33.       (while(setq a(car lst))
  34.         (setq lst2(strcat lst2
  35.                           (cond                           
  36.                             ((and (= a "0") (= k 2)) "")
  37.                             ((and (= a "0") (> k 1)(= (cadr lst) "0"))(setq k(1- k)) "")
  38.                             ((and (= a "0") (> k 1)(/= (cadr lst) "0"))(setq k(1- k)) "零")
  39.                             (t (strcat(cadr(assoc (atoi a) sk_n->str1))(cadr(assoc (setq k(1- k)) sk_n->str2)))))
  40.                           ))
  41.         (setq lst(cdr lst))
  42.         )
  43.       (if sk-(setq lst2(strcat sk- lst2)))
  44.       lst2
  45.       )
  46.     )
  47.   )
  48. ;;;写文字程序
  49. ;;;输入实数整型范围
  50.     (defun c:tt        (/ i p k)
  51.       (or(and (setq i(getreal "\nEnter integer number:"))(if (< i 0)(setq k t i (1+ i))(setq i(1- i))))(setq i 0))
  52.       (if i
  53.       (while (setq p (getpoint "\nInsert point:"))
  54.         (entmake (list '(0 . "TEXT")
  55.                        (cons 1 (int->str2 (cond
  56.                                             ((and (not k) (= i -1))(setq i (1+ i)))
  57.                                             (k (setq i (1- i)))
  58.                                             (t (setq i (1+ i))))
  59.                                  nil
  60.                                  )
  61.                              )
  62.                        (cons 10 p)
  63.                        (cons 40 50)
  64.                  )
  65.         )
  66.       ))
  67.       (princ)
  68.     )

评分

参与人数 2明经币 +2 收起 理由
品茗新秀 + 1 很给力!
lucas_3333 + 1 神马都是浮云

查看全部评分

回复

使用道具 举报

发表于 2014-5-17 17:15 | 显示全部楼层
edata 发表于 2014-5-17 16:48

E大,好程序!
回复

使用道具 举报

 楼主| 发表于 2014-5-17 21:05 | 显示全部楼层
edata 发表于 2014-5-17 16:48

这一句没看懂   (setq str(rtos sk_n 2 8) lst'() i 0 lst2 "" )
回复

使用道具 举报

发表于 2014-5-17 21:26 | 显示全部楼层
应该是(rtos sk_n 2 0) ,原本想加小数点,但是用不到,就算了。忘了改回来。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-5 12:08 , Processed in 0.401864 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表