⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex.lsp

📁 ex.lsp --- 分别或一起或通过层来炸开块、尺寸标注及PLINE线
💻 LSP
字号:
;           =======================================
;           |   炸开多个BLOCK,PLINE,DIMENSION     |
;           |      Ver: 1.2   作者: 迟俊岭        |
;           =======================================

(defun C:ex( / ss en1 len n test tt nn)
  (setvar "cmdecho" 0)
  (setq test T nn 0) 
  (initget "P B D L A")
  (setq tt (getkword "\nLayer/Block/Dimension/Polyline/<Select>: "))
  (if (or (= tt "B")
          (= tt "D")
          (= tt "P")
          (= tt "A")
          (= tt nil))
    (progn
      (while test
        (setq ss (ssadd))
        (setq ss (ssget))
        (if (= nil ss)
          (setq test nil)
          (progn
            (setq len (sslength ss))
            (setq n 1)
            (while (<= n len)
              (setq en1 (ssname ss (1- n)))
              (setq a (entget en1))
              (setq a (cdr (assoc 0 a)))
              (if (and (= "POLYLINE" a)
                       (or (= tt "P") (= tt "A") (= tt nil)))
                (progn
                  (command "explode" en1)
                  (setq nn (1+ nn))
                )
              )
              (if (and (= "INSERT" a)
                       (or (= tt "B") (= tt "A") (= tt nil)))
                (progn
                  (command "explode" en1)
                  (setq nn (1+ nn))
                )
              )
              (if (and (= "DIMENSION" a)
                       (or (= tt "D") (= tt "A") (= tt nil)))
                (progn
                  (command "explode" en1)
                  (setq nn (1+ nn))
                )
              )
              (setq n (1+ n))
            )
          )
        )
      )
    )
    (progn
      (setq en (car (entsel "\nPick a object on layer :")))
      (if (/= nil en)
        (progn
          (setq la (assoc 8 (entget en)))
          (setq ss (ssget "X" (list la)))
          (setq len (sslength ss))
          (setq n 1)
          (while (<= n len)
            (setq en1 (ssname ss (1- n)))
            (setq a (entget en1))
            (setq a (cdr (assoc 0 a)))
            (if (= "POLYLINE" a)
              (progn
                (command "explode" en1)
                (setq nn (1+ nn))
              )
            )
            (setq n (1+ n))
          )
        )
      )
    )
  )
  (princ (strcat (itoa nn) " exploded !"))
  (redraw)(princ)
)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -