找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2184|回复: 12

把文字加删除线[分享]

[复制链接]
发表于 2002-1-24 20:07:54 | 显示全部楼层 |阅读模式

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

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

×

  1. ;;;把文字加删除线
  2. ;;;程序设计:赖云龙;;;
  3. ;;;---------------;;;
  4. (defun C:MT  (/             HOLDOSMODE           HOLDCLAYER         SS        TEXTM  TEXTM1
  5.               M10    M40    M42           M43          M50         M71        PT1    PT2
  6.               PT3    PT4    PT5           PT6          PT7         PT8        PT9    RT
  7.               TB     DIST   DIST1  D          ANG
  8.              )
  9.   (command "_.UNDO" "BE")
  10.   (setq HOLDOSMODE (getvar "OSMODE"))
  11.   (setq HOLDCLAYER (getvar "CLAYER"))
  12.   (setvar "OSMODE" 0)
  13.   (if (= (tblsearch "LAYER" "DIM") NIL)
  14.     (command "_.layer" "m"         "dim"           "c"             "cyan"
  15.              ""               "lt"         "continuous"             ""
  16.              ""
  17.             )
  18.   )
  19.   (setvar "CLAYER" HOLDCLAYER)
  20.   (setq TEXTM1 (car (nentsel)))
  21.   (setq TEXTM (entget TEXTM1))
  22.   (cond
  23.     ((= "MTEXT" (cdr (assoc 0 TEXTM)))
  24.      (command "_.ucs" "W")
  25.      (setq M10 (cdr (assoc 10 TEXTM)))
  26.      (setq M40 (cdr (assoc 40 TEXTM)))
  27.      (setq M42 (cdr (assoc 42 TEXTM)))
  28.      (setq M43 (cdr (assoc 43 TEXTM)))
  29.      (setq M50 (cdr (assoc 50 TEXTM)))
  30.      (setq M71 (cdr (assoc 71 TEXTM)))
  31.      (setq PT9 (list (+ (car M10) M42) (cadr M10) (caddr M10)))
  32.      (setq PT3 (list (car PT9) (+ (cadr PT9) M43) (caddr PT9)))
  33.      (setq PT1 (list (car M10) (+ (cadr M10) M43) (caddr M10)))
  34.      (setq PT8 (list (+ (car M10) (/ M42 2)) (cadr M10) (caddr M10)))
  35.      (setq PT4 (list (car M10) (+ (cadr M10) (/ M43 2)) (caddr M10)))
  36.      (setq PT2 (list (+ (car M10) (/ M42 2))
  37.                      (+ (cadr M10) M43)
  38.                      (caddr M10)
  39.                )
  40.      )
  41.      (setq PT6 (list (+ (car M10) M42)
  42.                      (+ (cadr M10) (/ M43 2))
  43.                      (caddr M10)
  44.                )
  45.      )
  46.      (setq SS (ssadd))
  47.      (setq ANG (angle M10 PT1))
  48.      (setq M101 (polar M10 ANG (/ M40 3.0)))
  49.      (setq PT91 (polar PT9 ANG (/ M40 3.0)))
  50.      (command "_.LINE" M101 PT91 "")
  51.      (ssadd (entlast) SS)
  52.      (setq SS1 (entlast))
  53.      (command "_.OFFSET" (/ M40 3.0) (entlast) M101 "")
  54.      (ssadd (entlast) SS)
  55.      (setq PT5 (inters M10 PT3 PT9 PT1))
  56.      (cond
  57.        ((= 1 M71) (command "._move" SS "" PT1 M10)) ;1 = Top left
  58.        ((= 2 M71) (command "._move" SS "" PT2 M10)) ;2 = Top center
  59.        ((= 3 M71) (command "._move" SS "" PT3 M10)) ;3 = Top right
  60.        ((= 4 M71) (command "._move" SS "" PT4 M10)) ;4 = Middle left
  61.        ((= 5 M71) (command "._move" SS "" PT5 M10)) ;5 = Middle center
  62.        ((= 6 M71) (command "._move" SS "" PT6 M10)) ;6 = Middle right
  63. ;;;    ((= 7 M71) (command "._move" SS "" M10 M10)) ;7 = Bottom left
  64.        ((= 8 M71) (command "._move" SS "" PT8 M10)) ;8 = Bottom center
  65.        ((= 9 M71) (command "._move" SS "" PT9 M10)) ;9 = Bottom right
  66.      )
  67.      (command "_.ROTATE" SS "" M10 (/ (* 180 M50) pi))
  68.      (command "_.CHANGE" SS "" "P" "LA" "DIM" "C" 6 "")
  69.      (setq DIST (* M40 1.66))
  70.      (setq DIST1 (fix (/ M43 DIST)))
  71.      (setq D 1)
  72.      (repeat DIST1
  73.        (command        "_.COPY"
  74.                 SS
  75.                 ""
  76.                 M10
  77.                 (polar M10 (+ M50 (/ pi 2)) (* DIST D))
  78.        )
  79.        (setq D (+ 1 D))
  80.      )
  81.      (command "_.ucs" "p")
  82.     )
  83.     ((= "TEXT" (cdr (assoc 0 TEXTM)))
  84.      (command "_.ucs" "Object" TEXTM1)
  85.      (setq TB (textbox (list (cons -1 TEXTM1))))
  86.      (setq PT1 (car TB)
  87.            PT2 (cadr TB)
  88.            PT3 (list (car PT1) (cadr PT2))
  89.            PT4 (list (car PT2) (cadr PT1))
  90.      )
  91.      (setq DIST (/ (distance PT1 PT3) 3.0))
  92.      (setq ANG (angle PT1 PT3))
  93.      (setq SS (ssadd))
  94.      (command "_.LINE" PT1 PT4 "")
  95.      (ssadd (entlast) SS)
  96.      (command "_.MOVE"
  97.               (entlast)
  98.               ""
  99.               "0,0"
  100.               (polar '(0 0) ANG DIST)
  101.      )
  102.      (command "_.OFFSET" DIST (entlast) PT3 "")
  103.      (ssadd (entlast) SS)
  104.      (command "_.CHANGE" SS "" "P" "LA" "DIM" "C" 6 "")
  105.      (command "_.ucs" "p")
  106.     )
  107.   )
  108.   (setvar "OSMODE" HOLDOSMODE)
  109.   (command "_.UNDO" "END")
  110.   (princ)
  111. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 8个

财富等级: 恭喜发财

发表于 2002-1-26 09:50:07 | 显示全部楼层
;;;

  1. (Defun c:ourwjc1        (/     count lyx   doc         ben   handles           l1         l2
  2.                  lyx   lyy   count x1         x2    y1    y2           ELI         pp
  3.                  ent
  4.                 )
  5.   (setq pp nil)
  6.   (setq count 0)
  7.   (setq lyx nil)
  8.   (setq lyy nil)
  9.   (vl-load-com)
  10.   (SetQ doc (VLA-Get-ActiveDocument (VLAX-Get-ACAD-Object)))
  11.   (prompt "\n 请选择实体:..")
  12.   (setq ben (ssget))
  13.   (if ben
  14.     (progn
  15.       (while (< count (sslength ben))
  16.         (setq ent (ssname ben count))
  17.         (SetQ
  18.           handles
  19.            (Cdr (Assoc 5 (EntGet ent)))
  20.         )
  21.         (VLA-GetBoundingBox
  22.           (VLA-HandleToObject doc handles)
  23.           'llp
  24.           'urp
  25.         )
  26.         (setq l1 (VLAX-SafeArray->List llp))
  27.         (setq lyx (cons (Car l1) lyx))
  28.         (setq lyy (cons (Cadr l1) lyy))
  29.         (setq l2 (VLAX-SafeArray->List urp))
  30.         (setq lyx (cons (Car l2) lyx))
  31.         (setq lyy (cons (Cadr l2) lyy))
  32.         (setq count (1+ count))
  33.       )
  34.       (setq lyx (vl-sort lyx '<))
  35.       (setq lyy (vl-sort lyy '<))
  36.       (setq x1 (nth 0 lyx)
  37.             x2 (last lyx)
  38.       )
  39.       (setq y1 (nth 0 lyy)
  40.             y2 (last lyy)
  41.       )
  42. ;;;      (setq p1 (list x1 y2)
  43. ;;;            p2 (list x1 y1)
  44. ;;;      )
  45. ;;;      (setq eli        (list (cons 0 "LINE")
  46. ;;;                      (cons 8 "外框")
  47. ;;;                      (cons 10 P1)
  48. ;;;                      (cons 11 P2)
  49. ;;;                )
  50. ;;;      )
  51. ;;;      (entmake eli)
  52. ;;;      (setq p1 (list x2 y1))
  53. ;;;      (setq eli        (list (cons 0 "LINE")
  54. ;;;                      (cons 8 "外框")
  55. ;;;                      (cons 10 P1)
  56. ;;;                      (cons 11 P2)
  57. ;;;                )
  58. ;;;      )
  59. ;;;      (entmake eli)
  60. ;;;      (setq p2 (list x2 y2))
  61. ;;;      (setq eli        (list (cons 0 "LINE")
  62. ;;;                      (cons 8 "外框")
  63. ;;;                      (cons 10 P1)
  64. ;;;                      (cons 11 P2)
  65. ;;;                )
  66. ;;;      )
  67. ;;;      (entmake eli)
  68. ;;;      (setq p1 (list x1 y2))
  69. ;;;      (setq eli        (list (cons 0 "LINE")
  70. ;;;                      (cons 8 "外框")
  71. ;;;                      (cons 10 P1)
  72. ;;;                      (cons 11 P2)
  73. ;;;                )
  74. ;;;      )
  75. ;;;      (entmake eli)
  76. ;;;      (setq p1 nil
  77. ;;;            p2 nil
  78. ;;;      )
  79.       (setq p1 (list x1 y1)
  80.             p2 (list x2 y2)
  81.       )
  82.       (setlay "取消" 2 "HIDDEN")
  83.       (setq eli        (list (cons 0 "LINE")
  84.                       (cons 8 "取消")
  85.                       (cons 10 P1)
  86.                       (cons 11 P2)
  87.                 )
  88.       )
  89.       (entmake eli)
  90.       (setq p1 (list x1 Y2)
  91.             p2 (list x2 y1)
  92.       )
  93.       (setq eli        (list (cons 0 "LINE")
  94.                       (cons 8 "取消")
  95.                       (cons 10 P1)
  96.                       (cons 11 P2)
  97.                 )
  98.       )
  99.       (entmake eli)
  100.     )
  101.                                         ;progn
  102.     (prompt "\n 未选取到实体:..")
  103.   )
  104.   (SETQ        BEN NIL
  105.         ent nil
  106.         handles        nil
  107.         llp nil
  108.         urp nil
  109.         l1 nil
  110.         lyx nil
  111.         lyy nil
  112.         l2 nil
  113.         x1 nil
  114.         x2 nil
  115.         y1 nil
  116.         y2 nil
  117.         l nil
  118.         pp nil
  119.         ls nil
  120.         p1 nil
  121.         p2 nil
  122.         eli nil
  123.   )
  124.   (princ)
  125. )
  126. ;;;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 8个

财富等级: 恭喜发财

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-6-15 11:23:57 | 显示全部楼层
呵呵,文字.实体都可以

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

使用道具 举报

发表于 2005-7-3 22:55:57 | 显示全部楼层
第一个程序只对文字有效,第二个对各种实体都有效,但是我也出现了“no function definition: SETLAY ”的问题,我干脆把SETLAY这句取消就可以了,不知道这句的作用时什么。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2005-12-18 11:58:13 | 显示全部楼层
可以给文字(单行文本)加单下划线、双下划线、双删除线和矩形外框
http://www.xdcad.net/forum/showthread.php?s=&threadid=498681
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 23:31 , Processed in 0.206884 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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