--- title: "Интерфейс ISketch" type: interface api: [api7] domain: [sketch, feature] tags: [interface, api7, sketch, feature, isketch] sources: - isketch.html --- *API интерфейсов. Версия 7 > Документ 3D  > Операции, массивы, эскизы, точки  > Эскиз * ## Интерфейс ISketch Интерфейс элемента Эскиз. Иерархия: IDispatch IKompasAPIObject IModelObject ISketch ILocalCSObject Примечание: Интерфейс можно получить с помощью метода коллекции эскизов ISketchs::Add или свойства ISketchs::Sketch. С помощью метода IUnknown::QueryInterface у интерфейса можно получить интерфейс подчиненного объекта ЛСК ILocalCSObject. ## AddIntersectionOf - Добавить в эскиз пересечение с объектом Синтаксис Automation: ``` VARIANT AddIntersectionOf( IKompasAPIObject * Object, long LinesStyle, ksAnnotationSymbolEnum PointsStyle, BOOL Extended ); ``` Синтаксис COM: ``` HRESULT AddIntersectionOf( IKompasAPIObject * Object, long LinesStyle, ksAnnotationSymbolEnum PointsStyle, BOOL Extended, VARIANT * Result ); Возвращаемое значение: - Массив созданных проекционных объектов в виде в виде SAFEARRAY'я DISPATCH - VT_ARRAY VT_DISPATCH. Входные параметры: Object - указатель на объект, LinesStyle - стиль линий, PointsStyle - стиль точек, Extended - учитывать продолжение. Версия КОМПАС v23 ``` ## AddProjectionOf - Добавить в эскиз проекцию объекта Синтаксис Automation: ``` VARIANT AddProjectionOf( IModelObject * Object ); ``` Синтаксис COM: ``` HRESULT AddProjectionOf( IModelObject * Object, VARIANT * Result ); Возвращаемое значение: - Массив созданных проекционных объектов в виде в виде SAFEARRAY'я DISPATCH - VT_ARRAY VT_DISPATCH. Входные параметры: Object - указатель на интерфейс IModelObject. Версия КОМПАС v22 ``` ## AddSketch - Создать эскиз из уже имеющегося в заданной плоскости Синтаксис Automation: ``` BOOL AddSketch( IModelObject * Sketch, IModelObject * Plane ); ``` Синтаксис COM: ``` HRESULT AddSketch( IModelObject * Sketch, IModelObject * Plane, BOOL * Result ); Входные параметры: Sketch - указатель на эскиз, Plane - указатель на плоскость. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## Angle - Угол поворота эскиза относительно проекции системы координат модели на плоскость эскиза (в градусах) Тип данных: double Синтаксис Automation: ``` Angle = iObject.Angle; Получить свойство (* ) iObject.Angle = Angle; Установить свойство (* ) Angle = iObject.GetAngle(); Получить свойство (**) iObject.SetAngle( Angle ); Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_Angle( &Angle ); Получить свойство iObject->put_Angle( Angle ); Установить свойство ``` ## AssociationObject - Точка привязки Тип данных: Указатель на интерфейс IModelObject Синтаксис Automation: ``` AssociationObject = Object.AssociationObject; Получить свойство (* ) Object.AssociationObject = AssociationObject; Установить свойство (* ) AssociationObject = Object.GetAssociationObject(); Получить свойство (**) Object.SetAssociationObject( AssociationObject ); Установить свойство (**) ``` Синтаксис COM: ``` Object.get_AssociationObject( &AssociationObject ); Получить свойство Object.put_AssociationObject( AssociationObject ); Установить свойство ``` ## BeginEdit - Войти в режим редактирования эскиза Синтаксис Automation: ``` BeginEdit(); Возвращаемое значение: SketchDoc - указатель на интерфейс IFragmentDocument. ``` Синтаксис COM: ``` HRESULT BeginEdit( [out, retval] IFragmentDocument ** SketchDoc ); Возвращаемое значение: SketchDoc - указатель на интерфейс IFragmentDocument. ``` Примечание: После редактирования необходимо вызвать функцию ISketch::EndEdit. ## BeginEditEx - Войти в режим редактирования эскиза Синтаксис Automation: ``` LPDISPATCH BeginEditEx( BOOL ReadOnly ); ``` Синтаксис COM: ``` HRESULT BeginEditEx( BOOL ReadOnly, IFragmentDocument * * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: ReadOnly - = TRUE - для чтения. ``` ## BuildingType - Способ построения Тип данных: из перечисления ksSketchBuildingTypeEnum Синтаксис Automation: ``` BuildingType = Object.BuildingType Получить свойство (* ) Object.BuildingType = BuildingType Установить свойство (* ) BuildingType = Object.GetBuildingType() Получить свойство (**) Object.SetBuildingType( BuildingType ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_BuildingType( &BuildingType ) Получить свойство Object.put_BuildingType( BuildingType ) Установить свойство КOMPAS v24 ``` ## ConstraintsState - Параметрическое состояние эскиза Тип данных: Значение из перечисления ksConstraintsStateEnum Синтаксис Automation: ``` ConstraintsState = Object.ConstraintsState Получить свойство(* ) ConstraintsState = Object.GetConstraintsState() Получить свойство(**) ``` Синтаксис COM: ``` Object.get_ConstraintsState( &ConstraintsState ) Получить свойство. ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## CoordinateSystem - Система координат эскиза Тип данных: Указатель на интерфейс IModelObject Синтаксис Automation: ``` CoordinateSystem = Object.CoordinateSystem; Получить свойство (* ) Object.CoordinateSystem = CoordinateSystem; Установить свойство (* ) CoordinateSystem = Object.GetCoordinateSystem(); Получить свойство (**) Object.SetCoordinateSystem( CoordinateSystem ); Установить свойство (**) ``` Синтаксис COM: ``` Object.get_CoordinateSystem( &CoordinateSystem ); Получить свойство Object.put_CoordinateSystem( CoordinateSystem ); Установить свойство ``` ## Curves - Траектория Тип данных: VARIANT Синтаксис Automation: ``` Curves = Object.Curves Получить свойство (* ) Object.Curves = Curves Установить свойство (* ) Curves = Object.GetCurves() Получить свойство (**) Object.SetCurves( Curves ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_Curves( &Curves ) Получить свойство Object.put_Curves( Curves ) Установить свойство КOMPAS v24 ``` ## DeleteWrongProjection - Удалить ошибочные проекции Синтаксис Automation: ``` BOOL DeleteWrongProjection(); ``` Синтаксис COM: ``` HRESULT DeleteWrongProjection( BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## DirectingObject - Направляющий объект для оси Тип данных: Указатель на интерфейс IModelObject Синтаксис Automation: ``` DirectingObject = Object.DirectingObject( Axis ); Получить свойство (* ) Object.DirectingObject( Axis ) = DirectingObject; Установить свойство (* ) DirectingObject = Object.GetDirectingObject( Axis ); Получить свойство (**) Object.SetDirectingObject( Axis, DirectingObject ); Установить свойство (**) ``` Синтаксис COM: ``` Object.get_DirectingObject( Axis, &DirectingObject ); Получить свойство Object.put_DirectingObject( Axis, DirectingObject ); Установить свойство Входные параметры: Axis - тип оси: o3d_axisOX - ось X, o3d_axisOY - ось Y ``` Примечание: 1. При указании базовой плоскости можно задать направляющий объект для оси X или оси Y. 2. Направление второй оси будет определяться как векторное произведение оси Z, направленной по нормали к плоскости, и заданным направлением. 3. Направление осей можно задать также параметрами вектора. ## Direction - Направление Тип данных: BOOL Синтаксис Automation: ``` Direction = Object.Direction Получить свойство (* ) Object.Direction = Direction Установить свойство (* ) Direction = Object.GetDirection() Получить свойство (**) Object.SetDirection( Direction ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_Direction( &Direction ) Получить свойство Object.put_Direction( Direction ) Установить свойство КOMPAS v24 ``` ## Edges - Массив рёбер(SAFEARRAY) Тип данных: VARIANT Синтаксис Automation: ``` Edges = Object.Edges( EdgesType ) Получить свойство(* ) Edges = Object.GetEdges( EdgesType ) Получить свойство(**) ``` Синтаксис COM: ``` Object.get_Edges( EdgesType, &Edges ) Получить свойство. ``` Примечание: Свойство доступно только для чтения. Версия КОМПАС v22 ## EndEdit - Выйти из режима редактирования эскиза Синтаксис Automation: ``` BOOL EndEdit(); ``` Синтаксис COM: ``` HRESULT EndEdit( [out, retval] VARIANT_BOOL * res ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## Fixed - Фиксация Тип данных: BOOL Синтаксис Automation: ``` Fixed = Object.Fixed; Получить свойство (* ) Object.Fixed = Fixed; Установить свойство (* ) Fixed = Object.GetFixed(); Получить свойство (**) Object.SetFixed( Fixed ); Установить свойство (**) ``` Синтаксис COM: ``` Object.get_Fixed( &Fixed ); Получить свойство Object.put_Fixed( Fixed ); Установить свойство ``` ## GetLocation - Получить смещение системы координат эскиза относительно проекции системы координат модели на плоскость эскиза Синтаксис Automation: ``` BOOL GetLocation( double X, double Y); ``` Синтаксис COM: ``` HRESULT GetLocation([out] double * X, [out] double * Y, [out, retval] VARIANT_BOOL * PVal); Выходные параметры: X - смещение системы координат эскиза по оси X, Y - смещение системы координат эскиза по оси Y. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## GetLoftPoint - Получить координаты точки в плоскости эскиза Синтаксис Automation: ``` BOOL GetLoftPoint( double X, double Y); ``` Синтаксис COM: ``` HRESULT GetLoftPoint([out] double * X, [out] double * Y, [out, retval] VARIANT_BOOL * PVal); Выходные параметры: X - значение координаты точки по оси X, Y - значение координаты точки по оси Y. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## GetPoint3D - Получить пространственную точку по точке на плоскости XY Синтаксис Automation: ``` BOOL GetPoint3D( double XIn, double YIn, double * XOut, double * YOut, double * ZOut ); ``` Синтаксис COM: ``` HRESULT GetPoint3D( double XIn, double YIn, double * XOut, double * YOut, double * ZOut, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: XIn, YIn - координаты эскиза. Выходные параметры: XIn, YIn, ZIn - координаты 3D точки. Версия КОМПАС v22 ``` ## GetPointProjectionToXY - Проекция точки на плоскость XY Синтаксис Automation: ``` BOOL GetPointProjectionToXY( double XIn, double YIn, double ZIn, double * XOut, double * YOut ); ``` Синтаксис COM: ``` HRESULT GetPointProjectionToXY( double XIn, double YIn, double ZIn, double * XOut, double * YOut, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: XIn, YIn, ZIn - координаты 3D точки. Выходные параметры: XOut, YOut - координаты проекционной точки. Версия КОМПАС v22 ``` ## LeftHandedCS - Признак левосторонней системы координат Тип данных: BOOL Синтаксис Automation: ``` LeftHandedCS = Object.LeftHandedCS; Получить свойство (* ) Object.LeftHandedCS = LeftHandedCS; Установить свойство (* ) LeftHandedCS = Object.GetLeftHandedCS(); Получить свойство (**) Object.SetLeftHandedCS( LeftHandedCS ); Установить свойство (**) ``` Синтаксис COM: ``` Object.get_LeftHandedCS( &LeftHandedCS ); Получить свойство Object.put_LeftHandedCS( LeftHandedCS ); Установить свойство ``` ## Offset - Величина смещения Тип данных: double Синтаксис Automation: ``` Offset = Object.Offset Получить свойство (* ) Object.Offset = Offset Установить свойство (* ) Offset = Object.GetOffset() Получить свойство (**) Object.SetOffset( Offset ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_Offset( &Offset ) Получить свойство Object.put_Offset( Offset ) Установить свойство КOMPAS v24 ``` ## OffsetType - Тип задания смещения Тип данных: из перечисления ksPoint3DCurveParamTypeEnum Синтаксис Automation: ``` OffsetType = Object.OffsetType Получить свойство (* ) Object.OffsetType = OffsetType Установить свойство (* ) OffsetType = Object.GetOffsetType() Получить свойство (**) Object.SetOffsetType( OffsetType ) Установить свойство (**) ``` Синтаксис COM: ``` Object.get_OffsetType( &OffsetType ) Получить свойство Object.put_OffsetType( OffsetType ) Установить свойство КOMPAS v24 ``` ## Plane - Опорная плоскость Тип данных: указатель на интерфейс IModelObject Синтаксис Automation: ``` Plane = iObject.Plane; Получить свойство (* ) iObject.Plane = Plane; Установить свойство (* ) Plane = iObject.GetPlane(); Получить свойство (**) iObject.SetPlane( Plane ); Установить свойство (**) ``` Синтаксис COM: ``` iObject->get_Plane( &Plane ); Получить свойство iObject->put_Plane( Plane ); Установить свойство ``` ## RotateAxis - Сменить направление оси на противоположное Синтаксис Automation: ``` BOOL RotateAxis( ksObj3dTypeEnum axis ); ``` Синтаксис COM: ``` HRESULT RotateAxis( ksObj3dTypeEnum axis, BOOL * Result); Входной параметр: axis - тип оси из перечисления ksObj3dTypeEnum (должны передаваться типы : o3d_axisOX o3d_axisOY ). Возвращаемое значение : TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` Примечание: 1. Метод позволяет менять направления осей на противоположные. 2. Для осей можно выбирать направляющие объекты (см. метод ISketch::DirectingObject, ISketch::Vector3D). 3. Можно выбрать направление для оси X или оси Y, третья ось ориентируется, исходя из положения оси Z и выбранной. 4. Менять направление на противоположное можно только у выбранных осей. ## SetLocation - Установить смещение системы координат эскиза относительно проекции системы координат модели на плоскость эскиза Синтаксис Automation: ``` BOOL SetLocation( double X, double Y); ``` Синтаксис COM: ``` HRESULT SetLocation([in] double X, [in] double Y, [out, retval] VARIANT_BOOL * PVal); Входные параметры: X - смещение системы координат эскиза по оси X, Y - смещение системы координат эскиза по оси Y. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## SetLoftPoint - Установить координаты точки в плоскости эскиза Синтаксис Automation: ``` BOOL SetLoftPoint( double X, double Y); ``` Синтаксис COM: ``` HRESULT SetLoftPoint([in] double X, [in] double Y, [out, retval] VARIANT_BOOL * PVal); Входные параметры: X - значение координаты точки по оси X, Y - значение координаты точки по оси Y. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ``` ## UserSetPlacement - Разместить эскиз Синтаксис Automation: ``` BOOL UserSetPlacement( BSTR Prompt ); Синтаксис COM:HRESULT UserSetPlacement( BSTR Prompt, BOOL * Result ); Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. Входные параметры: Prompt - cтрока приглашение. Версия КОМПАС v22 ``` ## Vector3D - Вектор, задающий направление оси Тип данных: Указатель на интерфейс IVector3D Синтаксис Automation: ``` Vector3D = Object.Vector3D( Axis ) Получить свойство(* ) Vector3D = Object.GetVector3D( Axis ) Получить свойство(**) ``` Синтаксис COM: ``` Object.get_Vector3D( Axis, &Vector3D ) Получить свойство. Входные параметры: Axis - тип оси: o3d_axisOX - ось X, o3d_axisOY - ось Y ``` Примечание: 1. При указании базовой плоскости можно задать направляющий объект для оси X или оси Y. 2. Направление второй оси будет определяться как векторное произведение оси Z, направленной по нормали к плоскости, и заданным направлением. 3. Свойство доступно только для чтения. ## WriteToFragment - Сохранить эскиз во фрагмент Синтаксис Automation: ``` BOOL WriteToFragment( BSTR FileName ); ``` Синтаксис COM: ``` HRESULT WriteToFragment( BSTR FileName, BOOL* Result ); Входные параметры: FileName - имя файла фрагмента. Возвращаемое значение: TRUE - в случае успешного завершения, FALSE - в случае неудачи. ```