ObjectARX, AutoCAD. Среда программирования библиотеки C++

       

Стадия Трансляции


И для глубокого клона и wblock

клонируют функции, объекты, которые упомянуты первичным объектом,  также оттранслированы. После того, как объекты скопированы, AutoCAD транслирует ссылки как описано в следующем три случая.

§

Случай 1: Если упомянутый объект был скопирован, старая ссылка оттранслирована, чтобы обратиться{*отнестись*} к скопированному объекту. В этом случае, это не имеет значение, если скопированный объект находится в той же самой базе данных как исходные объекты или в новой базе данных.

§         Случай 2: Этот случай предполагает, что исходный объект и скопированный объект постоянно находятся в той же самой базе данных. Если упомянутый объект не был скопирован, ссылка оставлена на месте

§         Случай 3: Этот случай предполагает, что исходный объект и скопированный объект находятся в различных базах данных. Если упомянутый объект не был скопирован, ссылка к этому установлена в NULL (потому что это не находится в базе данных адресата).


Как пример Случая 1, предположите, что Вы имеете Примитив 1, который содержит ссылку указателя к Примитиву B1. И Примитив 1 и Примитив B1 отобран, чтобы клонироваться. Перед трансляцией, Примитив 2 все еще относится к Примитиву B1. После трансляции, Примитив 2 модифицирован, чтобы отнестись к Примитиву B2.





Как пример Случая 2, предположите, что Вы имеете те же самые два примитива: Примитив 1 содержит ссылку указателя к Примитиву B1. Примитив 1 клонировался, но Примитив B1 - нет. Источник и адресат (клон), объекты находятся в той же самой базе данных.





Случай 3 подобен Случаю 2, кроме клонированных объектов находятся в новой базе данных. В этом случае, ссылка указателя Примитива 2 установлена в NULL, потому что Примитив B1 не в новой базе данных.




Содержание раздела