Создание нового чертежа из модели.

Автор gabik, 14.02.13, 13:21:29

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

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

gabik

Есть ли возможность создавать чертеж из модели  помимо запуска команды ksExecuteKompasCommand()? Хорошо было бы что-бы чертеж создавался с заложенными параметрами, маштабом и прочими настройками.

Посмотрите IViews::Add и IViews::AddStandartViews, к сожалению примера нет.
+ Благодарностей: 1

333

В API5 тоже можно ksCreateSheetArbitraryView ksCreateSheetStandartViews ksCreateSheetProjectionView ksCreateSheetArrowView
ksCreateSheetSectionView ksCreateSheetRemoteView
+ Благодарностей: 1

neverLost

Добавлю свой вопрос сюда.

Как добавить на чертеж ассоциативный вид из уже открытой 3D модели?
Вручную как я понял порядок следующий:
1) Создается пустой лист чертежа
2) Нажимается кнопка Произвольный вид и открывается окно где можно выбрать уже открытую сборку. ОК
3) Выбрать масштаб, схему видов и точку привязки.

С первым пунктом вроде бы все нормально:
public void CreateDoc2D()          // Создает пустой чертеж
{
doc_par = (ksDocumentParam)kompas.GetParamStruct((short)StructType2DEnum.ko_DocumentParam);
doc_par.Init();
doc_par.fileName="c:\01.cdw";       
doc_par.comment="Чертеж";         
doc_par.author="";                       
doc_par.type=1;                           //тип документа(1-чертеж стандартного формата)
doc_par.regime=0;                       //режим редактирования(0-видимый)

sp=(ksSheetPar)doc_par.GetLayoutParam();          //получить ссылку на параметры страницы
sp.layoutName="";                                               //библиотека оформления                                                                             
sp.shtType = 1;                                                   // штамп

Doc2D=(ksDocument2D)kompas.Document2D();   //получаем структуру чертежа
Doc2D.ksCreateDocument(doc_par);                    //создаем чертеж относительно заданных параметров
        }


А вот дальше как? знаю что надо использовать ksCreateSheetArbitraryView, но ничего кроме пустого вида не создается. В примерах из SDK только рисуются линии на новом виде. Я очень запутался в аргументах и параметрах. Кто сталкивался с этим, подскажите как мне правильно реализовать эти задачи?

ksAssociationViewParam view_par =(ksAssociationViewParam)kompas.GetParamStruct((short)StructType2DEnum.ko_AssociationViewParam);

view_par.Init();
view_as_par.fileName = "C:\Сборка.a3d"; // путь к открытому файлу сборки, как по другому получить filename пока не разобрался

Doc2D.ksCreateSheetArbitraryView(view_as_par, 1); //вот здесь тоже непонятно

Была тема http://forum.ascon.ru/index.php/topic,25355.msg184158.html#msg184158
Как минимум нормально заполнить ksAssociationViewParam view_par, а то Компасу непонятно, что Вы от него хотите.