fire9527 发表于 2015-5-30 17:46:17

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

本帖最后由 fire9527 于 2015-6-2 17:24 编辑

找到一个很实用的程序,非常可惜运行不了!CAD提示:; 错误: no function definition: XDRX_YESORNO
非常期待有高手能帮到我,这个程序实在是太需要了,在原帖位置回复没人搭理,只好移步到万能的明经社区了,叩谢!
;源程序来源:http://bbs.xdcad.net/thread-671991-1-1.html,作者: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)
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif(if (and (setq e (car (xdrx_entsel "\nPick text: " '((0 . "text")))))
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif         (setq p1 (getpoint "\nFirst point: "))
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif         (setq p2 (getcorner p1 "\nSecond Point: "))
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif         (setq str (XD::Text:StringBetween e p1 p2))
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif         (setq nstr (dos_getstring "匹配字符编辑" "选择的匹配字符" str))
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif      )
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif    (progn
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif      (princ nstr)
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif    )
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif)
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif(princ)
[*]http://bbs.xdcad.net/source/plugin/imc_colorcode/images/jssc_none.gif)


danxingpen 发表于 2015-6-1 15:10:38

改程序是最痛苦的,直接说明你的要求重新写估计响应的人还比较多

fire9527 发表于 2015-6-2 17:17:10

danxingpen 发表于 2015-6-1 15:10 static/image/common/back.gif
改程序是最痛苦的,直接说明你的要求重新写估计响应的人还比较多

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

风流少年时 发表于 2015-8-2 15:01:38

所有的子函数都没有吧

fl202 发表于 2015-8-25 17:46:12

第一个,按照图片演示,重新编个不难,wcmatch或者ssget和 grread 2个函数。
你这么多积分和明经币自己编写不了吗?

nishuihanjian 发表于 2017-9-5 17:35:13

这个要下载晓东的编码工具才能用

快乐贝贝 发表于 2020-5-22 12:35:30

学习一下
页: [1]
查看完整版本: 文字查找指引程序,缺函数,求助!