|
Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
Тема
|
Леяри, блокове и текст в тях: помогнете
|
|
Автор | tooth (Нерегистриран) |
Публикувано | 17.09.07 17:26 |
|
Здравейте,
Имам поредният досаден проблем с блокове в ACAD 2008, 2006
Той е следният. Имам няколко на брой блокове, които се оказа, че трябва да променя. Оказа се, незнайно как, че надписа в блоковете си седи в нулевият слой, а останалата част е в слоя, който трябва ( блоковете предварително са правени в нулевият слой и после са прмествани в другия, по всички правила на чертането в ACAD :) ).
След като се оказа, че трябва да се променят тези блокове ( те си седят в отделен чертеж готови да се копират и пейстнат). Това е с цел да не се пишат във всеки чертеж наново слоевете.
Променям ги аз с бок едитора и до там добре.
След това ги копирам в чертежа в който искам да се променят блоковете вече с текст, който се намира в техният си слой.
Та проблема е, че след пействането не се променят старите блокове, които са в чертежа, а се променят новите пейстнати блокове и така се оказва, че немога да ги поправя. С други думи текста си седи в нулевият слой както преди.
И се опасявам, че това след време може да създаде проблем с тези чертежи и пак да се наложи да ги поправям.
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: tooth]
|
|
Автор | tooth (Нерегистриран) |
Публикувано | 17.09.07 17:52 |
|
Само да добавя, че докато се опитвам да го поправя този проблем установих, че дори и пик пойнта се връща в позиция на старите блокове, а не на новият блок където е променена.
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: tooth]
|
|
Автор | gena (Нерегистриран) |
Публикувано | 17.09.07 21:59 |
|
аз чесно се обърках какво искаш да направиш в краина сметка ? може би ако си формолираш въпроса по- кратко и конкретно кавко искаш да направиш... някои ще успее да ти помогне...
за да извличаш леари и блокове от друг чертеж може да използваш и ADCENTER
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: tooth]
|
|
Автор | StSt (Нерегистриран) |
Публикувано | 18.09.07 13:23 |
|
Заботата е в това, че вмъкваш блоковете едновременно в един чертеж.
Извади ги с WBLOCK като отделни чертежи и след това ги вкарай един по един с INSERT.
Друг вариант е да вмъкнеш стария чертеж в чертежа с модифицираните блокове и след това да го запишеш под друго име.
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: StSt]
|
|
Автор | tooth (Нерегистриран) |
Публикувано | 18.09.07 13:53 |
|
За жалост и двата варианта ги пробвах и нестава.
Даже се оказа, че от стария чертеж немогат да се кпоират обекти.
Стигнах до там да нправя всички блокове наново в нов чертеж и така не стана, после направих пак всички блокове с нови имена. Оказа се, че и с новите имена незнайно как те придобиват свойствата на развалените блокове.
Пробвах и с командата (PU) така се оказва, че блоковете, които ги няма по чертежа след като се копират излизат нормално без проблем, а другите, които съществуват вече в чертежа не се оправят.
Единственото, което ми идва наум е това, че явни чертежите са били сейвнати в ауто кад 2000 и 2002. Или са чертани с някакво приложение като МАД, което на мен не ми е известно.
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: tooth]
|
|
Автор | StSt (Нерегистриран) |
Публикувано | 18.09.07 21:52 |
|
Ако искаш прати двата файла на stan_emea@abv
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: StSt]
|
|
Автор | tooth (Нерегистриран) |
Публикувано | 19.09.07 09:38 |
|
За жалост те не са 2 а са към 100 :) .
И няма начин как да ги пратя :( .Не заради бройката.
| |
Тема
|
Re: сещам се за ...
[re: tooth]
|
|
Автор | Mинaвaщ (Нерегистриран) |
Публикувано | 19.09.07 10:42 |
|
Признвам , че малко по "диагонал" прочетах Темата !
Разбирам , че проблема е , че като вмъкнеш Блок във файл , ако има във файла Блок със същото име , то се появява "старият" Блок , а не "новият" !
Ми при мен Винаги е било така!
Проблема е че имаш 100 файла което променя ситуацията.
Преди време тук писахме за едни лиспове които променят "характеристиките" на обектите в Блока ... може да помогнат , но ще трябва файл по файл да се отварят .
Например :
;FIXBLOCKN.LSP
;
;команда (fixbylayer) променя обектите в Блока -> Layer=0 , Color=ByLayer и Linetype=ByLayer
;
;команда (fixbyblock) променя обектите в Блока -> Layer=0 , Color=ByBlock и Linetype=ByBlock
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun C:fixbylayer (/ ss cnt b donelist bredef)
(defun bredef (b / e el)
(setq e (tblobjname "BLOCK" b))
(while e
(setq el (entget e))
(setq el (subst '(8 . "0") (assoc 8 el) el))
(setq el (subst '(6 . "bylayer") (assoc 6 el) el))
(setq el (if (assoc 62 el) (subst '(62 . 256) (assoc 62 el) el) (append el '((62 . 256)))))
(entmake el)
(setq e (entnext e))
)
(if (/= "ENDBLK" (cdr (assoc 0 el))) (entmake '((0 . "ENDBLK") (8 . "0") (62 . 256) (6 . "bylayer") )))
)
(if (> (logand (cdr (assoc 70 (tblsearch "layer" "0"))) 1) 0)
(princ "\nLayer 0 must be thawed before running FIXBYLAYER !\n")
(if (setq ss (ssget '((0 . "INSERT"))))
(progn
(setq cnt (sslength ss))
(while (>= (setq cnt (1- cnt)) 0)
(if (not (member (setq b (cdr (assoc 2 (entget (ssname ss cnt))))) donelist))
(progn
(bredef b)
(setq donelist (cons b donelist))
)
)
)
(princ (strcat "\n" (itoa (sslength ss)) " blocks redefined\n"))
(command "regen")
)
(princ "\nNo blocks selected !\n")
)
)
(princ)
)
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun C:fixbyblock (/ ss cnt b donelist bredef)
(defun bredef (b / e el)
(setq e (tblobjname "BLOCK" b))
(while e
(setq el (entget e))
(setq el (subst '(8 . "0") (assoc 8 el) el))
(setq el (subst '(6 . "byblock") (assoc 6 el) el))
(setq el (if (assoc 62 el) (subst '(62 . 0) (assoc 62 el) el) (append el '((62 . 0)))))
(entmake el)
(setq e (entnext e))
)
(if (/= "ENDBLK" (cdr (assoc 0 el))) (entmake '((0 . "ENDBLK") (8 . "0") (62 . 0) (6 . "byblock"))))
)
(if (> (logand (cdr (assoc 70 (tblsearch "layer" "0"))) 1) 0)
(princ "\nLayer 0 must be thawed before running FIXBYBLOCK !\n")
(if (setq ss (ssget '((0 . "INSERT"))))
(progn
(setq cnt (sslength ss))
(while (>= (setq cnt (1- cnt)) 0)
(if (not (member (setq b (cdr (assoc 2 (entget (ssname ss cnt))))) donelist))
(progn
(bredef b)
(setq donelist (cons b donelist))
)
)
)
(princ (strcat "\n" (itoa (sslength ss)) " blocks redefined\n"))
(command "regen")
)
(princ "\nNo blocks selected !\n")
)
)
(princ)
)
;End-of-file
Лиспа съм го бърникал и може да съм го объркал !
Можеш сам да редактираш нещо ... то това е Идеята !
| |
Тема
|
Re: сещам се за ...
[re: Mинaвaщ]
|
|
Автор | tooth (Нерегистриран) |
Публикувано | 19.09.07 14:15 |
|
Мерси много за програмките.
След 2, 3 дена ще имам време да експериментирам с тях и ще кажа какво се е получило.
| |
Тема
|
Re: Леяри, блокове и текст в тях: помогнете
[re: tooth]
|
|
Автор | StSt (Нерегистриран) |
Публикувано | 19.09.07 14:17 |
|
Очевидно чертежа е правен с друга програма и са конвертирани в DWG.
Това, че не може да се копират елементи в друг чертеж е признак за това.
Обикновено последното се оправя като отвориш нов (чист) чертеж и вмъкнеш с INSERT разваления чертеж.
Ако се оправи, можеш да опиташ следното с QSELECT избираш всички блокове и ги преместваш в празен чертеж на оригиналното място. След това с PURGE чистиш всички блокове. Вмъкваш с INSERT чертежа с коригираните блокове (в него не трябва да има вмъкнати блокове, т.е. само описанието на блоковете). След това връщаш преместените в чистия чертеж блокове на оригиналните им места.
Ако си сменил точките на вписване ще се преместят.
И накрая по какво познаваш, че текста ти е в "0" слой?
| |
|
Страници по тази тема: 1 | 2 | 3 | 4 | >> (покажи всички)
|
|
|