TsgDXFImage.IsWithoutBorder problems

Discuss and ask questions about CAD VCL (Delphi and C++ Builder).

Moderators: SDS, support, admin

Post Reply
DmitryZan
Posts: 8
Joined: 29 Jun 2007, 17:35

TsgDXFImage.IsWithoutBorder problems

Post by DmitryZan » 24 Jan 2008, 17:10

Добрый день.

1) При использовании объектов класса TsgDXFImage со свойством IsWithoutBorder = True возникает рассогласованность координат объектов и изображения. Координаты хранятся/возвращаются всегда как для режима IsWithoutBorder = False

2) В документации написано что этот параметр нужно выставлять в True перед загрузкой изображения. Но это ничего не дает. Правильно ли мы поняли что это просто ошибка и на самом деле это нужно делать после загрузки (тогда вроде бы все работает)?

3) При копировании изображения через метод TGraphic.Assign (т.е. TsgDXFImage.Assign) изображение со свойством IsWithoutBorder = True после копировани имеет свойство IsWithoutBorder = False и соответственно снова границы.


Если вопросы 2 и 3 не так критичны (по вопросу 3 понятен workaround), то по вопросу 1 хотелось бы понять метод решения.
Можно ли с уверенностью полагать что для режима IsWithoutBorder = True можно всегда вычитать из координат объектов 1/16 высоты и ширины (как мы поняли из документации общее увеличение высоты/ширины идет на 1/8)

Дмитрий Занозин
НИЦ CALS-технологий "Прикладная логистика"

support
Posts: 3272
Joined: 30 Mar 2005, 11:36
Contact:

Post by support » 25 Jan 2008, 18:10

Здравствуйте, Дмитрий.

1) Да, включение данного режима не меняет систему координат. Указанный режим сохранился с первых версий библиотеки и сейчас не рекомендуется к использованию. В будущих версиях он будет удалён.

2) Написано там верно. Рекомендуем устанавливать его в True, дабы избежать возможных путаниц в значениях координат TsgDXFImage.Extents, TsgDXFImage.CurrentLayoutBox и т.п. Режим устарел - устанавливать в True ПЕРЕД вызовом GetExtents (т.е. по сути перед подсчётом Extents'ов).

3) Такая неточность была в старых версиях.
Версия CADImportVCL 6.x содержит строку:
Self.IsWithoutBorder := TsgDXFImage(Source).IsWithoutBorder;
Какую версию Вы используете?

Итак, наши настоятельные рекомендации:
// до вызова процедур пересчёта размеров:
// TsgDXFImage(Your_CAD).GetExtents или TsgDXFImage(Your_CAD).CurrentLayout := ...
TsgDXFImage(Your_CAD).IsWithoutBorder := True;

Вообще в версии CADImportVCL 6.x :
procedure TsgDXFImage.SetIsWithoutBorder(Value: Boolean);
begin
FIsWithoutBorder := Value;
if FCurrentLayout <> nil then
SetCurrentLayout(FCurrentLayout);
end;
то есть по сути не важно когда Вы устанавливаете данный параметр в True, главное - установить его в это значение.

<b>English</b>: the speech goes about TsgDXFImage.IsWithoutBorder property usage.
TsgDXFImage.IsWithoutBorder stay False when coping image with IsWithoutBorder := True by TsgDXFImage.Assign. This problem is solved for <b>CAD Import VCL v.6.1</b>.

Sergey.

Please post questions to the forum or write to support@cadsofttools.com

DmitryZan
Posts: 8
Joined: 29 Jun 2007, 17:35

Post by DmitryZan » 25 Jan 2008, 19:31

Спасибо за ответы.

> Какую версию Вы используете?

Мы используем CAD Import VCL v5.25

Планируется ли выход в ближайшее время более новой версии библиотеки чем 6.1 и с какой функциональностью?
Перечень изменений в версии 6.1 изучили, но интересует будут ли еще какие-то обновления?
Версия 6.1 существует уже год без изменений?

Есть ряд пожеланий (например, описанных тут: http://www.soft-gold.ru/forum/topic.asp?TOPIC_ID=1072), интересует возможность таких нововведений в новых версиях.

support
Posts: 3272
Joined: 30 Mar 2005, 11:36
Contact:

Post by support » 28 Jan 2008, 16:16

Здравствуйте!

В настоящее время готовится к выходу следующая версия продукта <b>CAD Import VCL</b>. Ориентировочный выход - через три-четыре месяца.
Из наиболее существенных изменений 6.3 в сравнениии с 6.1. следует отметить:
<ol type="1"><li>Добавление поддержки новых примитивов:
<ul><li>TOLERANCE;</li>
<li>SHAPE.</li></ul></li>
<li>Доработка MTEXT'а, кроме правки ряда неточностей для формата DWG2004, теперь есть возможность менять отступ между строками и ширину MTEXT'а.</li>
<li>Ускорено отображение SHX-шрифтов.</li>
<li>Исправлена ошибка с циклической ссылкой XRef'ов.</li></ol id="1">
Кроме того, было внесено множество корректировок и мелких исправлений/улучшений.

По CGM: это сделать вообще говоря возможно, но пока не реализованно (есть ряд сложностей с бинарным CGM).

<b>English</b>:
Currently we work on the next version of <b>CAD Import VCL</b>. We plan to finish it in three or four months.
The most important changes comparing to <b>CAD Import VCL</b> are:
<ol type="1">
<li>New entities are supported:
<ul><li>TOLERANCE;</li>
<li>SHAPE.</li></ul></li>
<li>Improved quality for MTEXT, including fixing of some bugs of DWG 2004 files format. Also it is added ability to change a distance between MTEXT lines and to changes a width of MTEXT.</li>
<li>Viewing of SHX fonts is speeded up.</li>
<li>XRefs' cycling reference bug has been solved.</li></ol id="1">
Besides, there are lots of improvments and corrections made.

Accordingly to CGM (questions on the following topic: http://www.soft-gold.ru/forum/topic.asp?TOPIC_ID=1072): it is possible to be implemented, but there are some difficulties with binary CGM.

Sergey.


Please post questions to the forum or write to support@cadsofttools.com

Post Reply