Создание dll-библиотек для построения ассоциативного чертежа на Delphi

Автор Ирина111, 17.06.14, 13:52:12

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ирина111

Здравствуйте! Помогите создать dll-библиотеку для построения ассоциативного чертежа со сборки. Пример чертежа приведен на рисунке. Получилось построить только 3 вида, не знаю как дальше



Картинку экрана, для начала.
Если не секрет, то диплом по какой специальности?

Ирина111

системы автоматизированного проектирования
вот что получилось

Делаете разрезы в нужных местах, используя интерфейсы IView и ICutViewParam.

Ирина111

Не получается сделать(( нет примера про этот интерфейс ? или побольше информации....

Информации достаточно, что не получается, что Вы пытались делать?

Ирина111

Попробовала создать приложение, код из former2.pas запихнула в event для кнопки, выдает ошибку, что на компьютере отсуствует kapi7.dll. Перенесла все компасовские библиотеки и подключила uses. На форуме нашла похожую тему, но ниче не помогло. Регистрацию компонентов сделала.

Вам нужно было добавить несколько разрезов, зачем нужно было делать приложение? В Dll обработчик кнопки, нормально отрабатывается.

Ирина111

Потому что у меня есть основное приложение, которое должно строить чертеж. Библиотека была для примера, я по ней пытаюсь построить приложение. Так а какая разница библиотека или приложение, или должны только в библиотеке эти функции работать?
А еще как изменить формат листа на А1? 

Работать будет и в приложении, но если цепляете dll Компаса, значит уже косяки, приложение должно без них работать.
В этой http://forum.ascon.ru/index.php/topic,24881.msg180076.html#msg180076 теме, есть и про виды, и про приложение.

Используйте ILayoutSheets - интерфейс коллекции листов оформления, от него получите ILayoutSheet - интерфейс параметров листа оформления, в справке посмотрите свойства.



Ирина111

Есть ли какой-нибудь способ для построения чертежа используя api5, а не 7?
Просто в том примере, который я скинула, используется IApplication, который есть только в api 7.

Есть:
- ksCreateSheetSectionView - создать ассоциативный вид разреза/сечения;
- ksCreateSheetStandartViews - создать стандартные ассоциативные виды;
- ksCreateSheetArrowView - создать ассоциативный вид по стрелке;
- ksCreateSheetArrowView - создать ассоциативный вид по стрелке;
- ksCreateSheetArbitraryView - создать произвольный ассоциативный вид.

IgorRUtver

 Я правильно понял порядок создания разреза? 
    pView1 := pViews.ViewByNumber[2]; //получил указатель на опорный вид
    pView2 := pViews.Add(7);//добавил вид разрез
    pCutViewParam := pView2 as ICutViewParam; //параметры разреза
    pCutViewParam.AddCut('v',4,100,0,true,,pView1); //добавить разрез

    Не могу разобраться с параметром "Contour  - контур, ограничивающий разрез" , что мне нужно в качестве него передать?

Попробуйте для начала передать 0(nil), для разреза по идеи ограничивающий контур не нужен.

Ирина111

формат все равно остается а4:

pDocument.LayoutSheets.ItemByNumber[1].Format.Format := ksFormatA3;






pDocument.LayoutSheets.ItemByNumber[1].Update; - листа оформления, после изменений.
+ Благодарностей: 2