找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 942|回复: 6

[求助] [求助]:LISP中立方米符号的输入

[复制链接]

已领礼包: 2个

财富等级: 恭喜发财

发表于 2005-8-12 08:25:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
我用LISP向CAD中写入文字时,要写入立方米符号,
我用的是下述方法,
定义字符串
str="m\\u+00B3"
再用(command "text" .......)把str写入到CAD中,
但出现下列情况,有些字体下符号正确,有些字体下不正确,即3不在m的右上角。
是不是有其它方法,可以输入立方米符号,而不出现上述情况。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 111个

财富等级: 日进斗金

发表于 2005-8-12 22:54:24 | 显示全部楼层
能够真正接受文本格式控制的对象必须是"MText",而不是Text,请试用以下程序。
;在Auot CAD中给文本添加上下标
(defun c:wbsb()
   (vl-load-com)
   (setq cm (getvar "cmdecho") om (getvar "osmode"))
   (setvar "cmdecho" 0) (setvar "osmode" 0)
   (initget "1 2")
   (setq bz (getkword "
请输入标记类型[1 上标,  2 下标]:"))
   (if (= bz "1") (setq tsf "
请输入上标:") (setq tsf "
请输入下标:" ))
   (while (setq qb (car (entsel "
请选择文本:")))
       (setq sb (getstring tsf)    db (entget qb)
      zg  (cdr (assoc 40 db))           
      zfc (cdr (assoc 1 db))            pt (cdr (assoc 10 db))
      wb  (cons 1 (strcat "\A1;" zfc "{\H0.7x;\S" sb "^;}"))
       )
       (if (= bz "2") (setq wb  (cons 1 (strcat "\A1;" zfc "{\H0.7x;\S^" sb ";}"))))
       (if (= (cdr (assoc 0 db)) "TEXT")
           (progn
       (setq pt (mapcar '+ (list 0.2 zg 0) pt))
              (entmake
           (list  '(0 . "MTEXT") '(100 . "AcDbEntity") '(67 . 0) '(100 . "AcDbMText")
                   (cons 10 pt) wb
           )
       )
       (command "_matchprop" qb (entlast) "")
       (entdel qb)
           )
           (progn (setq db (subst wb (assoc 1 db) db)) (entmod db))
      )
   )
   (setvar "cmdecho" cm) (setvar "osmode" om) (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-13 07:20:37 | 显示全部楼层
2楼主能否讲一下怎么用吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-13 15:07:15 | 显示全部楼层
在LISP中要实现TEXT文本上下标功能,须配合字体“形”文件方能实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-13 15:14:23 | 显示全部楼层
二楼程序好象不能用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-14 11:17:01 | 显示全部楼层
只要输入 “ m3^ ” ,然后点击MTEXT上的a/b按钮。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-14 11:39:10 | 显示全部楼层
二楼程序改进:
  1. [FONT=courier new](load "xyp_lib")
  2. ;|加载通用函数(可在签名栏直接下载)
  3. 如果已经下载xyp_lib并放到搜索路径下可以不再下载!
  4. 利用以下任何一种方式即可加载和运行通用函数内的所有子程序:
  5. 1.在acad.lsp中增加(load"xyp_lib")
  6. 2.在每个程序内增加(load"xyp_lib")
  7. 3.在command下,输入(load"xyp_lib")
  8. 4.在菜单.mnl中增加(load"xyp_lib")
  9. 5.将xyp_lib.vlx文件直接拽到cad屏幕
  10. [COLOR=red] ★通用函数下载地址:[/COLOR]
  11. [url]http://www.xdcad.net/forum/attachment.php?s=&postid=1606661[/url]
  12. [url]http://www.mjtd.com/bbs/dispbbs.asp?boardID=3&ID=37554&page=1[/url]|;

  13. (defun c:test ()
  14.   (cmdla0)
  15.   (setq bz (UKWORD 1 "1 2 3" "\n标记类型 : 1-上标/2-下标/3-上下标" bz))
  16.   (cond        ((= bz "1") (setq sb (USTR 1 "\n上标" sb nil)))
  17.         ((= bz "2") (setq xb (USTR 1 "\n下标" xb nil)))
  18.         ((= bz "3")
  19.          (setq sb (USTR 1 "\n上标" sb nil)
  20.                xb (USTR 1 "\n下标" xb nil)
  21.          )
  22.         )
  23.   )
  24.   (while (setq qb (car (entsel "请选择文本:")))
  25.     (setq db  (entget qb)
  26.           zg  (dxf 40 db)
  27.           zfc (dxf 1 (entget qb))
  28.           pt  (dxf 10 db)
  29.     )
  30.     (cond ((= bz "1")
  31.            (setq wb (strcat "\\A1;" zfc "{\\H0.7x;\\S" sb "^;}"))
  32.           )
  33.           ((= bz "2")
  34.            (setq wb (strcat "\\A1;" zfc "{\\H0.7x;\\S^" xb ";}"))
  35.           )
  36.           ((= bz "3")
  37.            (setq wb (strcat "\\A1;" zfc "{\\H0.7x;\\S" sb "^" xb ";}"))
  38.           )
  39.     )
  40.     (if        (= (dxf 0 db) "TEXT")
  41.       (progn
  42.         (setq pt (mapcar '+ (list 0.2 zg 0) pt))
  43.         (entmake
  44.           (list        '(0 . "MTEXT")
  45.                 '(100 . "AcDbEntity")
  46.                 '(67 . 0)
  47.                 '(100 . "AcDbMText")
  48.                 (cons 10 pt)
  49.                 (cons 1 wb)
  50.           )
  51.         )
  52.         (command "_matchprop" qb (entlast) "")
  53.         (entdel qb)
  54.       )
  55.       (sub_upd qb 1 wb)
  56.     )
  57.   )
  58.   (cmdla1)
  59. )[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-23 19:45 , Processed in 0.215580 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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