Как в функцию размера передать квалитет

Автор TheHZ, 29.11.15, 22:17:20

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

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

TheHZ

Доброго дня!
Из Step9 взял функцию проставления размеров, но не смог добраться до передачи ей значения квалитета... Я понял, что походу присвоить ей значение можно как-то через tPar, но не понимаю как( Подскажите пожалуста...
вот сама функция(на С#):
void DrawDiamDim(double xc, double yc, double diametr, int VinosText, double ang, int PolozhenieVinosa)
        {
            ksRDimParam aDim = (ksRDimParam)kompas.GetParamStruct((short)StructType2DEnum.ko_RDimParam);
            ksTextLineParam textLine = (ksTextLineParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextLineParam);
            ksTextItemParam textItem = (ksTextItemParam)kompas.GetParamStruct((short)StructType2DEnum.ko_TextItemParam);
            if (aDim == null || textLine == null || textItem == null)
                return;

            textLine.Init();
            textItem.Init();

            ksDimTextParam tPar = (ksDimTextParam) aDim.GetTPar();
            ksTextItemFont font = (ksTextItemFont)textItem.GetItemFont();
            ksDynamicArray arr = (ksDynamicArray)textLine.GetTextItemArr();
            ksRDimSourceParam sPar = (ksRDimSourceParam)aDim.GetSPar();
            ksRDimDrawingParam dPar = (ksRDimDrawingParam)aDim.GetDPar();
            if (tPar == null || font == null || sPar == null || dPar == null)
                return;

            tPar.Init(true);
            tPar.SetBitFlagValue(ldefin2d._AUTONOMINAL, true);

            tPar.sign = 1;

           

            font.Init();
            font.height = 5;
            font.ksu = 1;
            font.fontName = "GOST type A";
            font.SetBitVectorValue(ldefin2d.NEW_LINE, true);

            arr.ksAddArrayItem(-1, textItem);

            ksDynamicArray arr1 = (ksDynamicArray)tPar.GetTextArr();
            if (arr1 == null)
                return;
            arr1.ksAddArrayItem(-1, textLine);

            sPar.Init();
            sPar.xc = xc;
            sPar.yc = yc;
            sPar.rad = diametr;

            dPar.Init();
            dPar.textPos = VinosText;
            dPar.pt1 = 2;
            dPar.pt2 = 2;
            dPar.shelfDir = PolozhenieVinosa;
            dPar.ang = ang;

            int obj = doc.ksDiamDimension(aDim);

        }

Так посмотрите в том же примере функцию void DrawLinDim(), там показано.
Нужно будет установить флаг _TOLERANCE.
tPar.SetBitFlagValue(ldefin2d._TOLERANCE,True);
+ Благодарностей: 1

TheHZ

Хмм, спасибо!) Смотрел ее, но до вашего ответа почему-то тупил... :-)))

Вдруг кому нужно будет еще, присвоение значения квалитету...
            ksLDimParam param = (ksLDimParam)kompas.GetParamStruct((short)StructType2DEnum.ko_LDimParam);
            ksDimTextParam tPar = (ksDimTextParam)param.GetTPar();
            tPar.SetBitFlagValue(ldefin2d._TOLERANCE, true); //включить флаг
       ksChar255 str = (ksChar255)kompas.GetParamStruct((short)StructType2DEnum.ko_Char255);
       ksDynamicArray arrText = (ksDynamicArray)tPar.GetTextArr();
            str.str = "H7";//присвоить значение
            arrText.ksAddArrayItem(-1, str);