明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2172|回复: 12

[已解答] 求一简单程序

[复制链接]
发表于 2014-7-30 18:54 | 显示全部楼层 |阅读模式
在同一图纸内,点击一段文字,即跳转至与其内容相同的另一段文字处,如点击"7APEsp",就跳转至同一图纸的另一个"7APEsp"那里,先谢过各位赏脸看帖的大神了
发表于 2014-7-30 20:21 | 显示全部楼层
游客,本帖隐藏的内容需要发帖数高于 5 才可浏览,你当前发帖数只有 0
发表于 2014-7-30 22:32 | 显示全部楼层
  1. ;; 跳显相同文本
  2. (defun c:tt ()
  3.   (if (setq ss (ssget ":E:S" '((0 . "text"))))
  4.     (progn
  5.       (if s2 (redraw s2 4))
  6.       (setq s1 (ssname ss 0))
  7.       (if (and (setq ss (ssget "X" (list '(0 . "TEXT") (cons 1 (xyp-DXF 1 s1)))))
  8.                (>= (sslength ss) 2)
  9.           )
  10.         (progn
  11.           (setq s2 (ssname (ssdel s1 ss) 0))
  12.           (redraw s2 3)
  13.           ;(command "ZOOM" "W" (xyp-9pt s2 1) (xyp-9pt s2 9))
  14.         )
  15.       )
  16.     )
  17.   )
  18.   (princ)
  19. )
 楼主| 发表于 2014-7-31 11:19 | 显示全部楼层
xyp1964 发表于 2014-7-30 22:32

请问大师,能不能不放大,而是移动至其位置,亮显之类的

点评

没放大  发表于 2014-7-31 11:41
发表于 2014-7-31 11:21 来自手机 | 显示全部楼层
我的仿WORD查找和替换有类似功能,源码在论坛里
 楼主| 发表于 2014-7-31 11:51 | 显示全部楼层
xyp1964 发表于 2014-7-30 22:32

额,显示的是no function definition: XYP-DXF,麻烦大师看下哈
 楼主| 发表于 2014-7-31 12:00 | 显示全部楼层
ZZXXQQ 发表于 2014-7-30 20:21
[/post]

请问大师,能不能不放大,而是移动至其位置,亮显之类的
发表于 2014-7-31 12:46 | 显示全部楼层
如果同时有多个相同,变成随机跳,不如cad直接快速选择.
 楼主| 发表于 2014-7-31 12:51 | 显示全部楼层
kwok 发表于 2014-7-31 12:46
如果同时有多个相同,变成随机跳,不如cad直接快速选择.

一般就只有两个唯一对应的
发表于 2014-7-31 16:09 | 显示全部楼层
Z版平移亮显
  1. (defun c:tt (/ ang cen cen2 en ent k new_p3 new_p4 p1 p2 p3 p4 s1 ss txt view_pts)
  2. (vl-load-com)
  3. (if (and(setq s1 (entsel "\n选择文字: "))
  4.          (setq ent (entget(car s1)))
  5.          (= (cdr(assoc 0 ent)) "TEXT"))
  6.    (progn
  7.      (setq txt (cdr(assoc 1 ent)))
  8.      (if (>(sslength(setq ss (ssget "X" (list '(0 . "TEXT") (cons 1 txt))))) 1)
  9.        (progn
  10.          (setvar 'cmdecho 0)
  11.          (ssdel (car s1) ss)
  12.          (while (>(sslength ss) 0)
  13.            (setq en (ssname ss 0))
  14.            (vla-getboundingbox (vlax-ename->vla-object en) 'p1 'p2)
  15.            (setq p1 (vlax-safearray->list p1) p2 (vlax-safearray->list p2))
  16.            (setq cen(mapcar '(lambda(x y)(*(+ x y) 0.5)) p1 p2))
  17.            (setq view_pts(zj-get-scr-coods))
  18.            (setq p3(car view_pts) p4 (cadr view_pts))
  19.            (setq cen2 (mapcar '(lambda(x y)(*(+ x y) 0.5)) p3 p4))
  20.            (setq ang(angle p3 p4))
  21.            (setq new_p3(polar cen ang (distance cen2 p3)))
  22.            (setq new_p4(polar cen ang (* -1 (distance cen2 p3))))
  23.            (command "_.ZOOM" "W" new_p3 new_p4)
  24.            (sssetfirst nil (ssadd en))
  25.            (if(/= (sslength ss) 1)(setq k (getpoint"\r下一个:     "))(princ"\n完成!"))
  26.            (ssdel en ss)
  27.            )
  28.          (setvar 'cmdecho 1)
  29.          )
  30.        )
  31.      )
  32.    )
  33. (princ)
  34. )
  35. ;;;返回绘图区左下角与右上角
  36. (defun zj-get-scr-coods (/ half_h half_w pt_cen lst ptx pty)
  37.    (setq pt_cen (trans (GETVAR "VIEWCTR") 1 2)
  38.    ptx (car pt_cen)
  39.    pty (cadr pt_cen)
  40.       half_h (* 0.5 (GETVAR "VIEWSIZE"))
  41.    half_w (* half_h (/ (car (GETVAR "SCREENSIZE")) (cadr (GETVAR "SCREENSIZE"))))
  42.    )
  43.   (LIST (LIST (- ptx half_w) (- pty half_h)) (LIST (+ ptx half_w) (+ pty half_h)))
  44. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 12:40 , Processed in 0.679391 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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