找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 831|回复: 3

[求助] [求助]:文字如何与坐标关联?

[复制链接]
发表于 2009-2-27 11:21:05 | 显示全部楼层 |阅读模式

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

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

×
求助高手,能否让文字的内容是文字插入点的X坐标,并且当文字的位置移动时,文字的内容自动更新!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2009-2-27 13:22:24 | 显示全部楼层
用对象反应器可以实现,联系ljttjl@ tom.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2009-2-27 13:53:05 | 显示全部楼层

  1.   [FONT=courier new]
  2. (defun th-mktxt (string insertionpt hight width ang sty mir lar / ent)
  3.   (if (= ang nil)
  4.     (setq ang 0)
  5.   )
  6.   (if (= width nil)
  7.     (setq width 1)
  8.   )
  9.   (if (= sty nil)
  10.     (setq sty (getvar "TEXTSTYLE"))
  11.   )
  12.   (if (= lar nil)
  13.     (setq lar (getvar "CLAYER"))
  14.   )
  15.   (if (setq ent (entmakex (list '(0 . "TEXT") '(100 . "AcDbEntity") '
  16.                                 (100 . "AcDbText") (cons 1 string)
  17.                                 (cons 10 insertionpt) (cons 40 hight)
  18.                                 (cons 41 width) (cons 50 (d2r ang))
  19.                                 (cons 7 sty) (cons 8 lar) (cons 71 mir)
  20.                           )
  21.                 )
  22.       )
  23.     ent
  24.   )
  25. )
  26. (defun d2r (n)                         ; 角度转弧度
  27.   (/ (* pi n) 180.0)
  28. )
  29. (defun r2d (n)                         ; 弧度转角度
  30.   (/ (* 180.0 n) pi)
  31. )
  32. (defun th-entmake-style (name font / en)
  33.   (if (setq en (tblobjname "style" name))
  34.     (th-sub-upd en 3 font)
  35.     (setq en (entmakex (list '(0 . "STYLE") '(100 . "AcDbSymbolTableRecord")
  36.                              '(100 . "AcDbTextStyleTableRecord")
  37.                              (cons 2 name) '(70 . 0) '(40 . 0.0) '
  38.                              (41 . 1.0) '(50 . 0.0) '(71 . 0) '(42 . 1.0)
  39.                              (cons 3 font) '(4 . "")
  40.                        )
  41.              )
  42.     )
  43.   )
  44.   (setvar "textstyle" name)
  45.   en
  46. )
  47. (defun th-sub-upd (ename code newvalue / assoce el)
  48.   (setq el (entget ename))
  49.   (if (setq assoce (assoc code (entget ename)))
  50.     (setq el (subst
  51.                (cons code newvalue)
  52.                assoce
  53.                el
  54.              )
  55.     )
  56.     (setq el (append
  57.                el
  58.                (list (cons code newvalue))
  59.              )
  60.     )
  61.   )
  62.   (entmod el)
  63.   (entupd ename)
  64. )
  65. (defun uangle (bit kwd msg def bpt / inp)
  66.   (if def
  67.     (setq msg (strcat "\n" msg "<" (angtos def) ">: ")
  68.           bit (* (fix (/ bit 2)))
  69.     )
  70.     (setq msg (strcat "\n" msg ": "))
  71.   )
  72.   (initget bit kwd)
  73.   (setq inp (if bpt
  74.               (getangle msg bpt)
  75.               (getangle msg)
  76.             )
  77.   )
  78.   (if inp
  79.     inp
  80.     def
  81.   )
  82. )
  83. (defun udist (bit kwd msg def bpt / inp)
  84.   (if def
  85.     (setq msg (strcat "\n" msg "<" (rtos def) ">:")
  86.           bit (* 2 (fix (/ bit 2)))
  87.     )
  88.     (setq msg (strcat "\n" msg ":"))
  89.   )
  90.   (initget bit kwd)
  91.   (setq inp (if bpt
  92.               (getdist msg bpt)
  93.               (getdist msg)
  94.             )
  95.   )
  96.   (if inp
  97.     inp
  98.     def
  99.   )
  100. )
  101. (defun c:test (/ ang ent grr hi pt x)
  102.   (setq hi (vlax-ldata-get "mydict" "hi"))
  103.   (setq hi (udist 1 "" "文本高" hi nil))
  104.   (vlax-ldata-put "mydict" "hi" hi)
  105.   (setq ang (vlax-ldata-get "mydict" "ang"))
  106.   (setq ang (uangle 1 "" "文本角度" ang nil))
  107.   (vlax-ldata-put "mydict" "ang" ang)
  108.   (th-entmake-style "mol" "swiss.ttf")
  109.   (while (and
  110.            (setq grr (grread 5))
  111.            (or
  112.              (= (car grr) 5)
  113.              (= (car grr) 12)
  114.            )
  115.          )
  116.     (setq pt (cadr grr))
  117.     (setq x (rtos (car pt)))
  118.     (vl-catch-all-apply 'entdel (list ent))
  119.     (setq ent (th-mktxt x pt hi 1 (r2d ang) "mol" 0 nil))
  120.   )
  121.   (princ)
  122. )
  123. (defun c:test2 (/ ang ent grr hi pt x)
  124.   (setq hi (vlax-ldata-get "mydict" "hi"))
  125.   (setq hi (udist 1 "" "文本高" hi nil))
  126.   (vlax-ldata-put "mydict" "hi" hi)
  127.   (setq ang (vlax-ldata-get "mydict" "ang"))
  128.   (setq ang (uangle 1 "" "文本角度" ang nil))
  129.   (vlax-ldata-put "mydict" "ang" ang)
  130.   (th-entmake-style "mol" "swiss.ttf")
  131.   (while (and
  132.            (setq grr (grread 5))
  133.            (or
  134.              (= (car grr) 5)
  135.              (= (car grr) 12)
  136.            )
  137.          )
  138.     (setq pt (cadr grr))
  139.     (setq x (vl-princ-to-string pt))
  140.     (vl-catch-all-apply 'entdel (list ent))
  141.     (setq ent (th-mktxt x pt hi 1 (r2d ang) "mol" 0 nil))
  142.   )
  143.   (princ)
  144. )

  145.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-27 17:03:17 | 显示全部楼层
楼上的用grread动态显示输入时的x坐标,很感谢!我说的文字移动后更新,应该是用反应器实现的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-4 10:37 , Processed in 0.347043 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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