Форум пользователей ПО АСКОН

Профессиональные вопросы => Программирование приложений => Тема начата: Lemieux от 14.03.25, 13:17:36

Название: Я тупой или это всё кривой API КОМПАС?
Отправлено: Lemieux от 14.03.25, 13:17:36
Всех приветствую.
Почему данный код не меняет цвет текста и не устанавливает курсив?

            ISymbols3DContainer symbols3DContainer = topPart as ISymbols3DContainer;
            IModelTexts modelTexts = symbols3DContainer.ModelTexts;
            IModelText startText = modelTexts.Add();
            startText.PointParameterType = ksPoint3DTypeEnum.ksPDisplace;
            IPoint3DParamDisplace startTextPointParam = startText.PointParameters as IPoint3DParamDisplace;
            startTextPointParam.SetAssociationVertex(startLineEndVertex.Vertex);
            startTextPointParam.SetGuidingObject(axisOY);
            startTextPointParam.Distance = -5;
            IText text = startText.Text;
            text.Str = "0";
            ITextLine textLine = text.TextLine;
            textLine.Align = ksAlignEnum.ksAlignCenter;
            ITextItem textItem = textLine.TextItem;
            ITextFont textFont = textItem as ITextFont;
            textFont.Italic = false;
            textFont.Color = 255;
            startText.Angle = 180;
            startText.Plane = planeXOY;
            startText.Height = 7;
            startText.Width = 3;
            startText.Update();


Название: Re: Я тупой или это всё кривой API КОМПАС?
Отправлено: Lemieux от 14.03.25, 13:36:27
ЧТД - Кривой API КОМПАС.
Код ниже решил проблему.

            ISymbols3DContainer symbols3DContainer = topPart as ISymbols3DContainer;
            IModelTexts modelTexts = symbols3DContainer.ModelTexts;
            IModelText startText = modelTexts.Add();
            IText text = startText.Text;
            foreach (ITextLine textLine in text.TextLines)
            {
                textLine.Align = ksAlignEnum.ksAlignCenter;
                textLine.Style = 1;
                textLine.Str = "0";
                foreach (ITextItem textItem in textLine.TextItems)
                {
                    ITextFont textFont = textItem as ITextFont;
                    textFont.Bold = false;
                    textFont.FontName = "GOST type A";
                    textFont.WidthFactor = 1;
                    textFont.Italic = false;
                    textFont.Color = 255;
                    textItem.Update();
                }
            }
            startText.PointParameterType = ksPoint3DTypeEnum.ksPDisplace;
            IPoint3DParamDisplace startTextPointParam = startText.PointParameters as IPoint3DParamDisplace;
            startTextPointParam.SetAssociationVertex(startLineEndVertex.Vertex);
            startTextPointParam.SetGuidingObject(axisOY);
            startTextPointParam.Distance = -5;
            startText.Angle = 180;
            startText.Plane = planeXOY;
            startText.Height = 7;
            startText.Width = 3;
            startText.Update();