明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 745|回复: 7

[提问] 求一段文本代码

[复制链接]
发表于 2020-9-26 10:41:32 | 显示全部楼层 |阅读模式
3明经币

自己搞不好呀

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

最佳答案

查看完整内容

(defun c:tt (/ gr loop name obj pt size str) (if (and (setq pt (cadr (grread t 15 0))) (entmake (list '(0 . "MTEXT") '(100 . "AcDbEntity") '(100 . "AcDbMText") ...
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2020-9-26 10:41:33 | 显示全部楼层
(defun c:tt (/ gr loop name obj pt size str)
        (if (and
                                (setq pt (cadr (grread t 15 0)))
                                (entmake (list
                                                 '(0 . "MTEXT")
                                                 '(100 . "AcDbEntity")
                                                 '(100 . "AcDbMText")
                                                 '(7 . "宋体")
                                                 (cons 1 "我是中国人")
                                                 (cons 10 (trans pt 1 0))
                                                 (cons 40 3.2)
                                                 (cons 210 (trans '(0.0 0.0 1.0) 1 0))
                                                 (cons 11 (trans '(1.0 0.0 0.0) 1 0))
                                         )
                                )
                                (setq name (entlast))
                        )
                (progn
                        (setq obj (vlax-ename->vla-object name))
                        (setq loop t)
                        (while loop
                                (setq gr (grread t 15 0))
                                (cond
                                        ((= (car gr) 5);移动
                                                (vla-put-InsertionPoint obj (vlax-3D-point (cadr gr)))
                                        )
                                        ((= (car gr) 3);左键
                                                (setq loop nil)
                                        )
                                        ((or
                                                 (= (car gr) 25);右键
                                                 (= (car gr) 2);空格
                                         )
                                                (entdel name)
                                                (setq loop nil)
                                        )
                                )
                        )
                )
        )
)
回复

使用道具 举报

发表于 2020-9-26 11:19:31 | 显示全部楼层
(defun c:tt (/ gr loop name obj pt size str)
(if (and
    (setq str (getstring "输入文字内容:"))
    (setq size 100)
    (setq pt (cadr (grread t 15 0)))
    (entmake (list
          (cons 0 "TEXT")
          (cons 10 pt)
          (cons 40 size)
          (cons 1 str)
          (cons 7 "宋体")
          (cons 210 (trans '(0.0 0.0 1.0) 1 0))
         )
    )
    (setq name (entlast))
   )
  (progn
   (setq obj (vlax-ename->vla-object name))
   (setq loop t)
   (while loop
    (setq gr (grread t 15 0))
    (cond
     ((= (car gr) 5);移动
      (vla-put-InsertionPoint obj (vlax-3D-point (cadr gr)))
     )
     ((= (car gr) 3);左键
      (setq loop nil)
     )
     ((or
       (= (car gr) 25);右键
       (= (car gr) 2);空格
      )
      (entdel name)
      (setq loop nil)
     )
    )
   )
  )
)
(princ)
)
回复

使用道具 举报

 楼主| 发表于 2020-9-26 12:52:23 | 显示全部楼层
taoyi0727 发表于 2020-9-26 11:19
(defun c:tt (/ gr loop name obj pt size str)
(if (and
    (setq str (getstring "输入文字内容:"))
...

老大,这个不是我想要的,我要的是把文本内容设好,一点就出来的.还有一个没说的,是多行文字.
谢谢了。
回复

使用道具 举报

发表于 2020-9-26 12:52:35 | 显示全部楼层
感谢楼主的分享
回复

使用道具 举报

 楼主| 发表于 2020-9-26 14:28:01 | 显示全部楼层
taoyi0727 发表于 2020-9-26 11:19
(defun c:tt (/ gr loop name obj pt size str)
(if (and
    (setq str (getstring "输入文字内容:"))
...

老大,能帮忙设下这代码吗。
;|以下为自定函数,用于生成制图日期=================================================|;
(DEFUN MY_DATE (/ TMP Y M D H MINUTE SECOND NYR SFM TXT)
  (setq tmp    (rtos (getvar "cdate") 2 8)
y      (rtos (atof (substr tmp 1 4)) 2 0)
m      (rtos (atof (substr tmp 5 2)) 2 3)
d      (rtos (atof (substr tmp 7 2)) 2 0)
h      (rtos (atof (substr tmp 10 2)) 2 0)
minute (rtos (atof (substr tmp 12 2)) 2 0)
second (rtos (atof (substr tmp 14 2)) 2 0)
yr     (strcat y "." m "." d)
sfm    (strcat h ":" minute ":" second)
sf     (strcat h ":" minute)
txt    (strcat "日期:" y "年" m "月" d "日")
  )
  (LIST Y M D H MINUTE SECOND YR SFM TXT sf) ;返回10个值
)     ;EDN DEFUN MY_DATE

现出来是2020.9.9
能设成  2020.09.09
感谢
回复

使用道具 举报

发表于 2020-9-26 15:14:26 | 显示全部楼层
(DEFUN MY_DATE (/ TMP Y M D H MINUTE SECOND NYR SFM TXT)
        (setq tmp    (rtos (getvar "cdate") 2 8))
        (setq y      (rtos (atof (substr tmp 1 4)) 2 0))
        (setq m      (rtos (atof (substr tmp 5 2)) 2 3))
        (setq d      (rtos (atof (substr tmp 7 2)) 2 0))
        (if (= (strlen M) 1) (setq M (strcat "0" M)))
        (if (= (strlen D) 1) (setq D (strcat "0" D)))
        (setq h      (rtos (atof (substr tmp 10 2)) 2 0))
        (setq minute (rtos (atof (substr tmp 12 2)) 2 0))
        (setq second (rtos (atof (substr tmp 14 2)) 2 0))
        (setq yr     (strcat y "." m "." d))
        (setq sfm    (strcat h ":" minute ":" second))
        (setq sf     (strcat h ":" minute))
        (setq txt    (strcat "日期:" y "年" m "月" d "日"))
  (LIST Y M D H MINUTE SECOND YR SFM TXT sf) ;返回10个值
)
回复

使用道具 举报

 楼主| 发表于 2020-9-26 17:11:45 | 显示全部楼层
taoyi0727 发表于 2020-9-26 15:14
(DEFUN MY_DATE (/ TMP Y M D H MINUTE SECOND NYR SFM TXT)
        (setq tmp    (rtos (getvar "cdate") 2 8)) ...

非常感谢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-17 17:15 , Processed in 0.247866 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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