samifox 发表于 2022-7-6 06:44:37

调试帮助:错误:错误参数

你好
 
我的代码:

(defun main ()
(setq userData (wl:getUserData))
(setq proData (extractSegment userData 6.0 8.0))
(drawVers userData proData)
)

(defun wl:getUserData (/ strpt endpt)
(if (setq strpt (getpoint "\nStart point of path: "))
   (if    (setq endpt (getpoint strpt "\nEndpoint of path: "))
   (progn
   (setq strpt (trans strpt 1 0) endpt (trans endpt 1 0))
   (setq wall (getPoly wall "\nSelect Wall eleveation line"))
   (setq front (getPoly front "\nSelect Front eleveation line"))
   (setq back (getPoly back "\nSelect Back eleveation line"))
   (setq exist (getPoly exist "\nSelect Exist eleveation line"))
   (list
   (cons 10 strpt)
   (cons 11 endpt)
   (cons 41 (distance strpt endpt))
   (cons 51 wall)
   (cons 52 front)
   (cons 53 back)
   (cons 54 exist)
   ) ;_list

   ) ;_progn
   ) ;_if endpt
) ;_if strp
) ;_defun


(defun getPoly (ent msg)
(if (setq ent (car (entsel msg)))
   (if    (eq (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
   ent
   ) ;_if
   (alert "\nThe selected object is not a polyline")
) ;_if
) ;_defun

;_______________________________________________________________________________________________________

(defun extractSegment (userData minv maxv)
(setq strpt (cdr (assoc 10 userData)))
(setq endpt (cdr (assoc 11 userData)))
(setq d (cdr (assoc 41 userData)))


                   ;getiing unrestricted devition
(setq minv (/ d 6.0))
(setq maxv (/ d 8.0))


(cond
   ((equal minv 1.0 1e-15)      ;what is 1e-15???
    (setq n 1.0)
   )
   ((and (null n) (> minv 1.0))
    (setq n1 (fix maxv)
      n2 (+ (fix minv) 1)
    )
    (repeat (+ (- n2 n1) 1)
      (if (<= 6.0
          (if (/= n1 0)
      (/ d (float n1))
      0.0
          )
          8.0
      )
    (setq n n1)
    (if (null n)
      (setq n nil)
    )
      )
      (setq n1 (1+ n1))
    )
   )
   ((< minv 1.0)
    (setq n nil)
   )
)
(if n
   (progn
   (setq k -1.0)
   (repeat (fix n)
   (setq stpt
          (mapcar
      '+
      strpt
      (mapcar '*
            (mapcar '/ (mapcar '- endpt strpt) (list n n n))
            (list (setq k (1+ k)) k k)
      )
          )
   )
   (setq enpt
          (mapcar '+
            stpt
            (mapcar '/ (mapcar '- endpt strpt) (list n n n))
          )
   )
   (entmake (list '(0 . "LINE")
            '(62 . 1)
            (cons 10 stpt)
            (cons 11 enpt)
            (list 210 0.0 0.0 1.0)
      )
   )
   (command "xline" "V" strpt "")
   )
   )
   (prompt
   "\nOriginal line couldn't be divided into lines with 6-8 units lengths criteria"
   )
)

(list n (distance stpt enpt))
)

;_______________________________________________________________________________________________________

(Defun drawVers (userData proData)

(setq wall (cdr (assoc 51 userData)))
(setq front (cdr (assoc 52 userData)))
(setq back (cdr (assoc 53 userData)))
(setq exist (cdr (assoc 54 userData)))

(setq seglen (cdr proData))
(setq segcnt (car proData))

(setq in segcnt)

(while (Setq pt (vlax-curve-getPosegcntAtDist wall segcnt))
   (setq ppt (vlax-curve-getparamatposegcnt wall pt))
   (vlax-invoke
   (vlax-ename->vla-object pline)
   'AddVertex
   (1+ (fix ppt))
   (list (car pt) (Cadr pt))
   )
   (setq segcnt (+ segcnt in))
)
)

stpt和enpt为零
 
以及:
(list n (distance stpt enpt))strpt和endpt用于(trans)函数,但尚未初始化。

Ahankhah 发表于 2022-7-6 07:56:44

页: [1]
查看完整版本: 调试帮助:错误:错误参数