|
Тема |
Re: Уж слоя е празен... [re: cad] |
|
Автор |
magesnik (вълшебник) |
|
Публикувано | 24.11.09 09:52 |
|
|
ето ти един скрипт, кой знае откъде намерен, който служи да прехвърля в нулев слой всички обекти на избран блок без блока да се предефинира
пробвал съм го преди няколко години - работи, макар че на мен не ми се налага често да го ползвам
имаше мнение - ако имаш празни текстови обекти пробвай през quick select или find да ги намериш
ето го и самия скрипт:
-------------------------------
;TIP850.LSP: BL0.LSP Change Block Entities to Layer 0 (c)1993, J. Todd Owen
;globalization by CAD Studio
(defun C:BL0 (/ CL ENAME ENT)
(setvar "CMDECHO" 0)
(setvar "HIGHLIGHT" 0)
(setq CL (getvar "CLAYER"))
(command "._LAYER" "_S" "0" "")
(setq ENAME nil ENT nil)
(while (= ENAME nil)
(setq ENAME (car (entsel "\nSelect block to redefine on layer 0: ")))
)
(setq ENT (entget ENAME))
(if (= (ITEM 0 ENT) "INSERT")
(progn
(command "._COPY" ENAME "" "@" "@")
(setq ENAME (entlast))
(BLOCK0 ENAME)
)
(progn (princ "\nError: A block must be selected.") (C:BL0))
)
(command "._LAYER" "_S" CL "")
(setvar "HIGHLIGHT" 1)
(setvar "CMDECHO" 1)
(princ)
)
(defun BLOCK0 (ENAME / ENAME2 ENT INSPT BLKNAME SSBLK)
(setq ENT (entget ENAME))
(setq INSPT (ITEM 10 ENT))
(setq BLKNAME (ITEM 2 ENT))
(setq ENT (subst (cons 41 1) (assoc 41 ENT) ENT)) ;x-scale
(setq ENT (subst (cons 42 1) (assoc 42 ENT) ENT)) ;y-scale
(setq ENT (subst (cons 43 1) (assoc 43 ENT) ENT)) ;z-scale
(setq ENT (subst (cons 50 0) (assoc 50 ENT) ENT)) ;rotation angle
(entmod ENT)
(command "._EXPLODE" ENAME)
(setq ENAME (entnext ENAME))
(setq SSBLK (ssadd))
(while (/= ENAME nil)
(setq ENT (entget ENAME))
(setq ENT (subst (cons 8 "0") (assoc 8 ENT) ENT)) ;layer
(setq ENT (subst (cons 62 256) (assoc 62 ENT) ENT)) ;color
(setq ENT (subst (cons 6 "BYLAYER") (assoc 6 ENT) ENT)) ;ltype
(entmod ENT)
(setq SSBLK (ssadd ENAME SSBLK))
(if (= (ITEM 0 ENT) "INSERT") ;if ENAME is a block
(progn
(command "._COPY" ENAME "" "@" "@")
(setq ENAME2 (entlast))
(BLOCK0 ENAME2)
)
)
(setq ENAME (entnext ENAME))
)
(command "._BLOCK" BLKNAME "_Y" INSPT SSBLK "")
)
(defun ITEM (N ENT)
(cdr (assoc N ENT))
);end bl0.lsp
(princ "BL0 loaded.")
(princ)
Магьосниците не закъсняват, нито идват по-рано. Те пристигат точно когато им е угодно
|
| |
|
|
|