Jaap Marchal 发表于 2022-7-6 09:58:29

Autocad命令:\u find

你好
 
我正在使用Autocad命令:查找多次。我想在find命令中添加一个选项。我很高兴有一个选项重复。它必须显示重复的文本、超链接等。只显示但不删除它们。
 
 
Jaap公司

pBe 发表于 2022-7-6 10:05:06

是否要高亮显示和/或放大条目的结果?
e、 g如果找到5项,缩放因子是结果的范围?或者用指针逐个显示条目?

Jaap Marchal 发表于 2022-7-6 10:10:26

类似于“查找和替换”对话框。列出结果并选择一个选项,然后缩放到HIGHLICHTED结果。
 

pBe 发表于 2022-7-6 10:14:56

我懂了。。。那会是什么?
不过这需要一些时间。我目前正在使用OpenDCL。。也许我可以把这个项目安排在我的日程上
我们拭目以待。但我很确定其他人会帮你做的。。。

Jaap Marchal 发表于 2022-7-6 10:20:20

包含重复项的列表(在命令提示下或Autocad文本窗口(F2)中)。从那里,我将使用FIND命令搜索/缩放项目。
 
Jaap Marchal公司

pBe 发表于 2022-7-6 10:24:35

我懂了。。。我想错了,雅普,我以为你想要一些真正的花哨的东西
好的,列表将显示什么?有重复项的条目?是这样吗?
 
顺便问一下,搜索也包括超链接吗?一气呵成?

Jaap Marchal 发表于 2022-7-6 10:28:20

好啊我有100个或更多烟雾探测器的图纸,带有超链接,地址类似:root。sdetec。1.001.   我生成用于建筑管理系统的DWF文件。所以我在找一些能找到dublicates的东西。如果有重复,系统会给出错误。Thera也是图形中的命名视图。如果图纸中有副本,则系统不知道选择哪个视图。

pBe 发表于 2022-7-6 10:31:52

好的。。。现在我很困惑
 
让我们把它分解:
有带超链接的文字/多行文字:
相同的文本字符串相同的超链接
相同的文本字符串不同的超链接
不同的文本字符串相同的超链接
不同的文本字符串不同的超链接
有文字/多行文字:
相同的文本字符串
不同的文本字符串
存在具有超链接的对象:
相同对象类型相同超链接
相同的对象类型不同的超链接
不同的对象类型相同的超链接
不同的对象类型不同的超链接
 
现在,这段代码将搜索文本/多行文字中的重复文本字符串,并打印一个重复列表。
一个具有超链接,但未过滤重复链接
另一个只是普通的文本
让我们从这个开始

(defun c:test (/ text_obj tobj tobj_v tx-str dp_hl_lst Hlnk_lst dp_tx_lst text_lst)
   (vl-load-com)
   (setq text_obj (ssget "_X" '((0 . "MTEXT,TEXT"))) cnt -1
   )
   (while (setq tobj (ssname text_obj (setq cnt (1+ cnt))))
       (setq tobj_v (vlax-ename->vla-object tobj))
       (if (= (vla-get-count (vla-get-hyperlinks tobj_v)) 1)
         (if
         (member (setq tx-str (vla-get-textstring tobj_v)) Hlnk_lst)

            (setq dp_hl_lst (cons tx-str dp_hl_lst))   
            (setq Hlnk_lst (cons tx-str Hlnk_lst))
         )
         (if
         (member (setq tx-str (vla-get-textstring tobj_v)) text_lst)
            (setq dp_tx_lst (cons tx-str dp_tx_lst))
            (setq text_lst (cons tx-str text_lst))
         )
       )
   )
      (textscr)   
(prompt "\n<< List of Duplicate Text String with Hyperlink >>")
       (foreach s   
         (LM:Unique_iterdp_hl_lst)
          (princ (strcat "\nFound Duplicate for " s))
               )
      (prompt "\n\n<< List of Duplicate Text\Mtext >>")
       (foreach s   
         (LM:Unique_iterdp_tx_lst)
          (princ (strcat "\nFound Duplicate for " s))
               ) (princ)   
   )

;; Credit to Lee Mac ;;
(defun LM:Unique_iter(l / r)
(while (setq x (car l))
   (setq r (cons x r)
   l (vl-remove x (cdr l))))
(reverse r))



 
希望这能让你开始

Jaap Marchal 发表于 2022-7-6 10:38:47

我不喜欢Lisp程序。。。。。。但它的回报是:
命令:测试
; 错误:错误的参数类型:lselsetp nil

pBe 发表于 2022-7-6 10:43:59

哎呀。。。我想知道为什么。。
可能是因为代码没有eny error hanlder,这就是为什么
 
这段代码是一个起点,当我们试图找出最终结果时,它不会完全满足您的需要
告诉你。。。在此附上您的dwg文件,部分dwg即可
 
顺便说一句:试着回答我在上一篇文章中的问题(条件)
页: [1] 2
查看完整版本: Autocad命令:\u find