anchor.diff:              (princ "\nStart and end point are the same.")
             );END subcond
             ((< startParam endParam) ; normal direction
  +            (vla-startUndoMark activeDocument)
               (while (< param endParam)
                 (setq
                   param (+ param 1)
  
positive.code: )
  (defun c:SDIPP( /
    ; Recursive DT:SDIP along polyline vertexes
                  ent_name insertionMode
                  startZ startPoint startParam endPoint endParam gradient
                  p1 p2 param
                  )
    ; AUXILIARY FUNCTIONS
    (defun DT:AskBlockInAllVertex( / ans )
    ; Returns T if the user wants blocks in every vertex,
    ; or nil if the user want just one block in the last vertex
      (initget "All Last")
      (if (not (setq ans (getkword "\nSelect block vertexes to insert the blocks [All/Last] <Last>? ") ))
        (setq ans Last)
  
negative.code:               (setq p1 p2)
              );END while
              (DT:InsertFlatLevelBlock p2)
              (vla-endUndoMark activeDocument)
            );END subcond
            ((> startParam endParam) ; reverse direction
              (vla-startUndoMark activeDocument)
              (while (> param endParam)
                (setq
                  param (- param 1)
  