乐筑天下

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

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

[复制链接]

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:29:28 | 显示全部楼层 |阅读模式
大家好,
 
我正在开发几个程序来增加属性标记值,它们似乎工作得很好。在这个过程中,我决定删除我通常使用的循环函数,并将其替换为while。我遇到了一些障碍,但我克服了。我希望程序循环插入命令,当我右键单击鼠标时,它将返回到对话框主功能。到目前为止,一切似乎都运行良好,除了当我通过退出按钮退出程序时,程序退出并在提示处留下以下消息:错误:错误参数类型:点:nil
 
为了得到这个错误,我修改了程序的这一部分。
 
  1.      (while
  2.        (progn
  3.          (setq INPT (getpoint "\nInsertion point:"))[color=red];Get the insertion point[/color]
  4.          (cond
  5.            ((= INPT nil)(ECP_MF)))                       [color=red];When right click of mouse, Go to main function[/color]
  6.          (setq IANG (getpoint INPT)                    [color=red];Get the insertion angle[/color]
  7.                INPT (trans INPT 1 0)                     [color=red];Translate insertion point coords[/color]
  8.                IANG (trans IANG 1 0)                     [color=red];Translate insertion angle coords[/color]
  9.                RAD# (angle INPT IANG)                  [color=red];Get the angle in radians[/color]
  10.                DEG# (ECP_RTD RAD#))                  [color=red];Convert radians to degrees[/color]
  11.          (if (and (> DEG# 90.0)(<= DEG# 270.0))  [color=red];If insertion direction is > 90deg and <= to 270deg[/color]
  12.            (progn
  13.              (setq RAD# (ECP_DTR (+ DEG# 180.0))))) [color=red];Add 180deg to DEG# and convert to radians[/color]
  14.          (command "._-insert" BNAM$ INPT 1 1 DEG#) [color=red];Insert block[/color]
  15.          (ECP_IAV)))))                                          [color=red]; Go to selectionset functions[/color]
  16. (princ))
  17. (princ)

 
ECP_RUS功能转到“我的还原用户设置”功能。它应该会清除错误,尽管我不确定。
但这是一个很好的观点,我应该调查一下,因为这是一种故意的错误。
 
谢谢你
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:34:20 | 显示全部楼层
如果没有看到更多的代码,很难确定
 
ECP_IAV函数的返回值是多少?由于它是progn语句中要计算的最后一个函数,因此此处的零可以结束该函数
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:40:52 | 显示全部楼层
另一种可能是将(ECP\U MF)移出while循环
 
  1.   (action_tile "cancel" "(done_dialog)(setq BUTTON nil)[color=red](ECP_RUS)[/color]")

 
当做
 
杰米
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 10:45:10 | 显示全部楼层
 
当INPT为nil或鼠标右键单击时,我希望程序返回到通过ECP\u MF运行的对话框。
ECP_IAV函数只是插入对象后的选择集函数。如果INPT返回nil并转到ECP\u MF,它将永远不会到达作为目的的选择集。由于INPT有一个nil值,我相信这就是导致错误的原因,但我无法在程序退出之前清除它。这就是我想要做的。
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 10:49:13 | 显示全部楼层
是否尝试将Autocad中的选项设置更改为右键单击选项?
 
或者,除非选择选项,否则您可能不会给程序退出的机会(退出程序[是/否]:)
 
你怎么想?
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 10:56:41 | 显示全部楼层
 
右键单击鼠标的目的是使输入变为零,这将使我返回到可以通过退出按钮退出的对话框。所有这些都很有效。节目结束后我才收到消息。
回复

使用道具 举报

63

主题

6297

帖子

6283

银币

后起之秀

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

铜币
358
发表于 2022-7-6 10:58:14 | 显示全部楼层
 
问题可能是您在评估后仍处于while循环中(ECP\U MF)
 
  1. (while
  2. (and
  3.    (setq INPT (getpoint "\nInsertion point:"))
  4.    (setq IANG        (getpoint INPT))
  5.    )
  6. (setq INPT (trans ...  )))
  7. (ECP_MF)

 
当ECP\u MF完成时,由于没有断点,AutoCAD将ECP\u MF解释为子功能,并将继续执行原始循环
 
下一行
  1. (cond
  2.            ((= INPT nil)(ECP_MF)))

 
如果输入为零,现在可能会出错吗
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:03:39 | 显示全部楼层
 
谢谢jammie,但我已经发现了这一点,同时继续一点一点地处理它。我必须找到另一种方法。谢谢
回复

使用道具 举报

5

主题

194

帖子

193

银币

初来乍到

Rank: 1

铜币
24
发表于 2022-7-6 11:07:00 | 显示全部楼层
漂亮的杰米。我通过尝试和错误修复了它,两者都有很多。
这个程序运行得很好。我会张贴它时,它完成。
 
谢谢你和tharwat313的帮助。
 
这是第一节固定。
  1. (setq IANG (getpoint INPT)
回复

使用道具 举报

32

主题

1166

帖子

1146

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
159
发表于 2022-7-6 11:13:26 | 显示全部楼层
 
欢迎秃鹰,很高兴能帮上忙。听起来你的节目进展得不错
 
当做
 
杰米
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 17:56 , Processed in 0.805233 second(s), 83 queries .

© 2020-2025 乐筑天下

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