Как вставить рисунок в AutoCAD, чтобы он открывался на другом компьютере

Как вставить картинку в автокад чтобы она не исчезала на другом компьютере


DimMih © ( 2005-08-15 11:54 ) [0]

Процедура рисует таблицу заданных размеров и записывает её в MetaFile. Когда вставляю MetaFile в AutoCad, размеры таблицы отличаются от заданных. Не могу понять почему так. Помогите разобраться


DimMih © ( 2005-08-15 13:27 ) [1]

«Спасибо за помощь. «


GLFox © ( 2005-08-15 13:47 ) [2]

Если работаешь через OLE и вставляешь при помощи метода Import, то проверь параметр ScaleFactor. Да и после вызова этого метода получаешь ссылку на BlockReference, размеры которого можешь подправить сам.


DimMih © ( 2005-08-15 15:14 ) [3]

Всё гораздо проще. Я работаю не через OLE. Процедура создаёт MetaFile, потом этот MetaFile я отправляю в буфер обмена, а в AutoCad-е я вставляю «Специальной вставкой»


k2 © ( 2005-08-16 06:28 ) [4]

1)при вставке «специальной вставкой» выберите формат «растровое изображение», тогда сможете управлять масштабом через редактор свойств в том числе;
2)есть какие-то веские причины метафайл отправлять в буфер обмена и проч., если автокад нормально принимает метафайлы через вставка->wmf. ? в итоге получится ссылка на блок опять таки с масштабом;
3)если таки нужно вставлять через «специальную вставку» в формате изображение(метафайл): стандартный редактор свойств никаких данных о вставленном объекте не показывает
после вставки выберите объект,по правой кнопке в контекстном меню выберите «свойства» и установите нужный масштаб(или через olescale в командной строке).

За вставку первыми двумя методами то, што вставляемое изображение можно масштабировать в соответствующих единицах измерения:
средства->формат->единицы.
удачи
а расстраиваться што никто не отвечает не надо,все тоже самое вы могли и в справке прочитать,благо у автокада она хорошая русифицированная,
правда именно этот раздел у меня по-аглицки, но у меня достаточно старенькая


DimMih © ( 2005-08-16 10:21 ) [5]

Уважаемый k2, что касается первого пункта, то если я вставляю как растровое изображение, то при распечатке появляется фон, поэтому этот вариант не подходит.
Веских причин отпарвлять метафайл в буфер обмена нет. Дело в том, что «вставка->wmf» да и «специальная вставка->AutoCad Entities» работает, но изображение вставляется не в истинном размере. Смасштабировать его я могу, но мне нужно избежать ручного масштабирования, чтобы сэкономить время на вычисление коэффициента масштаба и собственно самой операции.


k2 © ( 2005-08-16 10:49 ) [6]

Уважаемый DimMih, было бы хорошо выложить пример wmf файла (небольшой), куда-нибудь на www.webfile.ru например и какие размеры должны быть, может што и найдем, умозрительно сложно рассуждать


DimMih © ( 2005-08-16 11:11 ) [7]

Файл найдёте по адресу http://www.webfile.ru/461367 Ширина таблицы должна быть 185mm


k2 © ( 2005-08-16 13:08 ) [8]

to DimMih © (16.08.05 11:11) [7]
К сожалению порадовать нечем, кроме как заниматься поиском коэффициента масштабирования никак решить не удалось, метафайлы искажаются 🙁 Автодеск впрочем и не скрывает этого, и предлагает следующее решение:
«Для связывания и внедрения данных из других приложений через буфер обмена в рисунок AutoCAD используется команда ВСТСПЕЦ. При этом, если данные буфера обмена можно преобразовать в формат AutoCADто объекты вставляются в виде вхождений блоков. Для редактирования вставленных таким образом блоков следует расчленить их в местах вхождений на отдельные объекты. Во время преобразования графики, хранимой в буфере обмена, из формата метафайла Windows в формат AutoCAD может произойти некоторая потеря точности масштабирования. Для избежания этого недостатка объекты из буфера обмена следует сохранять в виде блока в отдельном рисунке (ПБЛОК), а затем вставлять их в AutoCAD с помощью команды ВСТАВИТЬ.»
К сожалению у меня и таким образом ничего не вышло 🙁
ещё думаю стоит поспрошать на специализированных сайтах, автокад.ру, кто-то может добился
удачи


dimmih © ( 2005-08-16 13:36 ) [9]

Спасибо за информацию. На автокад.ру пока тоже не дали ответа.
Я думаю эту тему можно закрыть.


k2 © ( 2005-08-17 08:04 ) [10]

Можно и закрыть 🙂 хотя через оле это настолько легко решаемо:

.
uses
comobj, AutoCAD_TLB;
.
procedure TForm1.Button1Click(Sender: TObject);
var
acad: IAcadApplication;
doc: IAcadDocument;
ent: IAcadEntity;
i: integer;
p1, p2: OleVariant;
dist, need_width, scale: Double;
begin
need_width := 185;
acad := GetActiveOleObject(«AutoCAD.Application»)as IAcadApplication;
doc := acad.ActiveDocument;
doc.Import(«c:specyfic.wmf», VarArrayCreate([0, 2], varDouble), 1);
ent := doc.ModelSpace.Item(pred(doc.ModelSpace.Count));
ent.GetBoundingBox(p1, p2);
dist := p2[0] — p1[0];
scale := need_width / dist;
ent.ScaleEntity(p1, scale);
acad.Update;
for i := 0 to pred(doc.ModelSpace.Count) do begin
Memo1.Lines.Add(«***»);
Memo1.Lines.Add(doc.ModelSpace.Item(i).EntityName);
ent := doc.ModelSpace.Item(i);
ent.GetBoundingBox(p1, p2);
Memo1.Lines.Add(IntToStr(p1[0])+»»+IntToStr(p1[1]));
Memo1.Lines.Add(IntToStr(p2[0])+»»+IntToStr(p2[1]));
end;
>
end;

в акаде создать кнопочку для вставки метафайлов через свою процедуру, подключить примерно так:
^C^C(startapp «c:/MyProjects/MyProgramName.exe»)

расширить свою формочку: добавить диалог для выбора файла, добавить ввод параметра необходимой ширины объекта, соответственно переписать обработчик, вот и все


DimMih © ( 2005-08-18 11:18 ) [11]

Попробовал процедуру — вставка работает, но всё равно нужную ширину не выдаёт


k2 © ( 2005-08-18 11:42 ) [12]

ээ стрянно :((( я пробовала с вашим файлом все нормально было :(((( вообще не масштабируется или неточно?


DimMih © ( 2005-08-18 11:52 ) [13]

Масштабируется, но не точно.


k2 © ( 2005-08-18 12:32 ) [14]

в коэффициенте масштабирования тут ошибиться трудно, я проверяла с вашим файлом, а насколько неточно?

Ещё один вариант решения: если вид всех спецификаций один и тот же, было бы правильнее начертить точный шаблон в автокаде, а из вашей программы через оле заполнять вашими данными


DimMih © ( 2005-08-18 13:00 ) [15]

Не могу понять. Вставлял разные файлы. В некоторых ширина была 183..185, что меня устраивало, а некоторые 164, 176. Только что дошло. Дело в том, что в некоторых спецификациях текст в поле «Примечание» выходит за границы таблицы => коорд. р2 принимает некорректное значение =>ширина 185 — это ширина вместе с текстом, выходящим за границы таблицы. Так что процедура работает правильно и коэффициент вычисл. тоже правильно.


k2 © ( 2005-08-18 13:10 ) [16]

ура 🙂
и все-таки последний предложенный вариант более предпочтителен, в том числе и тем, што шаблон в акаде будет точным, плюс будут соблюдены всякие требования вроде толщины линий или формата шрифта
вот теперь с чистой совестью можно тему закрыть 🙂 удачи


DimMih © ( 2005-08-18 13:20 ) [17]

Спасибо за помощь. А теперь дело техники.


Скачать с ютуб Как вставить картинку (изображение) в Автокад

В этом видео Максим Фартусов (https://vk.com/maksimfartusov) — создатель сайта AutoCAD-просто.ру (http://autocad-prosto.ru) — показывает, как вставлять картинки в Автокад и затем их редактировать.
Из видео Вы узнаете:
— Как вставить изображение в Автокад
— Как затемнить фон картинки
— Как повернуть изображение в Автокаде
— как убрать рамку (контур) картинки в Автокаде
— как подрезать картинку, вставленную в Автокад
— как сделать, чтобы картинка никогда не пропала

Официальный канал образовательного проекта AutoCAD-Просто.ру (Видео обучение AutoCAD), создателем которого является Максим Фартусов.
Этот канал создан для того, чтобы сделать обучение программе Автокад доступным и понятным для каждого желающего научиться чертить.
Наши курсы и видео уроки AutoCAD наглядно и без лишней воды научат Вас проектировать. Без самоучителей и книг, самостоятельно Вы добьетесь результата!

Другие бесплатные уроки в Автокаде

Чтобы справиться с данной задачей, достаточно произвести следующие простые действия. — Выделяем блок и вводим в командную строку.

— Может не работать по причине отключения режима предварительного выбора. Чтобы его включить – зайдите в OPTIONS, далее выберите свиток Selection и в разделе.

Расширение DWG — это бинарный формат являющимся основным для сохранения информации для систем автоматизированного проектирования (САПР).

F3 – включить/выключить объектную привязку; F8 — включить/выключить ортогональную привязку; F10 — включить/выключить полярную привязку.

Решение

Wolfhound234, ситуация следующая:
в файлах «Схематический план» и «двухнитка» чертежи начерчены с помощью блоков (поиск: работа с блоками в автокаде)
Блоки в разных файлах имеют одинаковые имена, но содержимое блоков разное.
Одних только блоков с названием вида BLOCK_000000 в чертеже около 1000 шт. (BLOCK_000000-BLOCK_000979), и 600 штук из них имеют дубликат во втором файле.
Когда вы копируете блок например с именем BLOCK_000333 в файл «Лист 1» из «Схематический план», то блок выглядит как в «Схематическом плане». Когда вы содержимое из файла «двухнитка», BLOCK_000333 там уже другой, но при вставке в «Лист 1» новый блок игнорируется, и вставляется как уже имеющийися, то есть этот блок будет выглядеть не так, как в файле «духнитка», а так, как в файле «Схематический план».

Если короче, то в одном файле не может быть двух разных блоков с одинаковым именем, это все равно что два мобильных телефона с одним номером в сети, или два одинаковых ИНН.

Какие могут быть решения:
1. Взорвать все блоки командой ._explode, а лучше ._burst из express tools (она сохранит атрибуты как текст). Нет блоков, нет проблем.

2. В лист 1 файлы вставить целиком в виде внешней ссылки (xref), через команду ._xref (поиск: работа с xref в автокаде)
Затем обе xref вставить в чертеж через тот же диалог xref, по контекстному меню используя Bind, (но не insert ни в коем случае). Как это в русской версии переведено — не знаю. Соответственно, внешняя ссылка превратится в блок, а все блоки внутри этой ссылки будут переименованы (а вам именно это и нужно).

3. переименовать все названия блоков в одном из файлов можно используя код VBA типа такого:

После этого блоки пересекаться не будут.

Результат способа №3 приложен к сообщению.
Готов ответить на конкретные вопросы.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector