CafeJr 发表于 2022-7-5 21:05:56

谢谢你Tharwat。。。我不知道这是否简单,但我的想法是,只收集一个分散的文字(文字)在一个绘图,以选择的顺序。。。将其导出到Excel。

Tharwat 发表于 2022-7-5 21:13:18

 
试试这个程序,让我知道。
注意:在选择文本结束时,只需按enter键并键入(n)或(no)即可显示最后一个进程的对话框。
 

(defun c:Test(/ *error* _dialog dlg s name s l k save path o)
;;;      Tharwat 13.01.2015      ;;
(defun *error*(msg)
   (if (and dlg (findfile dlg))
   (vl-file-delete dlg)
   )
   (if (not (wcmatch (strcase msg) "*BREAK*,*CANCEL*,*EXIT*"))
   (princ (strcat "\n** Error: " msg " **"))
   )
   (princ)
   )
(defun _dialog(/ id f)
   (cond
   ((not
      (and
          (setq dlg (vl-filename-mktemp nil nil ".dcl"))
          (setq f (open dlg "w"))
          (write-line
            "test : dialog {label = \"Test Strings\"; width = 40;
            : text { key = \"path\"; }
            spacer_1 ;
            : list_box { key = \"lst\"; height = 18;}
            : boxed_row {
            : button { label = \"Okay\"; key = \"oki\"; width = 12;}
            : button { label = \"Exit\"; key = \"esc\"; is_default = true; is_cancel = true; width = 12;}
            : button { label = \"Save to\"; key = \"sv\"; width = 12;}
            }}"
            f
            )
          (not (close f))
          )
      )
      (alert "Can't load the temporary file <!>")
      )
   ((or (not dlg)
          (not (> (setq id (load_dialog dlg)) 0))
          (not (new_dialog
               "test"
               id
               )
               )
          )
      (princ "\n Can not load Dialog !")
      )
   (t
      (start_list "lst")
      (mapcar 'add_list (reverse l))
      (end_list)
      (mode_tile "oki" 1)
      (set_tile "lst" "0")
      (action_tile
      "sv"
      "(if (setq path (getfiled \"Save to\" (getvar 'DWGPREFIX) \"csv\" 1))
             (progn
             (set_tile \"path\" path)
             (mode_tile \"oki\" 0))
         (mode_tile \"oki\" 1))"
      )
      (action_tile
      "oki"
      "(setq save t)(done_dialog)"
      )
      (action_tile "esc" "(setq save nil)(done_dialog)")
      (start_dialog)
      (unload_dialog id)
      (vl-file-delete dlg)
      )
   )
   save
   )
(while
   (cond
   ((and (setq s (car (entsel "\n Pick Texts :")))
         (wcmatch (cdr (assoc 0 (entget s))) "TEXT,MTEXT")
         )
      (setq l (cons (cdr (assoc 1 (entget s))) l))
      )
   ((or s (not s))
      (princ "\nInvalid Selection !! Select text ONLY ")
      (initget 6 "Yes No")
      (or (not (setq k
                      (getkword "\n Missed !! Continue <Yes> :")))
          (eq k "Yes")
          )
      )
   )
   )
(if (and l (setq save (_dialog)) (setq o (open path "w")))
   (progn
   (mapcar '(lambda (x) (write-line x o)) (reverse l))
   (close o)
   (princ "\n Well done ...")
   )
   (princ "\n Exit by User ")
   )
(princ)
)




CafeJr 发表于 2022-7-5 21:17:27

WoowWWW。。。呵呵呵呵。。。谢谢Tharwat!。。。它的效果和我需要的一样好!!!。。。
 
 
我对电子表格的独特“延迟”(按使用次数),我想如果有办法只填写一个电子表格(我不知道),或者使用Ram内存复制这些文本,将其粘贴到Excel文件打开的单元格中。。。有可能吗?。。。

Tharwat 发表于 2022-7-5 21:21:57

 
我很高兴你喜欢这个节目
 
 
我不认为我明白你的意思

CafeJr 发表于 2022-7-5 21:24:28

很抱歉
 
 
让我试着解释一下!。。。
 
 
每次我使用它,我都会创建一个电子表格(没关系,没问题,这对我为什么需要在Excel上重写路径有很大帮助!)。
 
 
它将用于跟踪图纸上的电缆,想想在一个电气装置中,我有一个点(原点)和电缆的目标(现场仪器),所以,我必须按照路径文本(电气管道或电缆桥架的地址)来选择电缆通过的位置,有很多电缆要逐个进行,明白吗?。。。
页: 1 [2]
查看完整版本: 将所选文本导出到Exc