明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1888|回复: 6

文字查找指引程序,缺函数,求助!

[复制链接]
发表于 2015-5-30 17:46 | 显示全部楼层 |阅读模式
50明经币
本帖最后由 fire9527 于 2015-6-2 17:24 编辑

找到一个很实用的程序,非常可惜运行不了!CAD提示:  ; 错误: no function definition: XDRX_YESORNO
非常期待有高手能帮到我,这个程序实在是太需要了,在原帖位置回复没人搭理,只好移步到万能的明经社区了,叩谢!

;源程序来源:http://bbs.xdcad.net/thread-671991-1-1.html,作者:[size=13.333333969116211px]st788796
(defun c:XDTB_FindString (/ callback str ss txt key pts el s)
  (defun callback (dynpt /)
    (xdrx_entity_move txt (trans p 1 0) (trans dynpt 1 0))
    (if        el
      (mapcar '(lambda (x)
                 (xdrx_setpropertyvalue x "EndPoint" (trans dynpt 1 0))
               )
              el
      )
    )
    (setq p dynpt)
  )
  (princ "\n前后输入 * 以匹配更多字符....")
  (if
    (and (setq str (getstring "\n输入匹配字符: "))
         (setq ss (ssget (list '(0 . "*text") (cons 1 str))))
         (setq key (xdrx_yesorno "连线" "N"))
    )
     (progn
       (xd::begin)
       (xdrx_layer_make "XD_Line_Mark" 1)
       (setq txt (xdrx_text_make
                   (setq p (trans (cadr (grread t 15)) 1 0))
                   (strcat str "共 " (itoa (sslength ss)) " 个")
                   (getvar "textsize")
                   0.
                 )
       )
       (xdrx_entity_setlayer txt "XD_Line_Mark")
       (if (= key 1)
         (progn
           (setq pts
                  (mapcar '(lambda (x)
                             (xdrx_getpropertyvalue x "Position")
                           )
                          (xdrx_pickset->ents ss)
                  )
           )
           (xdrx_setmark)
           (mapcar '(lambda (x)
                      (xdrx_line_make x p)
                    )
                   pts
           )
           (setq s (xdrx_getss))
           (xdrx_entity_setlayer s "XD_Line_Mark")
           (setq el (xdrx_pickset->ents s))
         )
       )
       (xdrx_document_redraw)                ;ARX太快,要更新下数据库
       (xdrx_pointmonitor "Callback" txt)
       (getpoint (trans p 0 1))
       (xdrx_pointmonitor)
       (xd::end)
     )
  )
  (princ)
)


以下是那篇帖子的跟帖,在字符选取上更胜一筹,希望能加入到上面的程序中

  • (defun c:tt (/ e p1 p2 str nstr)
  •   (if (and (setq e (car (xdrx_entsel "\nPick text: " '((0 . "text")))))
  •            (setq p1 (getpoint "\nFirst point: "))
  •            (setq p2 (getcorner p1 "\nSecond Point: "))
  •            (setq str (XD::Text:StringBetween e p1 p2))
  •            (setq nstr (dos_getstring "匹配字符编辑" "选择的匹配字符" str))
  •       )
  •     (progn
  •       (princ nstr)
  •     )
  •   )
  •   (princ)
  • )


附件: 您需要 登录 才可以下载或查看,没有账号?注册
发表于 2015-6-1 15:10 | 显示全部楼层
改程序是最痛苦的,直接说明你的要求重新写估计响应的人还比较多
回复

使用道具 举报

 楼主| 发表于 2015-6-2 17:17 | 显示全部楼层
danxingpen 发表于 2015-6-1 15:10
改程序是最痛苦的,直接说明你的要求重新写估计响应的人还比较多

就想要图片中演示的功能,发的源程序仅供参考吧
回复

使用道具 举报

发表于 2015-8-2 15:01 | 显示全部楼层
所有的子函数都没有吧
回复

使用道具 举报

发表于 2015-8-25 17:46 | 显示全部楼层
第一个,按照图片演示,重新编个不难,wcmatch或者ssget  和 grread 2个函数。
你这么多积分和明经币自己编写不了吗?
回复

使用道具 举报

发表于 2017-9-5 17:35 | 显示全部楼层
这个要下载晓东的编码工具才能用
回复

使用道具 举报

发表于 2020-5-22 12:35 | 显示全部楼层
学习一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 16:19 , Processed in 0.661375 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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