--- title: "Фрагмент (Интерфейс ksFragment)" type: interface api: [api7] domain: [2d] tags: [interface, api7, 2d, ksfragment] sources: - ksfragment.html --- *API интерфейсов. Версия 5 > Графический документ (Интерфейсы - ksDocument2D и IDocument2D) * ## Фрагмент (Интерфейс ksFragment) Интерфейс фрагмента. Примечание: Указатель на интерфейс можно получить при помощи метода ksDocument2D::GetFragment. Смотрите также: KompasObject ## ksCloseLocalFragmentDefinition - Закончить определение локального фрагмента Аналог данного метода при использовании API экспортных функций - CloseLocalFragmentDefinition. ИС: оборванная ссылка. раздела "Закончить определение локального фрагмента" в Экспортных функциях больше нет. Синтаксис Automation: ``` long ksCloseLocalFragmentDefinition(); Возвращаемое значение: указатель на определение фрагмента - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Все объекты вида, вводимые между операторами ksLocalFragmentDefinition и ksCloseLocalFragmentDefinition, принадлежат локальному фрагменту. Возвращаемый указатель используется в функциях ksInsertFragment, ksDeleteObj. ## ksFragmentDefinition - Определить фрагмент для вставки Аналог данного метода при использовании API экспортных функций - FragmentDefinition. Синтаксис Automation: ``` long ksFragmentDefinition (LPCTSTR fileName, LPCTSTR comment, short insertType); Входные параметры: fileName - имя файла фрагмента, comment - имя вставки, insertType - тип вставки (действителен для внешнего фрагмента): 0 - взять в документ, 1 - внешней ссылкой. Возвращаемое значение: указатель на определение фрагмента - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: 1. Функция определяет данные для вставки фрагмента (внешнего или находящегося непосредственно в документе) с указанным именем по ссылке. 2. Непосредственно вставка фрагмента (вставка ссылки) производится с помощью метода ksFragment::ksInsertFragment. 3. Допускается задание имени фрагмента следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где c:\gr\lib1.lfr - имя файла библиотеки фрагментов, |детали|литье| - разделы, подразделы внутри библиотеки фрагментов, фланец - имя фрагмента. В этом случае определение создается для фрагмента из библиотеки фрагментов. 4. Определение для данного фрагмента одно - вставок может быть сколько угодно. ## ksInsertFragment - Вставить фрагмент в документ Аналог данного метода при использовании API экспортных функций - InsertFragment. Замечание: Данный метод устарел. Рекомендуется использовать вместо него метод ksInsertFragmentEx. Синтаксис Automation: ``` long ksInsertFragment (long p, BOOL curentLayer, LPDISPATCH par); Входные параметры: p - указатель на фрагмент, curentLayer - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой, par - указатель на интерфейс ksPlacementParam. Возвращаемое значение: указатель на вставку фрагмента - в случае успешного завершения, 0 - в случае неудачи. ``` ## ksInsertFragmentEx - Вставить фрагмент в документ Аналог данного метода при использовании API экспортных функций - ksInsertFragmentEx. Синтаксис Automation: ``` long ksInsertFragmentEx (long p, BOOL curentLayer, LPDISPATCH par, BOOL scaleProjLinesSize); Входные параметры: p - указатель на фрагмент, curentLayer - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой, par - указатель на интерфейс ksPlacementParam, scaleProjLinesSize - признак масштабирования длины выносных линий размеров: TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются. Возвращаемое значение: указатель на вставку фрагмента - в случае успешного завершения, 0 - в случае неудачи. ``` ## ksLocalFragmentDefinition - Определить данные для последующей вставки локального фрагмента по ссылке Аналог данного метода при использовании API экспортных функций - LocalFragmentDefinition. Синтаксис Automation: ``` long ksLocalFragmentDefinition (LPCTSTR comment); Входной параметр: comment - имя вставки. Возвращаемое значение: указатель на определение фрагмента - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Вставка ссылки на фрагмент производится с помощью функции ksInsertFragment. Указатель на определение фрагмента возвращается при окончании описания - функцией ksCloseLocalFragmentDefinition. Отдельного файла фрагмента нет; "тело" фрагмента хранится в документе. ## ksReadFragment - Вставить фрагмент россыпью в документ Аналог данного метода при использовании API экспортных функций - ReadFragment. Синтаксис Automation: ``` long ksReadFragment (LPCTSTR fileName, BOOL curentLayer, LPDISPATCH par); Входные параметры: fileName - имя фрагмента, curentLayer - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой, par - указатель на интерфейс ksPlacementParam. Возвращаемое значение: 1 - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где c:\gr\lib1.lfr - имя файла библиотеки фрагментов, |детали|литье| - разделы, подразделы внутри библиотеки фрагментов, фланец - имя фрагмента. В этом случае фрагмент берется из библиотеки фрагментов. ## ksReadFragmentToGroup - Вставить фрагмент россыпью во временную группу Аналог данного метода при использовании API экспортных функций - ksReadFragmentToGroup. Замечание: Данный метод устарел. Рекомендуется использовать вместо него метод ksReadFragmentToGroupEx. Синтаксис Automation: ``` long ksReadFragmentToGroup (LPCTSTR fileName, BOOL curentLayer, LPDISPATCH par); Входные параметры: fileName - имя фрагмента, curentLayer - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой, par - указатель на интерфейс ksPlacementParam. Возвращаемое значение: указатель на временную группу - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где c:\gr\lib1.lfr - имя файла библиотеки фрагментов, |детали|литье| - разделы, подразделы внутри библиотеки фрагментов, фланец - имя фрагмента. В этом случае фрагмент берется из библиотеки фрагментов. ## ksReadFragmentToGroupEx - Вставить фрагмент россыпью во временную группу Аналог данного метода при использовании API экспортных функций - ksReadFragmentToGroupEx. Синтаксис Automation: ``` long ksReadFragmentToGroup (LPCTSTR fileName, BOOL curentLayer, LPDISPATCH par BOOL scaleProjLinesSize); Входные параметры: fileName - имя фрагмента, curentLayer - тип размещения объектов фрагмента по слоям: 0 - на "свои" слои, 1- на текущий слой, par - указатель на интерфейс ksPlacementParam, scaleProjLinesSize - признак масштабирования длины выносных линий размеров: TRUE - выносные линии масштабируются, FALSE - выносные линии не масштабируются. Возвращаемое значение: указатель на временную группу - в случае успешного завершения, 0 - в случае неудачи. ``` Примечание: Допускается задание имени файла следующего вида: "c:\gr\lib1.lfr|детали|литье|фланец", где c:\gr\lib1.lfr - имя файла библиотеки фрагментов, |детали|литье| - разделы, подразделы внутри библиотеки фрагментов, фланец - имя фрагмента. В этом случае фрагмент берется из библиотеки фрагментов. ## ksWriteFragment - Записать группу во фрагмент Аналог данного метода при использовании API экспортных функций - WriteFragment. Синтаксис Automation: ``` long ksWriteFragment (long gr, LPCTSTR fileName, LPCTSTR comment, double xb, double yb); Входные параметры: gr - указатель на группу (0 - записывается группа селектирования), filename - имя файла фрагмента, comment - комментарий для фрагмента, xb, yb - координаты точки привязки. Возвращаемое значение: 1 - в случае успешного завершения, 0 - в случае неудачи. ```