--цель функции сделать аналог команды "conn P31 to P31 of id@"
--дело в том что при отсутствии в реальности 2й точки (нет P-точки есть тока позици и направление)  никак нельзя сделать коннект
--это применимо при коннекте к лотку (TrayPick) или к поверхности (Pick)

--считаетс¤ что CE это объект который надо коннектить
--!ENDpos - конечна¤ координата (целева¤)
--!ENDdir - конечое направление (целевое)
--!pnum номер точки исходного объекта (CE)


define function !!connPP( !EndPos is position, !EndDir is direction, !pnum is real)
--перемещаем объект (пока базовой точкой)
pos $!endpos
!movedist = !!ce.ppos[!pnum].distance(!!ce.pos)
--если P8 уже в нуле то  ничего не надо делать
if !movedist gt 0 then
--определяем направление и величину смещения для совмещения точек
!movedir = !!ce.ppos[!pnum].direction(!!ce.pos)
!newpos = !!ce.pos.offset(!movedir,!movedist)
!!ce.pos= $!newpos
endif

--определ¤ем направление P точки
!pdir = !!ce.pdir[!pnum]
--сравниваем с целевым чтобы отсечь совпадающие и oppsite (иначе перпендикул¤р не построитс¤)
--$p pdir $!pdir
--$p enddir $!enddir

--
!Oenddir = !enddir.opposite()

if !pdir eq !Oenddir then
  --$p dir eq
else

!Edir = object direction('E')
!Ndir = object direction('N')
--определ¤ем ось вращени как перпендикул¤р между 2х направлений
if !pdir.opposite() eq !Oenddir then
  $p Opposite need random
  if !pdir eq !Edir or !pdir eq !Edir.opposite() then
    !randomdir = !Ndir
  else
    !randomdir = !Edir
  endif
  !rotateAxes = !pdir.Orthogonal(!randomdir)
  
else
  !rotateAxes = !pdir.Orthogonal(!OEnddir)
endif

  --определяем угол
  !ang = !pdir.angle(!Oenddir)
  --$P $!ang
  --сравниваем направлени¤ осуществл¤ем доворот
  --if !pdir.LT(!Oenddir) then
  --if !Oenddir.LT(!pdir) then
    rot thr P$!pnum about $!rotateaxes by $!ang
  --else
    --rot thr P$!pnum about $!rotateaxes by -$!ang
  --endif
  
  --если направления не совпали после поврота то ещё на 180 градусов крутим
  
  --определ¤ем направление P точки (после поворота)
  !pdir = !!ce.pdir[!pnum]
  if !pdir neq !OEndDir then
    $p доворот на 180 градусов
    rot thr P$!pnum about $!rotateaxes by 180
  endif
  
endif




endfunction
