乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: shailujp

[编程交流] 重复数字文本查找器

[复制链接]

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-5 23:53:57 | 显示全部楼层
我将尝试自己从lisp中包括图纸编号检查。感谢你的帮助。
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-5 23:56:47 | 显示全部楼层
矩形没有给出任何关于哪个是重复的概念,其中一个和数字变得难以可视化。其中as线的端点非常清楚。我保留了线路的概念。
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-5 23:59:40 | 显示全部楼层
你好,pBe,
 
我刚刚发现空白条目也被视为重复条目。这可以避免吗?请参见随附的捕捉。
 
另外,如何获得每个项目的princ?
例:描述中未发现重复项
或图纸编号等无重复项。。。
 
我还可以包括图纸编号检查。这很容易。
002136f45hl20qmhym02zl.png
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 00:02:36 | 显示全部楼层
 
我当时想的是,如果没有colros的复制品,比如说有5个“12345”,它们都会用相同的颜色“装箱”。你想要吗?
 
至于“”空白项,它很容易修改。
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:07:43 | 显示全部楼层
经过一段时间的试验,我发现这些线条很好用,也很容易去掉。给盒子上色是个好主意,但考虑到复制品的实例非常有限,它可能没有那么有用,也很难将数字可视化。但如果数据量大,重复次数多,则可能非常有用。
 
目前,我认为只有空行问题才需要解决。
 
顺便说一句,我已经在我的图纸上捕捉到了一些副本,并保存了我的A。。。
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 00:11:11 | 显示全部楼层
那么好吧,
 
现在FWIW
 
  1. (defun c:LTD (/ LWPoly _dupl ssD data);LineToDuplicate
  2. (defun _ftf (pt m)
  3.         (polar pt (if m (* pi 0.25) (* pi 1.25))(* 0.05 (sqrt 2))))
  4. (defun LWPoly        (lst clr)
  5.    (foreach att lst
  6.      (vla-getboundingbox att 'mn 'mx)
  7.      (setq p1 (_ftf (vlax-safearray->list mn) nil)
  8.            p3 (_ftf (vlax-safearray->list mx) t)
  9.            p2 (list (car p1)(cadr p3) 0.0)
  10.     p4 (list (car p3)(cadr p1) 0.0))
  11. (entmakex
  12.      (append (list (cons 0 "LWPOLYLINE")
  13.             (cons 100 "AcDbEntity")
  14.             (cons 100 "AcDbPolyline")
  15.             (cons 8 "DuplicateLine")
  16.             (cons 62 clr)
  17.             (cons 70 1)
  18.             (cons 90 (length (setq lst (list p1 p2 p3 p4 p1))))
  19.                                    )
  20.       (mapcar (function (lambda (p) (cons 10 p))) lst)
  21.                              )
  22.                    )       
  23. )
  24. )
  25. (Defun _numb (str)
  26. (vl-list->string
  27.    (vl-remove-if-not
  28.      '(lambda (n)
  29. (< 47 n 58)
  30.       )
  31.      (vl-string->list str)
  32.    )
  33. )
  34. )
  35. (defun _dupl (itm  / a b c d e f)
  36. (while (setq a (Car itm))
  37. (setq b         (cdr itm) id (car a))
  38. (while (setq d (assoc id b))
  39.   (setq        e (cons d e)
  40.         b (vl-remove d b)))
  41. (if e
  42.   (setq f (cons (cons a e) f)))
  43. (setq itm b e nil)
  44. )
  45. f)
  46. (if (setq data nil ssD (ssget "_X" (list
  47.                                '(0 . "INSERT")
  48.                               '(2 . "BOM_LINE*")
  49.                                '(66 . 1)
  50.                                (cons 410 (getvar 'ctab)))))
  51.    (progn
  52.            (repeat (setq i (sslength ssd))
  53.   (setq data (cons
  54.           (mapcar        (function (lambda (l)
  55.                             (list (vla-get-tagstring l)
  56.                                   (_numb (vla-get-textstring l))
  57.                                   l
  58.                             )
  59.                           )
  60.                 )
  61.                 (vlax-invoke
  62.                   (vlax-ename->vla-object
  63.                     (ssname ssd (setq i (1- i)))
  64.                   )
  65.                   'GetAttributes
  66.                 )
  67.         ) data))
  68.   )
  69.      (setq data (apply 'append data))
  70.      (foreach itm '("DESCRIPTION" "SAPNUMBER")
  71.         (set (setq df (Read itm))
  72.              (vl-remove-if-not '(lambda (l)
  73.                                   (and (eq (car l) itm)
  74.                                        (/= (cadr l) ""))) data))
  75. )
  76.      (setq col 0)
  77.      (foreach itm
  78. (setq des (_dupl (mapcar 'cdr DESCRIPTION)))
  79. (print (caar itm))
  80. (setq col (1+ col))
  81. (LWPoly (mapcar 'cadr itm) col)
  82. )
  83.      (foreach itm (setq sap (_dupl (mapcar 'cdr SAPNUMBER)))
  84. (print (caar itm))
  85. (setq col (1+ col))
  86. (LWPoly (mapcar 'cadr itm) col)
  87.      )
  88.      )
  89.      
  90. )
  91.    (princ (cond
  92.      ((null ssd) "\nNo valid selection")
  93.      ((and (null des)
  94.           (null sap)) "\nNo Duplicates Found")))
  95. (princ)
  96. )
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:14:06 | 显示全部楼层
pBe,
 
这个好多了。经过几次试用,我了解到它查找整个文本行,并与另一行进行比较,而不仅仅是数字。对于SAP数字,这是一种完美的方式。然而,对于描述,由于描述是手动编写的,因此用户可能编写了不同的描述或删除了描述。唯一的常数是一个不变的零件号(即12345)。所以,我只是调整了desc.并再次运行它,这次结果改变了。
 
但是,即使描述混乱,aleast SAP number仍在捕获重复项。所以我有一个或两个地方来捕捉错误,一个就足够关注整条线了。
 
我感谢你为帮助我度过难关所做的努力。
 
当做
 
我正在创建一个小路由,它将删除Duplicateline层上的所有实体。这样我就不必手动擦除它。
002139g7994209u29ned25.png
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 00:17:12 | 显示全部楼层
那么,在调整代码方面,您还需要帮助吗?或者你可以自己处理?
 
至于描述标签,只要#符号就很容易修改。
回复

使用道具 举报

24

主题

147

帖子

123

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
120
发表于 2022-7-6 00:20:08 | 显示全部楼层
#图纸之间的标志不一致。我还包括了Drawing_数字标签。所以我现在有3个级别的检查,应该足以捕捉错误。
 
我已经做了这个代码来删除实体和清除重复线层。
 
 
  1. (defun c:DUPL (/ erdup)
  2.                (if
  3.     (tblsearch "LAYER" "DuplicateLine")   
  4.    (if (setq erdup (ssget "_x" '((8 . "DuplicateLine"))))
  5.       (progn
  6.               (command "erase" erdup "")
  7.                (Command "-Purge" "la" "DuplicateLine" "n")
  8.      );end progn
  9.          ); end if2
  10.    (princ "\nLayer not found")
  11.                ); end if1
  12. ); end defun
回复

使用道具 举报

pBe

32

主题

2722

帖子

2666

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
211
发表于 2022-7-6 00:24:35 | 显示全部楼层
 
很高兴你把它整理好了。
 
更新帖子以考虑“X XX#1234”
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-11 00:08 , Processed in 0.754359 second(s), 72 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表