Линия-выноска

Автор Amfaromah, 13.04.09, 14:53:04

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

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

Amfaromah

я пытаюсь сделать линию выноску скажите плиз что я делаю нетак
LeaderParam:= ksLeaderParam(idocument2d.ksLeader(LeaderParam));
  LeaderParam:=ksLeaderParam(kompas.GetParamStruct(ko_LeaderParam));
  LeaderParam.x:=-20;
  LeaderParam.y:=150;
  LeaderParam.arrowType:=3;
  LeaderParam.dirX:=0;
  LeaderParam.signType:=0;
  LeaderParam.around:=0;
  LeaderParam.cText0:=0;
  LeaderParam.cText1:=0;
  LeaderParam.cText2:=0;
  LeaderParam.cText3:=0;
буду благодарен за кусочек кода как делать линию выноску, за ранее спасибо

ranger

Пример на Python,но перевести на Delphi думаю несложно. Создан с помощью КОМПАС-Макро. В простых случаях показывает весь код.
Часть функций (~20%) не реализовано под COM и АСКОН не торопится это делать. Эти действия КОМПАС-Макро не покажет.

iKompasObject = Dispatch('KOMPAS.Application.5')
iKompasObject = KAPI.KompasObject(iKompasObject)

iDocument2D = iKompasObject.ActiveDocument2D()

iLeaderParam = KAPI.ksLeaderParam(iKompasObject.GetParamStruct(LDefin2D.ko_LeaderParam))
iLeaderParam.Init()
iLeaderParam.around = 0
iLeaderParam.arrowType = 2
iLeaderParam.cText0 = 0
iLeaderParam.cText1 = 0
iLeaderParam.cText2 = 0
iLeaderParam.cText3 = 0
iLeaderParam.dirX = 2
iLeaderParam.signType = 0
iLeaderParam.x = 283.0
iLeaderParam.y = 450.0
iPolylineArray = KAPI.ksDynamicArray(iLeaderParam.GetpPolyline())

iMathPointArray = KAPI.ksDynamicArray(iKompasObject.GetDynamicArray(2))

iMathPointParam = KAPI.ksMathPointParam(iKompasObject.GetParamStruct(LDefin2D.ko_MathPointParam))
iMathPointParam.Init()
iMathPointParam.x = 167.0
iMathPointParam.y = 334.0
iMathPointArray.ksAddArrayItem(-1, iMathPointParam)

iPolylineArray.ksAddArrayItem(-1, iMathPointArray)

iLeaderParam.SetpPolyline(iPolylineArray)

iTextLineArray = KAPI.ksDynamicArray(iLeaderParam.GetpTextline())

iLeaderParam.SetpTextline(iTextLineArray)

iDocument2D.ksLeader(iLeaderParam)

Amfaromah

мне было бы проще и понятнее по примеру на DElphi как делать линию выноску а то чего то неполучается

ranger

Насчет легкого переноса с Питона  на Делфи я может быть и погорячился...
Примеры на Делфи есть в SDK Компаса.
Работающий пример с линиями выноски в Step 9.

Amfaromah

это там работающий))) а когда пытаюсь перенести к себе он нехочет работать хоть и все модули подключены..... поэтому охото не из примера а кусок кода который буит работать в Делфи, такак как Делфи особо не все понимает что там есть в примере а точнеее он запарывается вот на этом
leaderPar.pPolyline  := CreateArray( POLYLINE_ARR, nil );