明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: 疯球

求个加前后缀的源码

[复制链接]
 楼主| 发表于 2019-6-1 12:58 | 显示全部楼层
请高手给个指示
回复

使用道具 举报

 楼主| 发表于 2019-6-2 07:08 | 显示全部楼层
                       1
回复

使用道具 举报

 楼主| 发表于 2019-6-3 06:48 | 显示全部楼层
zixuan203344 发表于 2019-6-2 09:34
(defun c:tt4 ();;;;
  (vl-load-com)
  (setq @dclfiledame (vl-filename-mktemp nil nil ".dcl"))

“千呼万唤始出来”终于有大侠出手了,心里面激动万分,试了一下,很强大,唯一的遗憾就是不能点选后立即出来前后缀,需要点完后确定才出来,不过这样已经很好了!!
回复

使用道具 举报

发表于 2019-6-3 13:39 | 显示全部楼层
疯球 发表于 2019-6-3 06:48
“千呼万唤始出来”终于有大侠出手了,心里面激动万分,试了一下,很强大,唯一的遗憾就是不能点选后立即 ...

这行(setq ss (ssget (list (cons 0 "TEXT"))))
改成
(setq ss (ssget ":S" (list (cons 0 "TEXT"))))

你自己改
回复

使用道具 举报

 楼主| 发表于 2019-6-3 15:34 | 显示全部楼层
zixuan203344 发表于 2019-6-3 13:39
这行(setq ss (ssget (list (cons 0 "TEXT"))))
改成
(setq ss (ssget ":S" (list (cons 0 "TEXT"))))
...

我真的很感激你的帮助,功能已经能用了,只是改了那句代码后,点选一个后,他会自动改,但命令也结束了,不能连续点!
回复

使用道具 举报

发表于 2019-6-4 00:36 | 显示全部楼层
本帖最后由 zixuan203344 于 2019-6-4 00:38 编辑

(defun c:tt4 (/ ent k loop2 obj return# ss str1)
;;;;
  (vl-load-com)
  (setq @dclfiledame (vl-filename-mktemp nil nil ".dcl"))
  (setq @dclfiled (open @dclfiledame "w"))
  (write-line "dzmjjsbdc:dialog {" @dclfiled)
  (write-line "    label = \"文本加前后缀\" ;" @dclfiled)
  (write-line "    :row {" @dclfiled)
  (write-line "        :edit_box {" @dclfiled)
  (write-line
    "            key = \"textaddstring1\" ;"
    @dclfiled
  )
  (write-line "            label = \"前缀\" ;" @dclfiled)
  (write-line "            width = 30  ;" @dclfiled)
  (write-line "        }" @dclfiled)
  (write-line "        :edit_box {" @dclfiled)
  (write-line
    "            key = \"textaddstring2\" ;"
    @dclfiled
  )
  (write-line "            label = \"后缀\" ;" @dclfiled)
  (write-line "            width = 30  ;" @dclfiled)
  (write-line "        }" @dclfiled)
  (write-line "    }" @dclfiled)
  (write-line "        ok_cancel;" @dclfiled)
  (write-line "}" @dclfiled)
  (close @dclfiled)
  ;;以下根据情况处理
  (setq @dclid (load_dialog @dclfiledame))
  (new_dialog "dzmjjsbdc" @dclid)
  ;;设置控件默认值
  (if (and (/= textaddstring1_1 "") (/= textaddstring1_1 nil))
    (set_tile "textaddstring1" textaddstring1_1)
  )
  (if (and (/= textaddstring2_1 "") (/= textaddstring2_1 nil))
    (set_tile "textaddstring2" textaddstring2_1)
  )
  (action_tile "accept" "(get_dzmjjsbdc_main)(done_dialog 1)")
;;;确定
  (setq return# (start_dialog))
  (cond
    ((= return# 1)
     (setq loop2 t)
     (while loop2
       (princ "\n 选择文本<退出>")
       (setq ss (vl-catch-all-apply 'ssget (list ":S" '((0 . "TEXT")))))
       (if (vl-catch-all-error-p ss)
         (progn
           (princ (strcat "**VL-CATCH-ALL-ERROR-P提示有错:** "
                          (vl-catch-all-error-message ss)
                  )
           )
           (setq loop2 nil)
           (princ)
         )
         (progn
           (if ss
             (repeat (setq k (sslength ss))
               (setq ent (ssname ss (setq k (1- k))))
               (setq obj (vlax-ename->vla-object ent))
               (setq str1 (vla-get-textstring obj))
               (vla-put-textstring
                 obj
                 (strcat textaddstring1_1 str1 textaddstring2_1)
               )
             )
           )
         )
       )
     )
    )
  )
  (unload_dialog @dclid)
  (vl-file-delete @dclfiledame)
  (princ)
)
;;;;;获得对话框值
(defun get_dzmjjsbdc_main ()
  (setq textaddstring1_1 (get_tile "textaddstring1"))
  (setq textaddstring2_1 (get_tile "textaddstring2"))
)
回复

使用道具 举报

 楼主| 发表于 2019-6-4 07:37 | 显示全部楼层
疯球 发表于 2019-6-1 07:23
请各路大神给个指示吧

由衷感谢“zixuan203344”的帮助,希望用此代码的人对“zixuan203344”表示感谢!!
回复

使用道具 举报

发表于 2019-6-8 20:17 | 显示全部楼层
zixuan203344 发表于 2019-6-4 00:36
(defun c:tt4 (/ ent k loop2 obj return# ss str1)
;;;;
  (vl-load-com)

(princ "\n 选择文本<退出>")
       (setq ss (vl-catch-all-apply 'ssget (list ":S" '((0 . "TEXT,MTEXT,DIMENSION")))))
       (if (vl-catch-all-error-p ss)

请教,添加了标注,可是不支持   能否赐教?
回复

使用道具 举报

发表于 2020-6-12 14:17 | 显示全部楼层
zixuan203344 发表于 2019-6-4 00:36
(defun c:tt4 (/ ent k loop2 obj return# ss str1)
;;;;
  (vl-load-com)

您好,选择对象完毕后无法退出,可否帮忙在改一下

选择对象: *取消*
**VL-CATCH-ALL-ERROR-P提示有错:** 函数被取消
回复

使用道具 举报

发表于 2020-6-27 22:21 | 显示全部楼层
zixuan203344 发表于 2019-6-4 00:36
(defun c:tt4 (/ ent k loop2 obj return# ss str1)
;;;;
  (vl-load-com)

您好,方便增加一下删除前后缀功能吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 09:28 , Processed in 0.421610 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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