Тема: Что за функция ads_regen()?

void ads_regen(void);
Это недокументированная функция, которая выполняет регенерацию всего чертежа.

Re: Что за функция ads_regen()?

Спасибо.
Александр, вы не подскажите, в каком случае получается так:
все примитивы внутри блока лежат на слое "0", а BlockBebing "лежит" на другом слое.
Я его, конечно, перенёс, но просто интересно, как такое получается.

Re: Что за функция ads_regen()?

> aazko
А что такое BlockBebing? smile
BlockReference находится на том слое, на который его вставили, т.е. не обязательно "0". Чтобы и он был на слое "0" его нужно или сразу вставлять на "0" или потом менять его слой на "0".

Re: Что за функция ads_regen()?

А что за функция ads_regen()? Ничего подобного в хелпе найти не могу...

Re: Что за функция ads_regen()?

Извините за тупость :), но не пойму, как связаны BlockBegin и BlockReference? Ведь, насколько я понимаю, BlockReference - это запись в модели (или листе), которая представлена как INSERT и ссылается на запись в BlockTable, а не на BlockBegin.
К тому же, может я не до конца описал ситуацию - самого блока (BlockReference) в модели нет, а в BlockTable он есть.

Re: Что за функция ads_regen()?

На основе AcDbBlockTableRecord при вставке блока в чертеж (командой INSERT или другими средствами) создается AcDbBlockReference (т.е. INSERT) и он присутствует в модели или листе (в зависимости от того куда он вставлен). AcDbBlockReference - это примитив, AcDbBlockTableRecord - это объект - запись в табице блоков. AcDbBlockBegin и AcDbBlockEnd создаются AutoCAD автоматически для каждого AcDbBlockTableRecord. Вообще пара AcDbBlockBegin и AcDbBlockEnd - это "наследие" старых версий AutoCAD.

Re: Что за функция ads_regen()?

Посмотрите в разделе AutoLISP тему "Глюк с блоками и слоями", может поможет