乐筑天下

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

[编程交流] 错误:错误的参数类型:poin

[复制链接]

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 06:49:26 | 显示全部楼层 |阅读模式
大家好,
 
我正在编写一个lisp,如下所示:_
 
  1. (defun c:1 (/ bpt cpt sbpt bppt kpd pt)
  2. (setq bpt (getpoint "\nPick 0.0 KP: "))
  3. (While (setq cpt (getpoint factp "\nPick KP point: ")
  4.      sbpt (getpoint factp "\nPick Seabed Level: ")
  5.      bppt (getpoint factp "\nPick Bottom Point of Pipe: ")
  6. )
  7. (setq kpd (rtos (distance bpt cpt)2 3))
  8. (setq pt (rtos (distance sbpt bppt)2 3))
  9. (alert (strcat "\n\ RESULT\t" ;;; Display the stuff
  10. "\n"
  11. "\n\KP value = " kpd
  12. "\n"
  13. "\n\Distance = " pt
  14.          )
  15. )
  16. )
  17. (princ)
  18. )

 
但它给出了错误,即:-
  1. error: bad argument type: point: nil

 
请帮我纠正一下
 
谢谢
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:03:00 | 显示全部楼层
这是你的问题
 
(setq cpt(getpoint factp“\n点击KP点:”)
 
换成
 
(setq cpt(getpoint bpt“\n点击KP点:”)
 
再次运行
 
 
 
  1. (defun c:1 (/ bpt cpt sbpt bppt kpd pt)
  2. (setq bpt (getpoint "\nPick 0.0 KP: "))
  3. (While (setq cpt (getpoint [color="blue"]bpt[/color] "\nPick KP point: ")
  4.      sbpt (getpoint[color="blue"] bpt[/color] "\nPick Seabed Level: ")
  5.      bppt (getpoint [color="blue"]bpt [/color]"\nPick Bottom Point of Pipe: ")
  6. )
  7. (setq kpd (rtos (distance bpt cpt)2 3))
  8. (setq pt (rtos (distance sbpt bppt)2 3))
  9. (alert (strcat "\n\ RESULT\t" ;;; Display the stuff
  10. "\n"
  11. "\n\KP value = " kpd
  12. "\n"
  13. "\n\Distance = " pt
  14.          )
  15. )
  16. )
  17. (princ)
  18. )

 
 
 
具有零值的变量factp
 
所以它返回错误:错误的参数类型:点:nil
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 07:13:13 | 显示全部楼层
非常感谢ganesh da:)
 
我没有注意到
 
Lisp现在正在为我完美地工作
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:22:10 | 显示全部楼层
最受欢迎的satishrajdev
 
并尝试用李的调试工具来调试程序。
 
http://www.lee-mac.com/debugvlide.html
 
当做
甘尼什
回复

使用道具 举报

55

主题

402

帖子

357

银币

后起之秀

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

铜币
274
发表于 2022-7-6 07:30:13 | 显示全部楼层
非常感谢
 
那个很棒的yaar,它将帮助我发现更多错误。。。。。
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:33:36 | 显示全部楼层
是的,它当然会告诉你错误
 
所有的功劳都归李先生所有
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 07:48:38 | 显示全部楼层
我建议进行以下修改:
  1. (defun c:1 ( / bpt cpt sbpt bppt )
  2.    [color=red](if[/color] (setq bpt (getpoint "\nPick 0.0 KP: "))
  3.        (while
  4.            [color=red](and[/color]
  5.                (setq cpt  (getpoint bpt "\nPick KP point: ")[color=red])[/color]
  6.                [color=red](setq[/color] sbpt (getpoint bpt "\nPick Seabed Level: ")[color=red])[/color]
  7.                [color=red](setq[/color] bppt (getpoint bpt "\nPick Bottom Point of Pipe: ")[color=red])[/color]
  8.            [color=red])[/color]
  9.            (alert
  10.                (strcat
  11.                    "RESULT\n\nKP value = " (rtos (distance  bpt  cpt) 2 3)
  12.                    "\nDistance = "         (rtos (distance sbpt bppt) 2 3)
  13.                )
  14.            )
  15.        )
  16.    )
  17.    (princ)
  18. )

 
这说明了用户拒绝第一个提示,或未能在while循环中提供所有三个点的情况。
 
感谢您推荐gS7
回复

使用道具 举报

gS7

35

主题

244

帖子

212

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
180
发表于 2022-7-6 07:57:24 | 显示全部楼层
最受欢迎的李
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-10 15:07 , Processed in 0.414957 second(s), 68 queries .

© 2020-2025 乐筑天下

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