вставка блока с переопределением
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > вставка блока с переопределением

вставка блока с переопределением

Ответ
Поиск в этой теме
Непрочитано 20.04.2006, 21:09 #1
вставка блока с переопределением
Net
 
Регистрация: 22.01.2004
Сообщений: 366

Подскажите каким образом можно выполнить следующее:при вставке блока в чертеж, все блоки в чертеже с этим именем принимают вид изображения вставляемого блока.
Т.е. при вставке в чертеж блок меняет вид, т.к. в чертеже уже присутствует блок с таким же именем. Хотелось бы, чтобы было наоборот.
Просмотров: 16798
 
Непрочитано 21.04.2006, 02:06
#2
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Design Center. Ctrl+3
Vova вне форума  
 
Автор темы   Непрочитано 21.04.2006, 20:33
#3
Net


 
Регистрация: 22.01.2004
Сообщений: 366


У меня в 2002 не получается...
Net вне форума  
 
Непрочитано 21.04.2006, 20:53
#4
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Design Center Ctrl+2 :-)
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 21.04.2006, 21:15
#5
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Srartrec, Thanks
Vova вне форума  
 
Непрочитано 22.04.2006, 07:18 Re: вставка блока с переопределением
#6
Залётный


 
Регистрация: 15.04.2005
Сообщений: 243


Цитата:
Сообщение от Net
Подскажите каким образом можно выполнить следующее:при вставке блока в чертеж, все блоки в чертеже с этим именем принимают вид изображения вставляемого блока.
Т.е. при вставке в чертеж блок меняет вид, т.к. в чертеже уже присутствует блок с таким же именем. Хотелось бы, чтобы было наоборот.
При вставке указать не только имя блока, но и расширение т.е. blockname.dwg
Залётный вне форума  
 
Непрочитано 23.04.2006, 20:02
#7
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Извините, немного не в тему; новую создавать не буду...проблема наверно бородатая:
Есть блок. У него в свойствах забито (и при вставке тож неизменяемо)коэффициент какой-то один. Вставляется с масштабом по осям пропорционально ему шоб еденица получилась.
pyatifan вне форума  
 
Непрочитано 23.04.2006, 20:06
#8
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Скажите на милость как его переопределить,шоб там была единичка и по осям после вставки соответственно тож?
pyatifan вне форума  
 
Автор темы   Непрочитано 23.04.2006, 20:09
#9
Net


 
Регистрация: 22.01.2004
Сообщений: 366


Залётный
при вставке расширение не воспринимается

Vova
Пожалуйста ,объясните подробнее - ничего не получается (через DesignCenter то же самое, к чему Ctrl+3?)
Net вне форума  
 
Непрочитано 23.04.2006, 21:12
#10
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


На черт. имеется некоторое количество вставок блока с именем 111 определенной формы (А). На другом черт. имеется блок с этим-же именем но другой формы (Б). Надо, чтобы все вставки блока 111 поменяли форму-стали (Б) вместо (А). Правильно ли я понял вопрос? Если так то сделай следующее. Вызови Design center (Ctrl+2) Найди в дереве слева чертеж с блоком формы (Б). Дважды щелкни по строке с чертежом, в поле справа появится все, что можно перенести в открытый чертеж. Дважды щелкни по Blocks. Появятся все блоки, в том числе 111. По нем правой кнопкой и выбери Redifine only.
Vova вне форума  
 
Непрочитано 23.04.2006, 21:55
#11
Залётный


 
Регистрация: 15.04.2005
Сообщений: 243


Цитата:
Сообщение от Net
Залётный
при вставке расширение не воспринимается
Странно. Блок должен лежать в директории включённой в Support File Search Path или, если CAD открывался двойным шлепком по файлу, что я обычно и делаю, то блок может находистся также в рабочей директории REMEMBERFOLDERS установлено в 0. Посмотри картинки.
[/ATTACH]
[ATTACH]1145815978.zip[/ATTACH]
Залётный вне форума  
 
Непрочитано 24.04.2006, 09:19
#12
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Подскажите что с коэффициентами делать пжлста
pyatifan вне форума  
 
Непрочитано 24.04.2006, 12:25
#13
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


1. Запусти из ExpressTools команду "ssx", если она не загружается автоматом при открытии чертежа.
2. Запусти команду "properties".
3. Щелкни по кнопке "Select", набери на клаве (ssx), выбери, щелкни по ОДНОМУ блоку.
4. Внимательно ознакомся с текстом командной строки, в противном случае будут выбраны блоки только с того же слоя, что и указанный пользователем.
5. Внести, если надо изменения в командную строку, и нажать "Enter" 2 раза.
6. В окне "Properies" ввести соотв. коэффициенты, единые для всех выбранных блоков.
7. Завершить команду, вытереть пот и испытать чувство глубокого удовлетворения.
Лентяй вне форума  
 
Непрочитано 24.04.2006, 15:40
#14
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Есть блок. В "properties" (Ctrl+1) в разделе misc (разное) самая последняя вкладка в строке "коэффициент" забито 0.0394 (ячейка НЕИЗМЕНЯЕМАЯ), а в разделе "геометрия" Масштабы по осям 24,5 т.е. в итоге 1. Как мне сделать везде 1.
И вообще для чего и как работает это ssx. В хелпе пишут:
Creates a selection set. И что мне делать с этими настройками выбора.
Пробовал через дизайн центр перетащить эти блоки в другой файл (acad.dwt) - не помогло.
Лентяй, спасите утопающего...
pyatifan вне форума  
 
Автор темы   Непрочитано 24.04.2006, 19:42
#15
Net


 
Регистрация: 22.01.2004
Сообщений: 366


Цитата:
Сообщение от Vova
нем правой кнопкой и выбери Redifine only.
В 2002 по правой кнопке только "Insert Blok" и "Copy"
или я что-то делаю не так?
Net вне форума  
 
Непрочитано 25.04.2006, 10:42
#16
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


>pyatifan
такое впечатление, что ваш блок создан в дюймах. а чертеж - метрический. Тоакое непостоянство не есть хорошо, по каковой причине блоки надлежит создавать безразмерными. Попробуйте в диалоговом окне команды "_block" вытащить из падающего меню имя вышего блока и в окне "Drag-and-drop Units", или как оно зовется в русской версии, выставит нужные единицы или "Unitless" ("Безразмерный").
Лентяй вне форума  
 
Непрочитано 25.04.2006, 11:35
#17
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>pyatifan
Цитата:
Есть блок. В "properties" (Ctrl+1) в разделе misc (разное) самая последняя вкладка в строке "коэффициент" забито 0.0394 (ячейка НЕИЗМЕНЯЕМАЯ), а в разделе "геометрия" Масштабы по осям 24,5 т.е. в итоге 1. Как мне сделать везде 1.
За масштабирование блоков отвечает в команде _units выпадающий список "Масштаб вставки" или переменная INSUNITS
Чтобы при вставке не использовался пересчет установи INSUNITS в 0 как в файле блока так и в текущем рисунке. Вот прога меняющая коэффициенты уже вставленных блоков

Код:
[Выделить все]
(defun C:BLKXYZ ( / adoc el ssnab en item lays lay lock pell ptcen axss prop)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (setq lays (vla-get-layers adoc))
  (vla-startundomark adoc)
  (setq axss (vla-get-activeselectionset adoc))
  (vla-clear axss)
  (vla-select
    axss
    acselectionsetall
    nil
    nil
    (vlax-safearray-fill
      (vlax-make-safearray vlax-vbinteger '(0 . 0)) '(0))
    (vlax-safearray-fill
      (vlax-make-safearray vlax-vbvariant '(0 . 0)) '("INSERT"))
  ) ;_ end of vla-select
  (vlax-for item axss
    (setq lay (vla-item lays (vla-get-layer item)))
    (if (= (vla-get-lock lay) :vlax-true)
      (progn (vla-put-lock lay :vlax-false) (setq lock (cons lay lock))))
    (setq prop (mapcar
		 '(LAMBDA (x)
		    (if (vlax-property-available-p item x)
		      (vlax-get-property item x)
		      1
		      ))
		 '(XEffectiveScaleFactor YEffectiveScaleFactor ZEffectiveScaleFactor)
		 )
	  )
    (setvar "INSUNITS" 0)
    (mapcar '(lambda (x)
	       (if (vlax-property-available-p item x)
	       (vlax-put-property item x 1)))
		'(XEffectiveScaleFactor XScaleFactor YEffectiveScaleFactor YScaleFactor ZEffectiveScaleFactor ZScaleFactor)
	    )
        (mapcar '(lambda (x y)
	       (if (vlax-property-available-p item x)
	       (vlax-put-property item x y)))
   	      '(XScaleFactor YScaleFactor ZScaleFactor)
	       prop
	    )

    )
  (if lock
    (foreach x lock (vla-put-lock x :vlax-true)))
 (vla-endundomark adoc)
 (vla-clear axss) 
 (vla-delete axss) 
 (vlax-release-object axss)
 (vlax-release-object lays)
 (vlax-release-object adoc)
 (princ) 
)
(princ "\nНаберите в ком. строке BLKXYZ")
А вообще я свои блоки (хранятся как отдельные файлы) обработал этой прогой. Она устанавливает во всех чертежех INSUNITS 0.
[ATTACH]1145951249.rar[/ATTACH]
VVA вне форума  
 
Непрочитано 25.04.2006, 18:17
#18
pyatifan


 
Регистрация: 29.10.2005
Нижегородская обл.
Сообщений: 219
<phrase 1=


Спасибо. Показали правду и, как обычно, ещё немного больше...
Цитата:
такое впечатление, что ваш блок создан в дюймах. а чертеж - метрический.
Собственно так и есть. Мои побуждения были очевидны-хранить блоки в девственно чистых файлах:не иначе как acad.dwt (чтоб при вставке никаких там глупых стилей не было...корпоративного стандарта до сих пор нет...кто во что горазд) но мне даже и в голову не пришло что буржуи футами и инчами пользуются.

Наблюдения:
поменяв "юниты", всё разрешилось, разве что пришлось вручную исправить масштабы по осям. С этой задачей чудесно справился код для правки блоков в чертеже, даж лишних телодвижений делать не пришлось и масштаб автоматом сработал. А способ с "_block" неприемлем, т.к. блоки чаще динамические и после переопределения становятся обычными. Но сама проблема определена точно.

Ещё раз спасибо.
pyatifan вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > вставка блока с переопределением