明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3438|回复: 11

[求助]对文字加边框

[复制链接]
发表于 2007-4-20 06:49 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2007-4-20 7:01:43 编辑

下面是我按一本书中抄写的“给文字加边框”的程序,不知那里有错误?

烦请高手指点。谢谢!

(defun c:wzk (/ teztent ang sinrot cosrot t1 t2 p0 p1 p2 p3 p4)
  (setq teztent (entget (car (entsel "\nselect text:"))))
  (setq p0 (car (assoc 10 textent))
      ang (car (assoc 50 textent))
      sinrot (sin ang)
      cosrot (cos ang)
      t1 (car (textbox textbox))
      t2 (cadr (textbox textbox))
      p1 (list (+ car p0)
        (- (* (car t1) cosrot)(* (cadr t1) sinrot))
        (+ (cadr p0)
         (+ (* car t1) sinrot)(* (cadr t1) cosrot))
         )
      p2 (list (+ car p0)
        (- (* (car t2) cosrot)(* (cadr t1) sinrot))
        (+ (cadr p0)
        (+ (* car t2) sinrot)(* (cadr t1) cosrot))
         )
      p3 (list (+ car p0)
        (- (* (car t2) cosrot)(* (cadr t2) sinrot))
        (+ (cadr p0)
        (+ (* car t2) sinrot)(* (cadr t2) cosrot))
         )
      p4 (list (+ car p0)
        (- (* (car t1) cosrot)(* (cadr t2) sinrot))
        (+ (cadr p0)
        (+ (* car t1) sinrot)(* (cadr t2) cosrot))
         )
    );setq end
    (command "pline" p1 p2 p3 p4 "c")
    (princ)
)

发表于 2007-4-20 08:25 | 显示全部楼层
好多地方输入错误
  1. (defun c:wzk (/ teztent ang sinrot cosrot t1 t2 p0 p1 p2 p3 p4);文字加框
  2.   (setq textent (entget (car (entsel "\nselect text:"))))
  3.   (setq p0 (cdr (assoc 10 textent))
  4.       ang (cdr (assoc 50 textent))
  5.       sinrot (sin ang)
  6.       cosrot (cos ang)
  7.       t1 (car (textbox textent))
  8.       t2 (cadr (textbox textent))
  9.       p1 (list (+ (car p0)
  10.         (- (* (car t1) cosrot)(* (cadr t1) sinrot)))
  11.         (+ (cadr p0)
  12.          (+ (* (car t1) sinrot)(* (cadr t1) cosrot)))
  13.          )
  14.       p2 (list (+ (car p0)
  15.         (- (* (car t2) cosrot)(* (cadr t1) sinrot)))
  16.         (+ (cadr p0)
  17.         (+ (* (car t2) sinrot)(* (cadr t1) cosrot)))
  18.          )
  19.       p3 (list (+ (car p0)
  20.         (- (* (car t2) cosrot)(* (cadr t2) sinrot)))
  21.         (+ (cadr p0)
  22.         (+ (* (car t2) sinrot)(* (cadr t2) cosrot)))
  23.          )
  24.       p4 (list (+ (car p0)
  25.         (- (* (car t1) cosrot)(* (cadr t2) sinrot)))
  26.         (+ (cadr p0)
  27.         (+ (* (car t1) sinrot)(* (cadr t2) cosrot)))
  28.          )
  29.     );setq end
  30.     (command "pline" p1 p2 p3 p4 "c")
  31.     (princ)
  32. )
 楼主| 发表于 2007-4-20 12:51 | 显示全部楼层
本帖最后由 作者 于 2007-4-20 12:57:29 编辑
  1. 谢谢byghbcx的帮助!
复制代码
  1. (defun c:wzk (/ teztent ang sinrot cosrot t1 t2 p0 p1 p2 p3 p4);文字加框
  2.    (setq textent (entget (car (entsel "\n请选择文字:"))))
  3.    (setq p0 (cdr (assoc 10 textent))
  4.        ang (cdr (assoc 50 textent))
  5.        sinrot (sin ang)
  6.        cosrot (cos ang)
  7.        t1 (car (textbox textent))
  8.        t2 (cadr (textbox textent))
  9.        p1 (list (+ -5(car p0)
  10.          (- (* (car t1) cosrot)(* (cadr t1) sinrot)))
  11.          (+ (cadr p0)
  12.           (+ -5 (* (car t1) sinrot)(* (cadr t1) cosrot)))
  13.           )
  14.        p2 (list (+ 5 (car p0)
  15.          (- (* (car t2) cosrot)(* (cadr t1) sinrot)))
  16.          (+ -5 (cadr p0)
  17.          (+ (* (car t2) sinrot)(* (cadr t1) cosrot)))
  18.           )
  19.        p3 (list (+ 5 (car p0)
  20.          (- (* (car t2) cosrot)(* (cadr t2) sinrot)))
  21.          (+ 5 (cadr p0)
  22.          (+ (* (car t2) sinrot)(* (cadr t2) cosrot)))
  23.           )
  24.        p4 (list (+ -5 (car p0)
  25.          (- (* (car t1) cosrot)(* (cadr t2) sinrot)))
  26.          (+ 5 (cadr p0)
  27.          (+ (* (car t1) sinrot)(* (cadr t2) cosrot)))
  28.           )
  29.      );setq end
  30.      (command "pline" p1 p2 p3 p4 "c")
  31.      (princ)
  32. )
为什么四边全部增加字框与文字的距离(5)后(如上面程序),系统提示:
错误: 参数类型错误: lentityp nil
而只增加三边时却可以?
发表于 2007-4-20 15:08 | 显示全部楼层
增加距离用极坐标算较方便,用笛卡尔坐标系较复杂,你上面程序可以运行的,只是求的不对.
  1. (defun c:wzk (/ teztent ang sinrot cosrot h t1 t2 p0 p1 p2 p3 p4);文字加框
  2.    (setq textent (entget (car (entsel "\n请选择文字:"))))
  3.    (setq p0 (cdr (assoc 10 textent))
  4.        ang (cdr (assoc 50 textent))
  5.        h  (cdr (assoc 40 textent))  
  6.        sinrot (sin ang)
  7.        cosrot (cos ang)
  8.        t1 (car (textbox textent))
  9.        t2 (cadr (textbox textent))
  10.        p1 (list (+ (car p0)
  11.          (- (* (car t1) cosrot)(* (cadr t1) sinrot)))
  12.          (+ (cadr p0)
  13.           (+  (* (car t1) sinrot)(* (cadr t1) cosrot)))
  14.           )
  15.        p2 (list (+  (car p0)
  16.          (- (* (car t2) cosrot)(* (cadr t1) sinrot)))
  17.          (+  (cadr p0)
  18.          (+ (* (car t2) sinrot)(* (cadr t1) cosrot)))
  19.           )
  20.        p3 (list (+  (car p0)
  21.          (- (* (car t2) cosrot)(* (cadr t2) sinrot)))
  22.          (+  (cadr p0)
  23.          (+ (* (car t2) sinrot)(* (cadr t2) cosrot)))
  24.           )
  25.        p4 (list (+  (car p0)
  26.          (- (* (car t1) cosrot)(* (cadr t2) sinrot)))
  27.          (+ (cadr p0)
  28.          (+ (* (car t1) sinrot)(* (cadr t2) cosrot)))
  29.           )
  30.        p1 (polar p1 (+ ang (* pi 1.25)) (* h 0.2))
  31.        p2 (polar p2 (+ ang (* pi 1.75)) (* h 0.2))
  32.        p3 (polar p3 (+ ang (* pi 0.25)) (* h 0.2))
  33.        p4 (polar p4 (+ ang (* pi 0.75)) (* h 0.2))
  34.      );setq end
  35.      (command "pline" p1 p2 p3 p4 "c")
  36.      (princ)
  37. )
 楼主| 发表于 2007-4-20 17:33 | 显示全部楼层

再次谢谢byghbcx的帮助!

本想送上鲜花,但“帖子操作”不能使用。

只能再次说声谢谢!!!

发表于 2007-4-30 11:25 | 显示全部楼层
能不能改成给标注文字加边框
发表于 2007-4-30 14:14 | 显示全部楼层
尚存在问题,受与之相交的图元的影响,加框线会有变化,请在修改.
发表于 2007-4-30 20:21 | 显示全部楼层

如果要求不高的话,可以用et工具里面的给文字加边框

网上有一个找实体最大外围的程序,也可以用的

发表于 2007-5-2 08:26 | 显示全部楼层
phoenixdjq发表于2007-4-30 20:21:00网上有一个找实体最大外围的程序,也可以用的

哦~

改天找找~

发表于 2007-5-2 20:44 | 显示全部楼层
本帖最后由 作者 于 2007-5-2 20:45:39 编辑

 关于text文本处理的程序“文本编辑套件”:

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-4-26 11:52 , Processed in 0.382449 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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