|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как показать на окне программы рисунок-миниатюру блока из AutoCAD?
Регистрация: 19.12.2011
Сообщений: 35
|
||
Просмотров: 11058
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,450
|
ghost, заголовок темы исправь - укажи язык и версию AutoCAD.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
BlockTableRecord.HasPreviewIcon - позволяет определить есть ли миниатюра. BlockTableRecord.PreviewIcon - сама миниатюра блока Здесь есть готовый пример: http://www.theswamp.org/index.php?to...4941#msg404941 (требуется регистрация)
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
"Родные" скрины AutoCAD имеют убогое качество и размеры. Как вариант - можно самостоятельно создавать нужного качества/размера скрины блока и сохранять в определении блока как XRecord. Затем в своём диалоговом окне показывай это изображение. Примеры создания таких скринов в AutoCAD средствами .NET, можешь глянуть здесь. Там же показан пример, как вытянуть из свойства BlockTableRecord.PreviewIcon "родную" картинку, созданную AutoCAD, но её размеры и качество, как я уже писал - оставляет желать лучшего.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
инженер Регистрация: 15.09.2009
Брест
Сообщений: 55
|
Александр Ривилис, не могли бы подсказать, как из внешнего exe-файла показать миниатюру всего dwg файла.
Насколько я понимаю необходимо использовать AcThumbinail16.dll. тк explorer использует эту библиотеку. Поиски примера зашли в тупик. Заранее благодарю. |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А "хорошие" картинки предпросмотра надо делать самостоятельно. Технология зависит от целей. Наверное, превьюшки блоков понадобились для организации какого-то интерфейса, связанного с выбором блоков. Пытаться использовать для этого PreviewIcon вряд ли стоит. |
|||
![]() |
|
||||
Совершенно необязательно. Почитай тему: http://www.theswamp.org/index.php?topic=30985.0 Там есть готовые коды.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
инженер Регистрация: 15.09.2009
Брест
Сообщений: 55
|
Большое спасибо.
![]() Подскажите, как реализовать функцию из NET 4 System::IO::FileStream::CopyTo(MemoryStream,Int32) на С++ Для NET3. (тк редко пользуюсь C++ ) Функция для Preview взята из http://www.theswamp.org/index.php?topic=30985.0 Похоже надо скопировать с потока FileStream Int32 байт в MemoryStream. Как проще это реализовать ? Последний раз редактировалось alex-63, 03.10.2012 в 17:32. |
|||
![]() |
|
||||
alex-63, гугл тебе в помощь:
http://stackoverflow.com/questions/5...-framework-3-5 http://stackoverflow.com/questions/2...tances-c-sharp
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Мог бы и поделиться кодом своего решения. Может кому пригодится.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 19.12.2011
Сообщений: 35
|
Да я бы c радостью! Только чем делится то!?
![]() |
|||
![]() |
|
||||
Я подумал, что ты нашёл ещё один программный способ делать это, помимо тех, что тебе были указаны выше по теме.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
хранятся, где же им ещё храниться... вернее так: во внешних файлах они точно не хранятся
![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Лист (как и Model) - это блок определённого вида (его свойство IsLayout возвращает true). Так что миниатюры листов могут хранится в dwg-файле.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Не путай. Есть картинка чертежа, а есть картинка блока. Картинка чертежа - это то, о чем ты пишешь. К картинке блока есть доступ изнутри AutoCAD (arx/dll), но нет (бесплатных) средств для доступа из внешнего приложения. Через COM/ActiveX тоже нет доступа к картинкам блоков.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
инженер Регистрация: 15.09.2009
Брест
Сообщений: 55
|
Указанные ссылки на программы Александром Ривилис извлекаю из dwg файла миниатюру Model .
За что ему большое спасибо. Может кто встречал программу извлечения миниатюры из листов. Но без информации о структуре DWG ничего не получиться , даже если прилинковать библиотеки из object arx похоже функции не заставить работать без acad.exe. |
|||
![]() |
|
||||
О чем я давно и толкую. Нет бесплатных средств работы с dwg-файлом без запуска AutoCAD.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Цитата:
1. OLE Automation (Visual Basic Script/Java Script) 2. LISP (включая DCL) 3. C++ (NRX + MultiCAD API) 4. .Net
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Согласно этой же таблице NanoCAD 4.x совсем и не free.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Да, оказывается под 4.х free-версия будет выпущена позднее...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 13.09.2012
Сообщений: 1
|
В бесплатном nanoCAD 3.7 нет пункта 2: LISP. Остальные виды API есть, хотя и не содержат дополнений и исправлений, появившихся в версии 4.
|
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Нет, я уточнял этот вопрос - API для разработчиков урезаться в free-версии не будут.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
|
||||
![]() |
|
||||
Несколько раз прочитал это, но так и не понял.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Ты не мудри, ты пальцем покажи
![]()
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Всё правильно. НО! Автор вопроса просит получить превьюшку не листа, а листов (я так понимаю всех, которые есть в чертеже). Так что предложенный способ не годится.
__________________
Сообщество программистов Autodesk в СНГ - техническая поддержка |
||||
![]() |
|
||||
Цитата:
Код взят и переработан под себя отсюда : http://forums.autodesk.com/autodesk/.../ImageView.txt Что из этого получилось вот : http://www.youtube.com/watch?v=zK0BC...hannel&list=UL |
||||
![]() |
|
||||
Видео любопытное, но оно не раскрывает вопроса: у тебя в окошке готовый скрин блока и непонятно, как этот скрин программно сформирован (способов ведь много). Автору ведь нужны скрины всех листов, имеющихся в чертеже. За код спасибо - конвертну в C# и почитаю.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Там скрин всего что было показано при сохранении файла .dwg , хоть блок хоть весь чертеж.
Это таже картинка что и винда показывает если выбрать - вид отображения папок и файлов "Эскизы страниц" в ХР в 7 насколько помню -"Большие картинки". Походу этим сама винда пользуется. А по поводу всех листов, согласен с Александр Ривилис без библиотек не обойтись. В файле сохраняется только одна миниатюра. Пожалуйста, да кстати , на всякий случай - на VB6 половина оригинального кода не пошло, решение оказалось простое - тупо удалить проблемные строки. |
||||
![]() |
|
||||
@maratovich
А чем не устроил Statusbar самого AutoCAD? Зачем виндовый используешь?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Этот:
Тогда понятно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
инженер Регистрация: 15.09.2009
Брест
Сообщений: 55
|
Но структура файла dwg описана в документе на www.opendesign.com и свободна для доступа. Похоже при разработке кода(указанного Александром Ривилис) пользовались инструкцией OpenDesign_Specification_for_.dwg_files2012.pdf где сказано что по
адресу 0x0D (длиной 4 байта) находится Preview address (long), points to the image page + page header size (0x20). Но что то я не нашел ничего про preview layouts. А ведь когда в подшивке копошишься то preview срабатывает. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Открытие нескольких файлов в одном окне AutoCad | TanyaNuri | AutoCAD | 67 | 17.01.2023 13:04 |
Ищу программы для линейного оптимального раскроя и фигурного оптимального раскроя листа под AutoCAD | mazik | Прочее. Программное обеспечение | 24 | 23.06.2012 08:01 |
запуск программы из AutoCADа | kminas | Программирование | 19 | 15.06.2012 13:42 |
Программы на платформе AutoCAD | RodiXX1 | Вертикальные решения на базе AutoCAD | 18 | 25.02.2008 12:41 |
Запуск программы из AutoCAD | Krieger | AutoCAD | 8 | 28.11.2005 09:14 |