Подскажите, пжалста, можно ли с помощью макроса программно вставить в сборку 3D-фрагмент из DOCs (важно!)? Почитал хэлп по API, нашел только методы, которые вставляют фрагменты по пути к файлу, т.е. фрагменты с диска.
05.04.2008 00:48:03
Может кто знает, как через API пересчитать 2D чертеж? Переменные у фрагментов меняются, а как пересчитать (Ctrl+F7) - не нашел.
|
|
|
|
05.04.2008 06:29:14
Document::Redraw() - Перерисовка всех видов документа
|
|
|
|
06.04.2008 18:06:45
Большое спасибо. Все получилось.
|
|
|
|
24.04.2008 21:31:11
Перенесен в ветку «Разработка приложений под Open API T-FLEX CAD (.NET)»
|
|
|
|
14.06.2008 15:16:56
Кто-нибудь знает как определить с помошью Open API "версию файла", т.е. версию T-Flex CAD, в которой был ранее сохранен выбранный *.grb файл? Вообще, задача такая: определить "версию файла" не запуская его, но это, наверное, нужно производить, используя функциональности операционной системы, что сложнее... Поэтому, буду рад подсказке, как определить "версию файла", открытого в T-Flex CAD в данны момент.
P.S. Достаточно указать раздел справки, а также необходимый метод или свойство; дальше, думаю, сам разберусь
Кто ищет - тот всегда найдет!
|
|
|
|
16.06.2008 23:05:51
Пожалуйста, помогите разобраться, как пользоваться инструментом "BreakPoint" (клавиша F9) в редакторе макросов. К собственному стыду даже не знаю, для чего он нужен, но предполагаю, что для отладки. Должно быть, инструментом "BreakPoint" пользоваться удобнее, чем стандартными экраными формами (MessageBox).
Кто ищет - тот всегда найдет!
|
|
|
|
17.06.2008 12:02:44
|
|||
|
|
18.06.2008 22:37:30
Спасибо, Александр.
Попробовал, честно говоря, из 10 попыток использования опции "BreakPoint" успешно выполнялись 2-3. Проверял в TF10.059 и TF11(учебная версия). Пробовал проверять в редакторе макросов в только что созданном модуле – с абсолютно «пустым телом», а также пробовал ставить точку прерывания после единственной инструкции в теле метода типа: string check = “Проверка”; В основном попытки приводили к зависанию TF. Может быть, я что-то не так делаю?
Кто ищет - тот всегда найдет!
|
|
|
|
20.06.2008 12:00:15
|
|||||
|
|
21.06.2008 19:50:50
Последовательность действий в TF11(Учебная версия):
1. Удаляю свой документ с макросами использующими стандартные обработчики событий (New Document Created, Document Open, View Activated) из директории С:\Program Files\T-FLEX\T-FLEX CAD ST 11\Program\Macros\. 2. Запускаю TF11, создаю новый документ и сохраняю его на диске. 3. В редакторе макросов в только что созданном проекте добавляю модуль – Modul 1: 4. На всякий случай компилирую и сохраняю документ. 5. Дополняю код и ставлю точку прерывания (обозначена //F9)
6. Снова компилирую и запускаю отладку, указав отлаживаемый метод NewMacroNamespace.NewMacroClass.NewMacro. 7. Во время отладки зависаний не проходит, не смотря на то, что в окне "Вычислить выражение" (вычисляю check) появляется ошибка – Error! 8. Останавливаю отладку. 9. Снова дополняю код:
10. Компилирую и запускаю отладку, после чего происходит зависание. P.S.Моя практика показала, что зависание происходит всегда при втором запуске отладки в одном и том же сеансе работы с проектом(в редакторе макросов). Уточнить условия зависания TF10.059 раньше 23.06.08 не смогу, хотя для меня эта проблема более актуальна именно для TF10.
Кто ищет - тот всегда найдет!
|
|||||
|
|
21.06.2008 20:08:09
Как альтернативный вариант необходимой функциональности (до тех пор, пока она не станет доступной) рассматриваю инструмент FilePreview, предоставляемый для использования в экранных формах. В связи с этим есть вопрос, на который я пока не смог найти ответа - существует ли свойство в инструменте FilePreview позволяющее определить произошла ли ошибка при «просмотре» файла?
Кто ищет - тот всегда найдет!
|
|||||
|
|
24.06.2008 13:03:34
|
|||||
|
|
25.06.2008 00:22:00
Для "чистоты эксперимента", чтобы показать, что никакой сторонний код не вмешивается в отладку (если такое вообще возможно). Просто я заметил, что в момент отладки T-Flex CAD начинает мигает (на панели задач)..., поэтому решил, что такой обработчик, как Active View, может мешать правильной отладке.
Да, действительно, работает. Спасибо, Александр. Буду тренироваться использовать Breakpoint.
Кто ищет - тот всегда найдет!
|
|||||||
|
|
29.06.2008 22:30:43
Вопрос Александру Сысоеву.
Внешнее приложение использует "control". Например, открываем 3D. Как вывести 3D изображение (текущий вид) на печать, т.е. открыть стандартный диалог печати T-Flex Cad? Вариант использования сущестующей кнопки в "control" не подходит, т.к. интерфейс программы свой и вклинивать туда имеющиеся кнопки - не дело. Как написать обработчик своей кнопки для вызова диалога "Печать"? В справке по API хорошо написано про вывод на графическое устройство, но у меня разобраться пока не получается, видимо требуются хорошие знания в программировании. |
|
|
|
01.07.2008 11:23:04
У класса TFlex.Model.Document есть следующие методы:
Print() - печать документа с выводом диалога печати на экран PrintNoDialog() - печать документа без вывода диалога PrintPage() - печать конкретной страницы документа |
|
|
|
01.07.2008 18:56:38
Методы-то нашел, не понял как их применить:
tfcontrol.Document.PrintPage(IntPtr window, Page page); Что подставлять вместо IntPtr window и вместо Page page? Размеры окна? Так нужно все текущее окно. Страницу? Ставлю 3D не понимает, ругается. А задача открыть диалог печати как в каде. |
|
|
|
02.07.2008 16:44:05
Как я понял, Window - это дескриптор окна, которое является родителем диалога печати. За него отвечает свойство Handle любого окна в .NET.
tfcontrol.Document.PrintPage(this.Handle, tfcontrol.Document.ActivePage); |
||||
|
|
|||