找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 596|回复: 9

[编程申请]:文字查找并缩放到对应的地方for r14

[复制链接]
发表于 2004-4-7 18:33:20 | 显示全部楼层 |阅读模式

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

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

×
在r14版本下没有查找到文字并缩放到指定位置的软件
所以大家讨论一下怎么实现???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-4-7 18:40:18 | 显示全部楼层

Re: [编程申请]:文字查找并缩放到对应的地方for r14

最初由 wujimmy 发布
[B]在r14版本下没有查找到文字并缩放到指定位置的软件
所以大家讨论一下怎么实现??? [/B]

1 查找文字 (ssget '((1 . string)))
2 然后用循环的方法把字 Move 到指定点并使用 Scale
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-4-7 18:43:33 | 显示全部楼层
我的意思不是移动文字,而是
找到文字以后,把窗口缩放到一定的大小,能够正好看到找到的文字
本来2000里面就用这个功能
但是我不能用2000的(盗版的不能用)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-4-7 18:48:21 | 显示全部楼层
最初由 wujimmy 发布
[B]我的意思不是移动文字,而是
找到文字以后,把窗口缩放到一定的大小,能够正好看到找到的文字
本来2000里面就用这个功能
但是我不能用2000的(盗版的不能用) [/B]

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

使用道具 举报

 楼主| 发表于 2004-4-7 19:22:37 | 显示全部楼层
斑竹回复帖子的速度真是快啊!
不错,还有textbox这个函数:
(下面是autocad r14中文版的帮助)

测量一个指定文本对象的尺寸,并返回围住该文本的一个矩形框的对角坐标

(textbox elist)

elist 参数是一个图元定义数据表,其格式与 entget 函数返回的表的格式相同。它定义的必须是一个文本对象。如果在 elist 表中定义文本参数(而不是文本本身)的那些域被省略,则使用当前值或缺省值。如果 textbox 函数调用成功,它返回一个包括两个点的表;否则它返回 nil。

textbox 函数可以接受的最小的表是文本本身:

(textbox '((1 . "Hello world.")))                可能返回 ((0.0 0.0 0.0) (0.8 0.2 0.0))

在这种情况下,textbox 函数将使用当前缺省值来为文本提供其余参数。

textbox 函数返回的点描述了文本对象的边框(假定该文本对象的插入点是 (0,0,0),而它的旋转角度是 0)。通常由 textbox 函数返回的第一个子表是点 (0.0 0.0 0.0),除非该文本对象是倾斜的、或者是垂直书写的、或者它包含的字符串中有下行字符(如 g 和 p)。第一个点表的值指定从文本的插入点到围住该文本的最小矩形的左下角的偏移量。第二个点表的值指定该矩形框的右上角。无论被测量文本的方向怎样,返回的两个点表总是描述围住文本的矩形框的左下角和右上角。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-4-7 19:46:25 | 显示全部楼层
最初由 wujimmy 发布
[B]斑竹回复帖子的速度真是快啊!
不错,还有textbox这个函数:
(下面是autocad r14中文版的帮助)

测量一个指定文本对象的尺寸,并返回围住该文本的一个矩形框的对角坐标

(textbox elist)

elist 参数是一?.. [/B]

  1. (defun c:test (/ str ss box e1 oldos)
  2.   (if (and (setq str (getstring "\n查找字串: "))
  3.            (/= str "")
  4.       )
  5.     (progn
  6.       (setq oldos (getvar "osmode"))
  7.       (setvar "osmode" 0)
  8.       (setq ss (ssget (list (cons 1 str))))
  9.       (if ss
  10.         (progn
  11.           (setq        e1  (ssname ss 0)
  12.                 box (textbox (entget e1))
  13.           )
  14.           (command ".ucs" "e" e1)
  15.           (command ".zoom" "w" (car box) (cadr box))
  16.           (command ".ucs" "p")
  17.         )
  18.       )
  19.       (setvar "osmode" oldos)
  20.     )
  21.   )
  22.   (princ)
  23. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 00:04:22 | 显示全部楼层
有个好用的LISP看一下是不是你想要的

  1. (defun c:tc (/ chgtxt zoompt1 zoompt2 sstxt sstxtlen txtent1 txtins dwgscal
  2.                      pt1 pt3 num embed zoomnext txtent1 txtstyl txtlay txtinspt
  3.                      txt_elev txt_height txt_rotate txt_obliq txt_width txt_color
  4.                      txt_2_chg txt_chg)
  5.   (setq txt (getstring T "\nEnter text string to zoom to: "))
  6.   (initget 1 "Y N")
  7.   (setq embed (getkword "\nSearch for embedded strings? <Y or N>: "))
  8.   (if (= embed "Y")
  9.     (setq txt (strcat "*" txt "*"))
  10.   )
  11.   (setq zoompt1 (getvar "extmin"))
  12.   (setq zoompt2 (getvar "extmax"))
  13.   (setq search_list
  14.     (list
  15.       (cons 0 "text")
  16.       (cons 1 txt)
  17.     )
  18.   )
  19.   (if (/= (setq sstxt (ssget "X" search_list)) nil)
  20.     (progn
  21.       (setq sstxtlen (sslength sstxt))
  22.       (alert (strcat "\nThere are " (itoa sstxtlen) " text entities meeting your criteria"))
  23.       (setq
  24.         txtent1 (entget (ssname sstxt 0))
  25.         txtins (cdr (assoc '10 txtent1))
  26.         dwgscal (getvar "ltscale")
  27.         pt1 (list (- (car txtins) (* 1.0 dwgscal))
  28.                   (- (cadr txtins) (* 1.0 dwgscal))
  29.             )
  30.         pt3 (list (+ (car txtins) (* 1.0 dwgscal))
  31.                   (+ (cadr txtins) (* 1.0 dwgscal))
  32.             )
  33.       )
  34.       (command "_zoom" "w" pt1 pt3)
  35.       (initget 1 "T P N")
  36.       (setq chgtxt (getkword "\nEdit Text, text Properties or Neither? <T P N>: "))
  37.       (cond ((= chgtxt "T") (command "_ddedit" (ssname sstxt 0) ""))
  38.             ((= chgtxt "P") (txt_prop))
  39.             ((= chgtxt "N") (setq num 1))
  40.       )
  41.       (setq num 1)
  42.       (if (> sstxtlen 1)
  43.         (progn
  44.           (initget 1 "Y N")
  45.           (while (and (/= (setq zoomnext (getkword "\nZoom to next string? <Y or N>: ")) "N") (< num sstxtlen))
  46.             (ssdel (ssname sstxt 0) sstxt)
  47.             (setq
  48.               txtent1 (entget (ssname sstxt 0))
  49.               txtins (cdr (assoc '10 txtent1))
  50.               dwgscal (getvar "ltscale")
  51.               pt1 (list (- (car txtins) (* 1.0 dwgscal))
  52.                         (- (cadr txtins) (* 1.0 dwgscal))
  53.                   )
  54.               pt3 (list (+ (car txtins) (* 1.0 dwgscal))
  55.                         (+ (cadr txtins) (* 1.0 dwgscal))
  56.                   )
  57.             )
  58.             (command "_zoom" "w" pt1 pt3)
  59.             (initget 1 "T P N")
  60.             (setq chgtxt (getkword "\nEdit Text, text Properties or Neither? <T P N>: "))
  61.             (cond ((= chgtxt "T") (command "_ddedit" (ssname sstxt 0) ""))
  62.                   ((= chgtxt "P") (txt_prop))
  63.                   ((= chgtxt "N") (setq num 1))
  64.             )
  65.             (setq num (+ num 1))
  66.             (initget 1 "Y N")
  67.           )
  68.         )
  69.       )
  70.       (command "_zoom" zoompt1 zoompt2)
  71.     )
  72.     (alert (strcat "\nThe text string ,"txt", does not exist in this drawing...  Sorry!!!"))
  73.   )
  74. )

  75. (Defun txt_prop ()
  76.   (setq
  77.     txt_styl (cdr (assoc '7 (entget (ssname sstxt 0))))
  78.     txt_lay (cdr (assoc '8 (entget (ssname sstxt 0))))
  79.     txt_inspt (cdr (assoc '10 (entget (ssname sstxt 0))))
  80.     txt_elev (cdr (assoc '38 (entget (ssname sstxt 0))))
  81.     txt_height (cdr (assoc '40 (entget (ssname sstxt 0))))
  82.     txt_width (cdr (assoc '41 (entget (ssname sstxt 0))))
  83.     txt_rotate (cdr (assoc '50 (entget (ssname sstxt 0))))
  84.     txt_obliq (cdr (assoc '51 (entget (ssname sstxt 0))))
  85.     txt_color (cdr (assoc '62 (entget (ssname sstxt 0))))
  86.   )
  87.   (prompt (strcat "\nCurrent text Style is :           " txt_styl))
  88.   (prompt (strcat "\nCurrent text Layer is :           " txt_lay))
  89.   (prompt (strcat "\nCurrent text Insertion point:     "
  90.                   (if (< (car txt_inspt) 0.0)
  91.                     (strcat "-" (rtos (abs (car txt_inspt)) 2 4))
  92.                     (rtos (car txt_inspt) 2 4)
  93.                   )
  94.                   ","
  95.                   (if (< (cadr txt_inspt) 0.0)
  96.                     (strcat "-" (rtos (abs (cadr txt_inspt)) 2 4))
  97.                     (rtos (cadr txt_inspt) 2 4)
  98.                   )
  99.                   ","
  100.                   (if (< (nth 2 txt_inspt) 0.0)
  101.                     (strcat "-" (rtos (abs (nth 2 txt_inspt)) 2 4))
  102.                     (rtos (nth 2 txt_inspt) 2 4)
  103.                   )
  104.           )
  105.   )
  106.   (if (/= txt_elev nil)
  107.     (prompt (strcat "\nCurrent text Elevation is :       " (rtos txt_elev 2 4)))
  108.     (prompt "\nCurrent text elevation is :       0")
  109.   )
  110.   (prompt (strcat "\nCurrent text Height is :          " (rtos txt_height 2 4)))
  111.   (prompt (strcat "\nCurrent text Width is :           " (rtos txt_width 2 4)))
  112.   (prompt (strcat "\nCurrent text Rotation angle is :  " (rtos txt_rotate 2 4)))
  113.   (prompt (strcat "\nCurrent text Obliquing angle is : " (rtos txt_obliq 2 4)))
  114.   (if (/= txt_color nil)
  115.     (prompt (strcat "\nCurrent text Color is :           " (rtos txt_color 2 4)))
  116.     (prompt "\nCurrent text color is :           Bylayer")
  117.   )
  118.   (setq txt_2_chg 1)
  119.   (while (/= txt_2_chg "Q")
  120.   (initget "S L I E H W R O C Q")
  121.   (setq txt_2_chg (getkword "\nChange which property -
  122.             Style,Layer,Insertion point,Elev,Height,Width,Rotation,Oblique angle,Color, or Quit: "))  
  123.   (cond
  124.     ((= txt_2_chg "S")
  125.        (command "style" "?" "*")
  126.        (setq txt_styl (getstring "\nWhich text style do you wish to use? : "))
  127.        (txt_2_make)
  128.     )
  129.     ((= txt_2_chg "L")
  130.        (alert "\nLook for the layer you wish")
  131.        (command "_ddlmodes")
  132.        (setq txt_lay (getstring "\nWhich text layer do you wish to use? : "))
  133.        (txt_2_make)
  134.     )
  135.     ((= txt_2_chg "I")
  136.        (setq txt_inspt (getpoint "\nPick new text insertion point: "))
  137.        (txt_2_make)
  138.     )
  139.     ((= txt_2_chg "E")
  140.        (setq txt_elev (getreal "\nEnter the text elevation you wish to use: "))
  141.        (txt_2_make)
  142.     )
  143.     ((= txt_2_chg "H")
  144.        (setq txt_height (getreal "\nEnter the text height you wish to use: "))
  145.        (txt_2_make)
  146.     )
  147.     ((= txt_2_chg "W")
  148.        (setq txt_width (getreal "\nEnter the text width you wish to use: "))
  149.        (txt_2_make)
  150.     )
  151.     ((= txt_2_chg "R")
  152.        (setq txt_rotate (getangle "\nEnter or pick the text rotation you wish to use: "))
  153.        (txt_2_make)
  154.     )
  155.     ((= txt_2_chg "O")
  156.        (setq txt_obliq (* (/ (getreal "\nEnter the text obliquing angle you wish to use: ") 180.0) PI))
  157.        (txt_2_make)
  158.     )
  159.     ((= txt_2_chg "C")
  160.        (setq txt_color (getreal "\nEnter the number for the text color you wish to use: "))
  161.        (txt_2_make)
  162.     )
  163.   )
  164.   )
  165. )

  166. (defun txt_2_make ()
  167.   (setq txt_chg (entget (ssname sstxt 0)))
  168.   (setq txt_chg (subst (cons 7 txt_styl) (assoc 7 txt_chg) txt_chg))
  169.   (entmod txt_chg)
  170.   (setq txt_chg (entget (ssname sstxt 0)))
  171.   (setq txt_chg (subst (cons 8 txt_lay) (assoc 8 txt_chg) txt_chg))
  172.   (entmod txt_chg)
  173.   (setq txt_chg (entget (ssname sstxt 0)))
  174.   (setq txt_chg (subst (cons 10 txt_inspt) (assoc 10 txt_chg) txt_chg))
  175.   (entmod txt_chg)
  176.   (if (/= txt_elev nil)
  177.     (progn
  178.       (setq txt_chg (entget (ssname sstxt 0)))
  179.       (setq txt_chg (subst (cons 38 txt_elev) (assoc 38 txt_chg) txt_chg))
  180.       (entmod txt_chg)
  181.     )
  182.   )
  183.   (setq txt_chg (entget (ssname sstxt 0)))
  184.   (setq txt_chg (subst (cons 40 txt_height) (assoc 40 txt_chg) txt_chg))
  185.   (entmod txt_chg)
  186.   (setq txt_chg (entget (ssname sstxt 0)))
  187.   (setq txt_chg (subst (cons 41 txt_width) (assoc 41 txt_chg) txt_chg))
  188.   (entmod txt_chg)
  189.   (setq txt_chg (entget (ssname sstxt 0)))
  190.   (setq txt_chg (subst (cons 50 txt_rotate) (assoc 50 txt_chg) txt_chg))
  191.   (entmod txt_chg)
  192.   (setq txt_chg (entget (ssname sstxt 0)))
  193.   (setq txt_chg (subst (cons 51 txt_obliq) (assoc 51 txt_chg) txt_chg))
  194.   (entmod txt_chg)
  195.   (if (/= txt_color nil)
  196.     (progn
  197.       (setq txt_chg (entget (ssname sstxt 0)))
  198.       (setq txt_chg (subst (cons 62 txt_color) (assoc 62 txt_color) txt_chg))
  199.       (entmod txt_chg)
  200.     )
  201.   )
  202. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-4-8 17:55:43 | 显示全部楼层
最初由 coolzhb 发布
[B]李国杰老师编的asde中命令tsr就是你要的命令! [/B]




我用的就是李国杰老师(是不是哪个学校的老师啊?介绍一下)的asdehk.arx
不过里面好像没有这个命令啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 18:13:52 | 显示全部楼层
最初由 wujimmy 发布
[B]
我用的就是李国杰老师(是不是哪个学校的老师啊?介绍一下)的asdehk.arx
不过里面好像没有这个命令啊! [/B]

你得安装李国杰老师的asde软件才有tsr命令,不是拷其中的一个文件asdehk.arx,是一个cad平台上的二次开发软件,在下载中心有下载的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-21 02:47 , Processed in 0.265571 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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