乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 58|回复: 1

[编程交流] 调试帮助:错误:错误参数

[复制链接]

218

主题

699

帖子

483

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1090
发表于 2022-7-6 06:44:37 | 显示全部楼层 |阅读模式
你好
 
我的代码:
  1. (defun main ()
  2. (setq userData (wl:getUserData))
  3. (setq proData (extractSegment userData 6.0 8.0))
  4. (drawVers userData proData)
  5. )
  6. (defun wl:getUserData (/ strpt endpt)
  7. (if (setq strpt (getpoint "\nStart point of path: "))
  8.    (if    (setq endpt (getpoint strpt "\nEndpoint of path: "))
  9.      (progn
  10.    (setq strpt (trans strpt 1 0) endpt (trans endpt 1 0))
  11.    (setq wall (getPoly wall "\nSelect Wall eleveation line"))
  12.    (setq front (getPoly front "\nSelect Front eleveation line"))
  13.    (setq back (getPoly back "\nSelect Back eleveation line"))
  14.    (setq exist (getPoly exist "\nSelect Exist eleveation line"))
  15.    (list
  16.      (cons 10 strpt)
  17.      (cons 11 endpt)
  18.      (cons 41 (distance strpt endpt))
  19.      (cons 51 wall)
  20.      (cons 52 front)
  21.      (cons 53 back)
  22.      (cons 54 exist)
  23.    ) ;_list
  24.      ) ;_progn
  25.    ) ;_if endpt
  26. ) ;_if strp
  27. ) ;_defun
  28. (defun getPoly (ent msg)
  29. (if (setq ent (car (entsel msg)))
  30.    (if    (eq (cdr (assoc 0 (entget ent))) "LWPOLYLINE")
  31.      ent
  32.    ) ;_if
  33.    (alert "\nThe selected object is not a polyline")
  34. ) ;_if
  35. ) ;_defun
  36. ;_______________________________________________________________________________________________________
  37. (defun extractSegment (userData minv maxv)
  38. (setq strpt (cdr (assoc 10 userData)))
  39. (setq endpt (cdr (assoc 11 userData)))
  40. (setq d (cdr (assoc 41 userData)))
  41.                    ;getiing unrestricted devition
  42. (setq minv (/ d 6.0))
  43. (setq maxv (/ d 8.0))
  44. (cond
  45.    ((equal minv 1.0 1e-15)        ;what is 1e-15???
  46.     (setq n 1.0)
  47.    )
  48.    ((and (null n) (> minv 1.0))
  49.     (setq n1 (fix maxv)
  50.       n2 (+ (fix minv) 1)
  51.     )
  52.     (repeat (+ (- n2 n1) 1)
  53.       (if (<= 6.0
  54.           (if (/= n1 0)
  55.         (/ d (float n1))
  56.         0.0
  57.           )
  58.           8.0
  59.       )
  60.     (setq n n1)
  61.     (if (null n)
  62.       (setq n nil)
  63.     )
  64.       )
  65.       (setq n1 (1+ n1))
  66.     )
  67.    )
  68.    ((< minv 1.0)
  69.     (setq n nil)
  70.    )
  71. )
  72. (if n
  73.    (progn
  74.      (setq k -1.0)
  75.      (repeat (fix n)
  76.    (setq stpt
  77.           (mapcar
  78.         '+
  79.         strpt
  80.         (mapcar '*
  81.             (mapcar '/ (mapcar '- endpt strpt) (list n n n))
  82.             (list (setq k (1+ k)) k k)
  83.         )
  84.           )
  85.    )
  86.    (setq enpt
  87.           (mapcar '+
  88.               stpt
  89.               (mapcar '/ (mapcar '- endpt strpt) (list n n n))
  90.           )
  91.    )
  92.    (entmake (list '(0 . "LINE")
  93.               '(62 . 1)
  94.               (cons 10 stpt)
  95.               (cons 11 enpt)
  96.               (list 210 0.0 0.0 1.0)
  97.         )
  98.    )
  99.    (command "xline" "V" strpt "")
  100.      )
  101.    )
  102.    (prompt
  103.      "\nOriginal line couldn't be divided into lines with 6-8 units lengths criteria"
  104.    )
  105. )
  106. (list n (distance stpt enpt))
  107. )
  108. ;_______________________________________________________________________________________________________
  109. (Defun drawVers (userData proData)
  110. (setq wall (cdr (assoc 51 userData)))
  111. (setq front (cdr (assoc 52 userData)))
  112. (setq back (cdr (assoc 53 userData)))
  113. (setq exist (cdr (assoc 54 userData)))
  114. (setq seglen (cdr proData))
  115. (setq segcnt (car proData))
  116. (setq in segcnt)
  117. (while (Setq pt (vlax-curve-getPosegcntAtDist wall segcnt))
  118.    (setq ppt (vlax-curve-getparamatposegcnt wall pt))
  119.    (vlax-invoke
  120.      (vlax-ename->vla-object pline)
  121.      'AddVertex
  122.      (1+ (fix ppt))
  123.      (list (car pt) (Cadr pt))
  124.    )
  125.    (setq segcnt (+ segcnt in))
  126. )
  127. )
stpt和enpt为零
 
以及:
  1. (list n (distance stpt enpt))
strpt和endpt用于(trans)函数,但尚未初始化。
回复

使用道具 举报

91

主题

428

帖子

326

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
474
发表于 2022-7-6 07:56:44 | 显示全部楼层
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-10 15:19 , Processed in 0.457787 second(s), 56 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表