在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例Lisp → 改变AUTOCAD中文字样式.lsp

改变AUTOCAD中文字样式.lsp

Lisp

下载此实例
  • 开发语言:Others
  • 实例大小:3.45KB
  • 下载次数:7
  • 浏览次数:141
  • 发布时间:2021-03-16
  • 实例类别:Lisp
  • 发 布 人:zht8315
  • 文件格式:.lsp
  • 所需积分:2
 相关标签: 改变文字样式

实例介绍

适用AUTOCAD自定义命令

【      

(defun _myerr(s)
   (if (/= s "Function cancelled")
     (if (/= s "quit / exit abort")
        (princ (strcat "\nError: " s))
     )
   )
   (setq *error* olderr)
   (unload_dialog index_value)
   (princ)
)

(defun C:CHGSTYLE( / x total_list style_list 
               every_list index_value setup)
  (setq olderr *error* *error* _myerr)
  (setq x (tblnext "STYLE" T))
  (while x
    (setq every_list (list (cdr (assoc 2  x))
                           (strcat (cdr (assoc 3 x)) "," (cdr (assoc 4 x)))
                           (cdr (assoc 40 x))
                           (cdr (assoc 41 x))
                           (cdr (assoc 50 x))
                           (cdr (assoc 70 x))
                           (cdr (assoc 71 x))
                     )
    )
    (setq total_list (append total_list (list every_list)))
    (setq style_list (append style_list (list (cdr (assoc 2  x)))))
    (setq x (tblnext "STYLE"))
  )
  (if (not (member txtstyle style_list))
    (setq txtstyle (getvar "textstyle"))
  )
  
  (defun setup (mark / style umark)
    (setq style (nth mark total_list) umark "")
    (setq txtstyle (nth 0 style))
    (set_tile "style_edit" (nth 0 style)) 
    (set_tile "font"    (nth 1 style))
    (set_tile "height"  (rtos (nth 2 style) 2 0)) 
    (set_tile "width"   (rtos (nth 3 style) 2 1))
    (set_tile "oblique" (rtos (/ (* 180.0 (nth 4 style)) pi)  2 0))
    (if (= (logand (nth 6 style) 2) 2)
      (setq umark (strcat umark "Backwards "))
    )
    (if (= (logand (fix (nth 6 style)) 4) 4)
      (setq umark (strcat umark "Upside-down "))
    )
    (if (= (logand (fix (nth 5 style)) 4) 4)
      (setq umark (strcat umark "Vertical"))
    )
    (if (= umark "")
      (setq umark "Normal")
    )
    (set_tile "gen"     umark)
  )

  (defun chg_style ( txtstyle / a ss1 n m s1 tet tet1 e)
    (setq a 1)
    (while (<= a 1000000)
      (setq ss1 (ssget))
      (if (null ss1) 
        (setq a 1000000)
        (progn
          (setq n (sslength ss1) m 0)
          (while (< m n)
            (setq s1 (ssname ss1 m))
            (setq tet1 (strcase "TEXT"))
            (setq tet (cdr (assoc 0 (entget s1))))
            (if (= tet tet1) 
              (progn
                (setq e (entget s1))
                (setq e (subst (cons 7 txtstyle) (assoc 7 e) e))
                (entmod e)
              )
            )
            (setq m ( m 1))
          )
        )
      )
      (setq a ( a 1))
    )
    (princ)
  )
  
  (defun init( )
    (if (member txtstyle style_list) 
      (done_dialog 1)
      (set_tile "error" "字型无效.")
    )
  )  

  (if (> (setq index_value (load_dialog "user")) 0)
    (progn
      (if (new_dialog "txtstyle" index_value)
        (progn
          (start_list "style_list")
            (mapcar 'add_list style_list)
          (end_list)
          (setup (- (length style_list) (length (member txtstyle style_list)) ))
          (action_tile "style_list" "(set_tile \"error\" \"\")(setup (atoi $value))")
          (action_tile "style_edit" "(setq txtstyle $value)")
          (action_tile "accept" "(init)")
          (action_tile "cancel" "(done_dialog 0)(quit)")
          (start_dialog)
          (chg_style txtstyle)
        )
        (alert "       不能显示对话框!          ")
      ) 
      (unload_dialog index_value)
    ) 
    (alert "         不能装入对话框!         ")
  ) 
  (setq *error* olderr)
  (redraw)
  (princ)
)

(princ)

实例简介】
【实例截图】
【核心代码】

标签: 改变文字样式

实例下载地址

改变AUTOCAD中文字样式.lsp

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警