Но в My_block_1.dwg есть блок My_block_1, так что переопределение будет рекурсивным.Не совсем: в My_block_1.dwg есть блок с именем My-block-1 (дефис вместо нижнего подчёркивания).
зачем нужно хранить по одному блоку в файле, если можно обойтись без блоков, а всё что нужно находится непосредственно в пространстве моделиОбычно я вставляю на рабочий чертёж сначала сам файл:
можно ли как-то менять параметр динамического блока ДО его вставки?Нет, если воспринимать вопрос буквально. Параметры есть у вставки блока, а не у описания блока. Поэтому параметры можно менять только после вставки блока. Средствами ObjectARX и AutoCAD .NET API используя Jig-технологию можно организовать то, что тебе нужно, когда блок вставляется, меняются его параметры, а затем он таскается за курсором. Возможно это можно сделать и средствами VisulLisp, используя функцию (grread) и/или комбинацию команд _MOVE/_ROTATE/_SCALE, но это неоправданно сложно (IMHO).
Всё-таки имена файлов и содержащихся в них блоков разные ("-" и "_")Но ты же присваиваешь при вставке им имена, которые соответствуют имени блока внутри вставляемого файла.
Но ты же присваиваешь при вставке им имена, которые соответствуют имени блока внутри вставляемого файла.Не так: я сначала вставляю блоки-dwg ("My_block_1.dwg"), а уже потом блоки из них "My-block-1". В результате в базе чертежа хранятся и "My_block_1", и "My-block-1" (первый удаляется через PURGE). Может, это не лучший вариант библиотеки блоков. Но с учётом этой особенности можно переопределить блоки?
Понятно. Способ хранения библиотеки блоков был выбран неверно. Нужно было вместо того, чтобы сохранять объекты в блок "My-block-1", после чего сохраняя файл с именем "My_block_1.dwg", просто выносить объекты в блок-файл командой _WBLOCK. Правильно?Именно! Или просто рисовать в пустом чертеже (в пространстве модели) и сохранять его (_SAVEAS) под именем "My-block-1".
Отсюда и ошибки.