浅予 发表于 2025-2-18 12:47:54

cqf1980 发表于 2025-2-18 11:13
类似钢筋编号,写在线段正中间

这个
能实现,哈哈哈哈

baitan666 发表于 2025-2-18 16:19:15

cqf1980 发表于 2025-2-18 11:13
类似钢筋编号,写在线段正中间

(defun c:LI (/ *error* ss i count prefix startnum pt midpt ang)
    (vl-load-com)
   
    ;; 错误处理函数
    (defun *error* (msg)
      (if (not (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*"))
            (princ (strcat "\n错误: " msg))
      )
      (princ)
    )
   
    ;; 选择线段对象
    (if (setq ss (ssget '((0 . "LINE"))))
      (progn
            ;; 获取用户输入
            (setq prefix (getstring T "\n输入前缀(直接回车跳过): "))
            (setq startnum (getint "\n输入起始编号 <1>: "))
            (if (not startnum) (setq startnum 1))
            
            ;; 初始化计数器
            (setq count startnum)
            
            ;; 遍历选择集
            (setq i 0)
            (repeat (sslength ss)
                (setq ent (ssname ss i))
                (setq obj (vlax-ename->vla-object ent))
               
                ;; 获取线段中点
                (setq pt1 (vlax-get obj 'StartPoint))
                (setq pt2 (vlax-get obj 'EndPoint))
                (setq midpt (mapcar '(lambda (a b) (/ (+ a b) 2.0)) pt1 pt2))
               
                ;; 获取线段角度(用于文字旋转)
                (setq ang (angle pt1 pt2))
               
                ;; 创建文字
                (entmake
                  (list
                        '(0 . "TEXT")
                        (cons 10 midpt)          ; 插入点
                        (cons 40 2.5)            ; 文字高度
                        (cons 1 (strcat prefix (itoa count))) ; 文字内容
                        (cons 50 ang)            ; 旋转角度
                        (cons 72 1)            ; 水平对齐方式(中点)
                        (cons 11 midpt)          ; 对齐点
                        (cons 7 (getvar "TEXTSTYLE")) ; 当前文字样式
                  )
                )
               
                (setq count (1+ count))
                (setq i (1+ i))
            )
      )
      (princ "\n未选择任何线段!")
    )
    (princ)
)

baitan666 发表于 2025-2-18 16:57:19

mpk023 发表于 2025-2-18 09:27
加密的那个版本有错误,用不了。

修复了,你重新下载试试

lijunfa12345 发表于 2025-2-18 21:03:10

谢谢分享,,,,,,,,,,,,

pxt2001 发表于 2025-2-19 07:57:09

点排序还需要细化,之前大神们写了一些函数,例如从左到右,左下角为起点,左上角为起点,容差等

蓝盾设计 发表于 2025-2-24 10:41:26

baitan666 发表于 2025-2-18 16:19
(defun cI (/ *error* ss i count prefix startnum pt midpt ang)
    (vl-load-com)
   


能加功能归类编号吗?相同的长度归类成同一编号

好烦的网站 发表于 2025-2-26 11:13:17

看看,感谢分享{:1_1:}

scmice 发表于 2025-3-1 14:42:32

感谢分享,加密那个用不了。

tanxindong 发表于 2025-3-4 18:41:34

感谢分享,

gwar 发表于 6 天前

谢谢分享,看起来不错
页: 1 [2] 3
查看完整版本: 真正的自动编号,不用单个点击