Jakub 发表于 2022-7-5 16:44:13

CAD中的编号点

你好
 
我将尝试在下面解释我的意思:
 
我在CAD中通过交叉线建立了一个网格。我需要编写一个lisp,在直线交叉的地方创建点,并按适当的顺序为这些点插入数字。对于第一行,我需要插入数字,例如从1到5(从左到右),下一行从6到10(从右到左),每次都是相同的偶数行和奇数行。
 
是否存在此任务的lisp?
 
提前感谢,
雅各布

SLW210 发表于 2022-7-5 16:56:36

从李的网站上查看这个NUMINC。

Jakub 发表于 2022-7-5 17:06:45

 
我看到这个网站与这个Lisp程序,但我想选择所有的网格,并做到这一点自动一次。
 
您提到的LISP有一个使用数组对点进行编号的工具。但我每次都要对每一行重复这个动作。
 
不幸的是,我不知道如何为这个任务创建lisp,但有时我有一个大网格来准备要进一步处理的数字。

Lee Mac 发表于 2022-7-5 17:13:30

如果网格的间距相等,可以使用我的增量阵列程序:
 

Tharwat 发表于 2022-7-5 17:21:08

你好
 
试试这个程序;
 
查看视频=>视频

(defun c:GridNum (/ ss i l p lst a b n)
(if (setq ss (ssget '((0 . "LINE"))))
   (progn
   (repeat (setq i (sslength ss))
       (setq
         l (cons (vlax-ename->vla-object (ssname ss (setq i (1- i))))
               l
         )
       )
   )
   (foreach x l
       (foreach o l
         (and (setq p (vlax-invoke x 'intersectwith o AcExtendNone))
            (setq lst (cons p lst))
            (setq l (vl-remove x l))
         )
       )
   )
   (setq a (vl-sort lst '(lambda (j k) (< (car j) (car k))))
         b (vl-sort a '(lambda (j k) (> (cadr j) (cadr k))))
         n 0
   )
   (mapcar '(lambda (x)
                (entmake
                  (list '(0 . "TEXT")
                        (cons 10 x)
                        (cons 11 x)
                        (cons 1 (itoa (setq n (1+ n))))
                        (cons 40 (getvar 'TEXTSIZE))
                        '(71 . 0)
                        '(72 . 1)
                        '(73 . 2)
                  )
                )
            )
             b
   )
   )
)
(princ)
)(vl-load-com)

rkmcswain 发表于 2022-7-5 17:26:46

 
好的,悲伤。。。。已经停下来了李。。。。你让我们其他人看起来很糟糕-D

Lee Mac 发表于 2022-7-5 17:30:12

 
.......

Tharwat 发表于 2022-7-5 17:41:18

另一个用C语言编写的程序,我只是为了好玩和练习。
 
享受
C#NumberingAcrossingLineObjectsLeftToRight。pdf

Jakub 发表于 2022-7-5 17:47:49

是否可以以这种方式修改此代码以获得以下内容:
 
https://www.cadtutor.net/forum/attachment.php?attachmentid=60542&cid=1&stc=1
 
我需要以相同的方式对点进行编号,如绘制紫色线。我认为必须使用同时按X和Y排序点的模块。但我不知道创建
 
用这样的东西太棒了。
页: [1]
查看完整版本: CAD中的编号点