• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Создать спецификацию по сборке

Автор bbb, 25.02.15, 11:09:26

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

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

bbb

Как создать спецификацию, для последующей записи в нее?
Пробую так (из справки):

doc:=ksDocument2D(kompasObj.Document2D);
docPar:=ksDocumentParam(kompasObj.GetParamStruct(ko_DocumentParam);
docPar.Init;
docPar.regime:=0;
docPar.type_:=4;
doc.ksCreateDocument(docPar);


Открыта сборка, ничего не создается, в переменных docPar.regime, docPar.type_ - Inaccessible value

В справке документ спецификация - интерфейс ksSpcDocument.
doc:=ksSpcDocument(kompasObj.SpcDocument);
+ Благодарностей: 1

bbb

25.02.15, 15:40:48 #2 Последнее редактирование: 25.02.15, 16:40:44 от bbb
Цитата: Sabahs от 25.02.15, 11:19:57
В справке документ спецификация - интерфейс ksSpcDocument.
doc:=ksSpcDocument(kompasObj.SpcDocument);

Создается пустая спецификация. Как в нее добавить объекты спецификации?
Так не добавляется

spc:=ksSpecification(doc.GetSpecification());
spc.D3SpcIncludePart(iPrt,TRUE);


Задача простая - сделать из сборки спецификацию (нужного шаблона и подредактировать значения)
Насколько я понял последовательность действий примерно следующая:

1) Создать документ спецификации - SpcDocument
2) Получить интерфейс для работы со спецификацией - ksSpecification
3) Добавить объекты спецификации из сборки в созданную спецификацию
4) Отредактировать ячейки спецификации
5) ?????
6) PROFIT!

Или не так?

bbb

Где можно посмотреть пример использования интерфейса  IAttachedDocuments ? Пробую присоединить файл сборки к спецификации методом Add, но КОМПАС при этом падает...

Пример наверно не найдёте, Вы код выложите, что Вы делаете.

bbb

27.02.15, 09:41:59 #5 Последнее редактирование: 27.02.15, 10:01:10 от bbb
Цитата: Sabahs от 27.02.15, 09:25:23
Пример наверно не найдёте, Вы код выложите, что Вы делаете.

Я не понимаю как получить этот интерфейс?

Пробую так
doc:=ksSpcDocument(kompasObj.SpcDocument);
...
doc.CreateDocument(docPar);
iSpecObj:=ISpecificationObject(doc);// понятно что эти 2 строчки не правильные,
iADocs:=IAttachedDocuments(iSpecObj); // но как правильно получить эти интерфейсы?
iADocs.Add(filename,TRUE);

Во первых Вам нужно создать документ спецификации в API7 - IDocuments.Add, от IKompasDocument получить ISpecificationDocument, а у него IAttachedDocuments.

bbb

Цитата: Sabahs от 27.02.15, 10:01:47
Во первых Вам нужно создать документ спецификации в API7 - IDocuments.Add, от IKompasDocument получить ISpecificationDocument, а у него IAttachedDocuments.

Можно пример?
Пробую так:

iKomapsAPIObj:=IKompasAPIObject(CreateKompasObject);
ikompDoc:= iKomapsAPIObj.Application.ActiveDocument as IKompaDocument; //на этой стоке падает



Так тоже ошибка

idocs:=iKompasAPIObj.Application.Documents as IDocuments

Естественно ошибка, откройте пример c:\Program Files\ASCON\KOMPAS-3D V16\SDK\Pascal\Delphi\Step1_API7_2D\ и посмотрите, как получить API7.
http://forum.ascon.ru/index.php/topic,24281.msg173823.html#msg173823
+ Благодарностей: 1

bbb

Цитата: Sabahs от 27.02.15, 10:01:47
Во первых Вам нужно создать документ спецификации в API7 - IDocuments.Add, от IKompasDocument получить ISpecificationDocument, а у него IAttachedDocuments.

Документ спецификации в API7 создал есть (IKompasDocument ), а как от IKompasDocument получить ISpecificationDocument, а у него IAttachedDocuments?

В справке этого нет...

У Вас на картинке показано, как получить.
pSpecificationDocument:=IKompasDocument as ISpecificationDocument;
pAttachedDocuments:=pSpecificationDocument.AttachedDocuments;
+ Благодарностей: 1

bbb

Цитата: Sabahs от 27.02.15, 11:28:58
У Вас на картинке показано, как получить.
pSpecificationDocument:=IKompasDocument as ISpecificationDocument;
pAttachedDocuments:=pSpecificationDocument.AttachedDocuments;
На картинке иерархия показана, а не как получить. Методов нет, свойство одно и все...
Спасибо, вроде заработало

bbb

Сейчас создается спецификация с шаблоном по умолчанию. Как можно изменить шаблон? Как и где указать layoutName (LYT файл)?

Когда я создавал спецификацию через ksCreateDocument то можно было указать lyt файл

У интерфейсов IKompasDocument и ISpecificationDocument нет методов для установки стиля...

Смотрите в SDK интерфейс ISpecificationStyle.
На рисунке интерфейсы для работы со спецификацией изучайте.

bbb

03.03.15, 09:27:28 #14 Последнее редактирование: 03.03.15, 11:29:15 от bbb
Цитата: Sabahs от 27.02.15, 14:38:07
Смотрите в SDK интерфейс ISpecificationStyle.
На рисунке интерфейсы для работы со спецификацией изучайте.

Я правильно понимаю, что нельзя изменить стиль у созданной спецификации?

bbb

 У ISpecificationStyle свойства LayoutName1 и LayoutName2 доступны только для чтения. И как изменить стиль спецификации?