     if ixs.length > 0 and ixs[0].object.userData.cyjs?
       e = ixs[0].object.userData
       console.log "! lnk0 " + e.constructor.name
+      ###
       pos0 = new THREE.Vector3(
         ixs[0].object.position.x,
         ixs[0].object.position.y,
         5
       )
+      ###
+      pos0 = ixs[0].object.linep
       pos1 = new THREE.Vector3(
         ixs[0].object.position.x,
         ixs[0].object.position.y,
         5
       )
+
       @placingLink = new BaseElements.Link(@ve.surface.baseRect,
         pos0, pos1, 0, 0, 5
       )
+      ixs[0].object.lines.push(@placingLink.ln)
       @ve.container.onmousemove = (eve) => @linkingMove1(eve)
       @ve.container.onmousedown = (eve) => @linkingDown1(eve)
     else

    @ve.render()
    e

#VisualEnvironment holds the state associated with the Threejs objects used
#to render Surfaces and the ElementBox. This class also contains methods
#for controlling and interacting with this group of Threejs objects.

  #container
  constructor: (@container) ->
    @scene = new THREE.Scene()
    @width = @container.offsetWidth
    @height = @container.offsetHeight
    @camera = new THREE.OrthographicCamera(
      @width / -2, @width / 2,
      @height / 2, @height / -2,
