Не могу проставить более одного размера.

Автор Николай, 06.09.12, 15:15:51

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

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

Николай

Не могу проставить более одного размера.
При вставке такого же кода например, Sub размер1(), но с другими параметрами, проставляется всё равно прежний размер. Код на VB6.
Вот код:



Sub ??????() '??????????? ????????? ?????

  Set iLDimParam = Kompas.GetParamStruct(ko_LDimParam)
  Set iDimDrawingParam = iLDimParam.GetDPar()

iDimDrawingParam.Init
iDimDrawingParam.ang = 0#
iDimDrawingParam.lenght = 0#
iDimDrawingParam.pl1 = False '???????? ????? ???????-False ?? ???????-True
iDimDrawingParam.pl2 = False 'False
iDimDrawingParam.pt1 = 1 '0-??? ??????? 1-??????? 2-??????? ??????? 3-??????? 4-?????
iDimDrawingParam.pt2 = 1
iDimDrawingParam.shelfDir = 1 '????? 0-?? ?????? 1-?????? 2-????? 3-????
iDimDrawingParam.textBase = 2 '????? 0-?? ?????? 1-????? ?? ???????? ????? 2-?????? 3-?????
iDimDrawingParam.textPos = 1 '???????? ??... ??
Set iLDimSourceParam = iLDimParam.GetSPar()
iLDimSourceParam.Init
iLDimSourceParam.basePoint = 1
iLDimSourceParam.dx = 0#
iLDimSourceParam.dy = -40 '????????? ?-? ????
iLDimSourceParam.ps = 0
iLDimSourceParam.X1 = 77
iLDimSourceParam.Y1 = 183.93
iLDimSourceParam.X2 = 93
iLDimSourceParam.Y2 = 167.193

Set iDimTextParam = iLDimParam.GetTPar()
iDimTextParam.Init (0)
iDimTextParam.bitFlag = 17 '?????? ?????
iDimTextParam.sign = 0
iDimTextParam.stringFlag = False
iDimTextParam.Style = 3

  Set iCharArray = iDimTextParam.GetTextArr()
  Set iChar255 = Kompas.GetParamStruct(ko_Char255)
iChar255.Init
iChar255.Str = "h14"
iCharArray.ksAddArrayItem -1, iChar255

  Set iChar255 = Kompas.GetParamStruct(ko_Char255)
iChar255.Init
'iChar255.Str = "??? ????????? ??????"
iCharArray.ksAddArrayItem -1, iChar255
doc.ksLinDimension (iLDimParam)

End Sub


Ай-яй-яй- крякозябры полезли...


06.09.12, 15:54:06 #1 Последнее редактирование: 06.09.12, 16:04:58 от Sabahs
На Delphi такой код работает, вот кусок кода из этого приложения http://narod.ru/disk/45886799001.932f54fd57eb61b30e152b03e56fe8e4/GenKoleso.exe.html :
     //  Размеры
     DimParams:=ksLDimParam(KompasApi.GetParamStruct(ko_LDimParam));
     DimDrawParams:=ksDimDrawingParam(DimParams.GetDPar);
     DimSourceParams:=ksLDimSourceParam(DimParams.GetSPar);
     DimTextParams:=ksDimTextParam(DimParams.GetTPar);
     // Размер диаметра отверстия
     DimDrawParams.Init;
     DimDrawParams.textPos:=10; // Положение текста размерной надписи
     DimDrawParams.textBase:=0; // Расстояние TextPos от второй точки
     DimDrawParams.pt1:=1; // Стрелка внутри
     DimDrawParams.pt2:=1; // Стрелка внутри
     DimSourceParams.Init;
     DimSourceParams.x1:=Coleso.DOtv/2; // Привязка первая точка
     DimSourceParams.y1:=Coleso.HStup/2-Coleso.FasOtv;
     DimSourceParams.x2:=-Coleso.DOtv/2; // Привязка вторая точка
     DimSourceParams.y2:=Coleso.HStup/2-Coleso.FasOtv;
     DimSourceParams.dx:=0; // Вектор определяющий положение
     if YSm>0 then DimSourceParams.dy:=YSm+10+Coleso.FasOtv
      else DimSourceParams.dy:=10+Coleso.FasOtv; // размерной линии
     DimSourceParams.basePoint:=1;
     DimTextParams.Init(False);
     // Автоматическое определение размера
     DimTextParams.SetBitFlagValue(_AUTONOMINAL,True);
     DimTextParams.sign:=1;
     iStr:=ksChar255(KompasApi.GetParamStruct(ko_Char255));
     ArrText:=ksDynamicArray(DimTextParams.GetTextArr);
     DimRef:=Doc.ksLinDimension(DimParams);
     Doc.ksLightObj(DimRef,Coleso.Flags.DOtv);
     // Размер min диаметра у ступицы
     DimSourceParams.x1:=Coleso.DStupMin/2; // Привязка первая точка
     DimSourceParams.y1:=Coleso.HStup/2;
     DimSourceParams.x2:=-Coleso.DStupMin/2; // Привязка вторая точка
     DimSourceParams.y2:=Coleso.HStup/2;
     DimSourceParams.dx:=0; // Вектор определяющий положение
     if YSm>0 then DimSourceParams.dy:=YSm+20
      else DimSourceParams.dy:=20; // размерной линии
     DimSourceParams.basePoint:=1;
     DimTextParams.Init(False);
     // Автоматическое определение размера
     DimTextParams.SetBitFlagValue(_AUTONOMINAL,True);
     // Тип значка перед размером
     DimTextParams.sign:=1;
     iStr:=ksChar255(KompasApi.GetParamStruct(ko_Char255));
     ArrText:=ksDynamicArray(DimTextParams.GetTextArr);
     DimRef:=Doc.ksLinDimension(DimParams);