设为首页收藏本站

晓东CAD家园-论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 785|回复: 8

[工具] 非模态查找文字并连线

[复制链接]

已领礼包: 189个

财富等级: 日进斗金

发表于 2020-6-12 16:43:05 | 显示全部楼层 |阅读模式
  • 插件名称 : 非模态查找文字并连线
  • 作  者 : dyjwyqz5221
  • 运行环境 :XDRX API OpenDCL 
  • 发布时间 :2020-06-12
  • 命令名称 :xd::czlx
  • 插件介绍 :可以包含查找,也可以准确查找。
    引线文字标注可以随鼠标360度拖动,随意放置,标注文字位置随角度设置
  • 备  注 : (点击图片可以放大)
(点击图片可以放大)

晓东温馨提示 1、运行环境为 晓东工具箱XDRX API 的插件,请下载最新版本的 晓东工具箱XDRX API开发环境 一键安装
2、在ACAD中如何加载插件,请看 论坛插件使用方法
3、如果您有要求需要定制插件,请到 编程申请 论坛发帖求助

插件详细内容

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

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

x
本帖最后由 dyjwyqz5221 于 2020-6-13 09:04 编辑

[mw_shl_code=actionscript3,true];;;opendcl版
;;;查找文字并连线
(defun c:xd::czlx (/ yqz-czlx-data box)
        (setq yqz-czlx-data
                '("YWt6A1gUAAAFDroLBuKTKTU26i9qQJ2N3C3na3vH98za6aQtJTpqN4pkM9++Njhj06pPtDIkFsX8"
"/CRrKvXoUwRmiqBqexjF3jP1Fml6w0hT3PmtR5lhw4GD5Bji11bWAYaBgQCJogWQw5nikeIB9Bxd"
"T/Shh+Oqs8FwFNz9yvF8Oopa4dY+ZFLgLT8fJDc11+SRa4IiOjXW7AW8oiQ404LwDtUkOSoXVTJT"
"RCi4yw7hyukFtbs6HVvLDyHmhVxCweuZ+gcqdYE6nQzoU63Aa8L0qVlE1dfnS8iM4kjUngl7my0u"
"SCc2DOvudy5ou1EgWMn4McvhxAZtGOb0OVuPXxhlm+6RTH0EDMMgj0izfbQLmrsogDIOCL7jAbW0"
"a6F+Am2OC74hkgA6HhhF+bcBp6ChAkrMw88JqfXtiYSzHTk02LIUxVHNwSyg1kzr4XmilZ6XU8r0"
"ok5WWRXAp2rcVtOtb3mmgJhOFvV/AHCGbp5N/jF+sHXGhk22hX5lCQIuQkk7jzLy9MJkQCrm8Wuf"
"HjRqaScauAJszChDW0axL+tNlG0tfsC9pvdEjcx5XblllT0YkaZSI7sKfZBkJUOOP1zMfZrjaJXU"
"wHbTbEKzHEfs18uGyJ5E7ukkIloG1bu9/Ek/uhB4wnuOOL5qDtP6T0Jx0pb1lz/Aq9XgxewHS0+l"
"AZ4ryy180aD3MhSEhcLE/6yNFFPHIKM/0CnxruGLlBDA/aea+2WvPIoUH32FzfEEFlPZ2mCACw1k"
"NPXLZLnQAc3giEnL5T+2gKl+GZgF4dEYttat3hvkBQjBkapJC06BS6bMqhv6oekbihkDxzgOrre1"
"27fVNEdbCNHTSAXGhAmWSfy3+/QOa1S+G74pfiF88lI9aFw177u2jJ3egZPmm0JCfJXDfYL4QRiC"
"hJi+gokIQYwuqDIsQkCo2utrbc9YpAnIT2OoVoCb0i/H8UtptxvzzJRhGjObAaiuRiYtvPH39LXA"
"HTP2c6O9uG0NEJiJfzjXJ/2BZAxenD2eleSGwevGRIegttMhrl6hYqxg1PWIN6USzp0qsV32x7KU"
"rSPVm9OSyGbm7voH5G0U/zdAmBeDZMxGWIQ5PuHx94W2G9xMiRnnJjNnTS+JQZ9JuYUIrvGPIZqe"
"zCrnXg+2BOfe4E0+WZn9o4InYtsIUWGSCql1dHRUIPMCTkizCo1FS220v8hr/gMyh3oyL8fxV5l7"
"WddLREBrfVgZuvZUJqu57tfq/l91Husq8id2b8V2jgImgV+eRK5BdVwCz+sBYjYgdeuPJR8BF04u"
"seH6//StHp57vybPLCvW93DgRYCkl3vLueuLsvNDonUSh6uSEfjDYX3yp1/sXCXifcJNjRTUhTXN"
"5ORICUPHwH+T3STr")        
        );;;setq
        
        (defun callback(dynpt / ang)
                (setq ang (angle pt0 (trans dynpt 1 0)))
                (if (and (> ang (* pi 0.5)) (< ang (* pi 1.5)))
                        (progn
                                (xdrx_entity_move e-txt (trans pt-right 1 0) (trans dynpt 1 0))
                                (setq pt-right dynpt
                                        pt-left (mapcar '- pt-right (list len 0. 0.))
                                );;;setq        
                        );;;progn
                        (progn
                                    (xdrx_entity_move e-txt (trans pt-left 1 0) (trans dynpt 1 0))
                                (setq pt-left dynpt
                                        pt-right (mapcar '+ pt-left (list len 0. 0.))
                                );;;setq
                        );;;progn
                );;;if
                      (mapcar
                        '(lambda (x)
                                 (xdrx_setpropertyvalue x "EndPoint" (trans dynpt 1 0))
                               );;;lambda
                              (xdrx_pickset->ents ss1)
                      );;;mapcar
        );;;defun
          (defun _pross(/ ss e-txt box-text len pt-left pt-right pts n pt0 ss1 yqz-czlx-txt)
                (setq yqz-czlx-txt (dcl-Control-GetText look_up/Form1/TextBox1))               
                (if (= (dcl-OptionList-GetCurSel look_up/Form1/OptionList1) 0)
                        (setq yqz-czlx-txt (strcat "*" yqz-czlx-txt "*"))        
                );;;if
                (if (setq ss (xd::ssget "\n选取文字<退出>:" (list ":L" (list '(0 . "text") (cons 1 yqz-czlx-txt)))))
                        (progn        
                                (xdrx_begin)
                                (xdrx_sysvar_push '("osmode" 0 "cmdecho" 0));;;捕捉和命令关闭
                                       (setq e-txt
                                        (XD::Text:Make (list (trans (cadr (grread t 15)) 1 0))
                                                        (strcat "共查找到包含“" yqz-czlx-txt "”的字符串 " (itoa (sslength ss)) " 个")
                                                        "yqz-style"
                                                        600
                                                        0.70
                                                        0.00
                                                        "ML"
                                        )
                                        box-text (xdrx_text_box e-txt)
                                        len (distance (car box-text) (cadr box-text))
                                        pt-left (XD::Geom:Get9PT e-txt 4)
                                        pt-right (XD::Geom:Get9PT e-txt 6)
                                );;;setq
                                       (xdrx_entity_setproperty e-txt "layer" "yqz-czlx" "color" 2)
                                (xdrx_setmark)
                                (setq pts
                                        (mapcar
                                                '(lambda(x / box)
                                                        (setq box (xdrx_text_box x))
                                                        (xdrx_polyline_make (xdrx_points_offset 50. (XD::PnTs:Close box)) t)
                                                        (xdrx_points_centroid box)
                                                );;;lambda
                                                (xdrx_pickset->ents ss)
                                        );;;mapcar
                                        n (fix (* (length pts) 0.5))
                                        pt0
                                        (nth n
                                                (vl-sort pts
                                                        '(lambda(a b)
                                                                (< (car a) (car b))
                                                        );;;lambda
                                                );;;vl
                                        );;;nth
                                );;;setq
                                (xdrx_entity_setproperty (xdrx_getss) "layer" "yqz-czlx" "color" 2 "ConstantWidth" 20)
                                (xdrx_setmark)
                                   (mapcar
                                        '(lambda (x)
                                                      (xdrx_line_make x pt-left)
                                            );;;lambda
                                           pts
                                   );;;mapcar
                                (xdrx_entity_setproperty (setq ss1 (xdrx_getss)) "layer" "yqz-czlx" "color" 4)
                                       (xdrx_document_redraw);;;ARX太快,要更新下数据库
                                       (xdrx_pointmonitor "Callback" e-txt)
                                       (getpoint (trans pt-left 0 1))
                                       (xdrx_pointmonitor)
                                (xdrx_sysvar_pop)
                                (xdrx_end)
                                (princ)
                        );;;progn
                        (xdrx_prompt "\n未查找到包含“" yqz-czlx-txt "”的字符串")
                );;;if
                (princ)
             );;;defun

        (defun c:look_up/Form1/TextBox1#OnEditChanged (NewValue /)
                (cond
                        ((/= NewValue "")
                                (dcl-Control-SetEnabled look_up/Form1/TextButton1 t)
                        )
                        (t
                                (dcl-Control-SetEnabled look_up/Form1/TextButton1 nil)
                        )
                );;;cond
        );;;;defun
        (defun c:look_up/Form1/TextButton1#OnClicked (/)
                (dcl-sendstring "(_pross)\n")
                (princ)
        );;;defun
        
        (defun c:look_up/Form1/TextButton2#OnClicked (/)
                (dcl-form-close look_up/Form1)
                    (princ)
        );;;defun
        (dcl-project-import yqz-czlx-data)
          (dcl-form-show look_up/Form1)
          (setq box (xdrx_drawing_pixelbox))
          (dcl_Form_SetPos
                    look_up/Form1
                    (car (last box))
                    (cadr (last box))
          )
        (dcl-Control-SetFocus look_up/Form1/TextBox1)
        (dcl-Control-ZOrder look_up/Form1/TextBox1 0)
        (dcl-Control-SetFocus look_up/Form1)
         (princ)
);;;defun[/mw_shl_code]

评分

参与人数 1D豆 +5 收起 理由
marting + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

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

使用道具 举报

已领礼包: 5059个

财富等级: 富甲天下

发表于 2020-6-13 11:22:00 | 显示全部楼层
这种格式的代码好像见得不多,要认真学习一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 59个

财富等级: 招财进宝

发表于 2020-6-13 12:44:50 | 显示全部楼层
我是2016CAD 版本    查找前4个,查找后只剩下3个,丢失了一个。不知道是不是CAD版本问题?
2.png
3.png

点评

应该与你的api有关系,下载最新版本的api试试  详情 回复 发表于 2020-6-13 16:18
上传个cad图  详情 回复 发表于 2020-6-13 16:16
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 189个

财富等级: 日进斗金

 楼主| 发表于 2020-6-13 16:16:25 | 显示全部楼层
XIAODONHUANGXUE 发表于 2020-6-13 12:44
我是2016CAD 版本    查找前4个,查找后只剩下3个,丢失了一个。不知道是不是CAD版本问题?

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

使用道具 举报

已领礼包: 189个

财富等级: 日进斗金

 楼主| 发表于 2020-6-13 16:18:12 | 显示全部楼层
XIAODONHUANGXUE 发表于 2020-6-13 12:44
我是2016CAD 版本    查找前4个,查找后只剩下3个,丢失了一个。不知道是不是CAD版本问题?

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

使用道具 举报

已领礼包: 225个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 166个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 39个

财富等级: 招财进宝

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2021-9-19 02:51 , Processed in 0.984746 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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