e1337e4016
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается. - .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным (safety-net на случай повторной локальной выгрузки). - CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
109 lines
3.5 KiB
Markdown
109 lines
3.5 KiB
Markdown
---
|
||
title: "Пример использования функций навигации по объектам"
|
||
type: guide
|
||
api: [api7]
|
||
tags: [guide, api7, create]
|
||
sources:
|
||
- create_delete_move_iterator_example.html
|
||
---
|
||
|
||
|
||
## Пример использования функций навигации по объектам
|
||
|
||
//позиционирование в текущем виде текущего документа по всем элементам
|
||
void Iterator_Example (void)
|
||
{
|
||
reference itAllObj;
|
||
reference obj;
|
||
int count = 0;
|
||
char buf[128];
|
||
//Создать итератор
|
||
itAllObj = CreateIterator(ALL_OBJ, 0);
|
||
if (itAllObj)
|
||
{
|
||
if (ExistObj(obj = MoveIterator(itAllObj, 'F')))
|
||
{
|
||
// поиск первого объекта и следующего в цикле
|
||
do
|
||
{
|
||
LightObj(obj, 1);
|
||
count ;
|
||
sprintf(buf,"номер = %d", count);
|
||
Message(buf);
|
||
LightObj(obj, 0);
|
||
}
|
||
while (ExistObj (obj = MoveIterator (itAllObj, 'N')));
|
||
}
|
||
}
|
||
//Удалить итератор
|
||
DeleteIterator(itAllObj);
|
||
};
|
||
|
||
|
||
## Пример использования функций работы с документами
|
||
|
||
void Document_Example (void) {
|
||
reference pDoc;
|
||
DocumentParam doc, doc1;
|
||
char buf[ 128 ];
|
||
lstrcpy(doc.fileName,"c:\\gr\\2.cad");
|
||
lstrcpy(doc.comment, "Чертеж" );
|
||
lstrcpy(doc.author,"Иванов");
|
||
doc.regim=0; //видимый режим
|
||
doc.type=1; doc.stPar.Toleranceat=3; doc.stPar.multiply=1;
|
||
doc.stPar.direct=0; doc.stPar.shtType=1;
|
||
pDoc = CreateDocument (&doc);
|
||
// создадим вид с номером 2
|
||
ViewParam par;
|
||
int number = 2;
|
||
par.x = 10; par.y = 20; par.scale = 2; par.ang = 45;
|
||
par.color = RGB(10,20,10);
|
||
par.state = stACTIVE; // вид будет активным
|
||
strcpy(par.name, "пользовательский вид");
|
||
CreateSheetView(&par, &number);
|
||
//создать и перейти в слой 5
|
||
Layer(5);
|
||
LineSeg(20, 10, 40, 10, 1);
|
||
LineSeg(40, 10, 40, 30, 1);
|
||
LineSeg(40, 30, 20, 30, 1);
|
||
LineSeg(20, 30, 20, 10, 1);
|
||
SaveDocument (pDoc, ); //сохранить документ
|
||
CloseDocument(pDoc); //закрыть документ
|
||
//откроем созданный документ «с:\gr\2.cad» в видимом режиме отображения
|
||
OpenDocument( "с:\gr\2.cad", 0);
|
||
}; /* Document_Example */
|
||
|
||
|
||
## Пример использования функций работы с документами, Unicode
|
||
|
||
void Document_Example (void) {
|
||
reference pDoc;
|
||
DocumentParamW doc, doc1;
|
||
char buf[ 128 ];
|
||
wcscpy( doc.fileName, _T("c:\\gr\\2.cad"));
|
||
wcscpy( doc.comment, _T("Чертеж"));
|
||
wcscpy( doc.author, _T("Иванов"));
|
||
doc.regim=0; //видимый режим
|
||
doc.type=1; doc.stPar.Toleranceat=3; doc.stPar.multiply=1;
|
||
doc.stPar.direct=0; doc.stPar.shtType=1;
|
||
pDoc = CreateDocumentW (&doc);
|
||
// создадим вид с номером 2
|
||
ViewParamW par;
|
||
int number = 2;
|
||
par.x = 10; par.y = 20; par.scale = 2; par.ang = 45;
|
||
par.color = RGB(10,20,10);
|
||
par.state = stACTIVE; // вид будет активным
|
||
wcscpy(par.name,_T(" пользовательский вид"));
|
||
CreateSheetViewW(&par, &number);
|
||
//создать и перейти в слой 5
|
||
Layer(5);
|
||
LineSeg(20, 10, 40, 10, 1);
|
||
LineSeg(40, 10, 40, 30, 1);
|
||
LineSeg(40, 30, 20, 30, 1);
|
||
LineSeg(20, 30, 20, 10, 1);
|
||
SaveDocument( pDoc, 0 ); //сохранить документ
|
||
CloseDocument( pDoc ); //закрыть документ
|
||
//откроем созданный документ «с:\gr\2.cad» в видимом режиме отображения
|
||
OpenDocument( "с:\gr\2.cad", 0);
|
||
}; /* Document_Example */
|