664571221 发表于 2022-1-2 15:34:59

求个位大神写一个,批量选取矩形,标注矩形旋转角度的程序

求个位大神写一个,批量选取矩形,标注矩形旋转角度的程序

tigcat 发表于 2022-1-4 14:00:32

;获得多段线顶点
(setq
      ptn (mapcar
      'cdr
      (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget s1))
    )
    )

;从ptn中选取邻近顶点,用angle算出角度
;选位置写文字,用command或entmake都可以

664571221 发表于 2022-1-4 20:45:14

tigcat 发表于 2022-1-4 14:00


你好大神,可以来一个可以运行的程序不

tigcat 发表于 2022-1-4 21:04:37

664571221 发表于 2022-1-4 20:45
你好大神,可以来一个可以运行的程序不

我不是大神,菜鸟,我试试编一个.

664571221 发表于 2022-1-4 21:32:17

tigcat 发表于 2022-1-4 21:04
我不是大神,菜鸟,我试试编一个.

好的 我看了你的帖子都是好东西,加下我qq3298554767

tigcat 发表于 2022-1-29 20:36:11

664571221 发表于 2022-1-4 21:32
好的 我看了你的帖子都是好东西,加下我qq3298554767

;函数是东抄西抄的
;当天写好结果发现论坛崩溃了,一直到现在才能贴
(defun c:tt4 (/ en i ptn ptn_xmax ptn_ymin ss)
(vl-load-com)
(setqss (ssget '((0 . "lw*") (70 . 1)))
    i0
)
(repeat (sslength ss)
    (setq en (ssname ss i))
    (setq
      ptn (mapcar
            'cdr
            (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget en))
          )
    )
    (setq ptn_ymin (vl-sort ptn (function (lambda (e1 e2)(< (cadr e1) (cadr e2)) ) ) ))
    (setq ptn_xmax (vl-sort ptn (function (lambda (e1 e2)(> (car e1) (car e2)) ) ) ))
    (if(or (equal (angle (car ptn_ymin) (car ptn_xmax)) 0 1e-3)
          (equal (angle (car ptn_ymin) (car ptn_xmax)) (* 0.5 pi) 1e-3)
      )
      
      (entmake
      (list
          '(0 . "TEXT")
          (cons
            1
            "旋转角度0"
            
            
          )
          (cons 10 (append (car ptn_xmax) '(0)))
          (cons40
            (* 0.4
            (min(distance (car ptn) (cadr ptn))
                (distance (cadr ptn) (caddr ptn))
            )
            )
          )
      )
      )
      (entmake
      (list
          '(0 . "TEXT")
          (cons
            1
            (strcat "旋转角度"
            (rtos (/ (* 180 (angle (car ptn_ymin) (car ptn_xmax)))pi) 2 2)
            "°"
            )
          )
          (cons 10 (append (car ptn_xmax) '(0)))
          (cons40
            (* 0.4
            (min(distance (car ptn) (cadr ptn))
                (distance (cadr ptn) (caddr ptn))
            )
            )
          )
      )
      )
      
      
      
    )
    (setq i (1+ i))
)
(prin1)
)

NewBug 发表于 2022-1-30 14:48:24

没有测试图,只能动手画几个框了
页: [1]
查看完整版本: 求个位大神写一个,批量选取矩形,标注矩形旋转角度的程序