wrf610051 发表于 2023-2-1 06:44:34

一个点对表问题,没弄明白

遇到一个点对表,不明白,请热心人帮我看看。

命令: (setq l '(1 . 2))
(1 . 2)
命令: (setq l '(158 . 202))
(158 . 202)
应用程序错误: 参数类型错误

命令: (cons 5 7)
(5 . 7)
命令: (cons 100 200)
(100 . 200)
命令: (cons 150 200)
(150 . 200)
应用程序错误: 参数类型错误

Gu_xl 发表于 2023-2-3 10:10:45

这是ARX的内部机制问题,点对表前面的整数与ARX数据表的数据类型相冲突,点对表第一位最好不要用整数,容易出问题!

tigcat 发表于 2023-2-1 11:25:17

(cons A B),A为整数,经测试A>149提示错误。A不为整数,(cons 150.0 300)无问题。

baitang36 发表于 2023-2-3 15:37:11

在acad2008下跟踪了一下,发现出错的原因并不是cons这个函数,这个函数的运行没有出错。错误出在往命令行显示的时候。
(vl-princ-to-string (cons 150 1))这句在命令行上显示正常,说明cons函数没有错。
(princ '(150 . 1))出错,整数在150到169之间出错,170以上和149以下都不出错。
prin1 print这两个函数同样出错。
看来出错原因是把点表化成字符串在命令行显示的过程中。只要不在命令行上用prin1 printprinc,就不会出错。vlide中正常,fas中也正常。

cchessbd 发表于 2023-2-1 08:01:08

大哥,测了下,确实是错误,但是我也不明白,这你都发现了,你真厉害。

guosheyang 发表于 2023-2-1 09:08:02

我17版本测试 没错误

1506822004 发表于 2023-2-1 09:18:40

22版测试,也没有错误

Bao_lai 发表于 2023-2-1 17:44:42

tigcat 发表于 2023-2-1 11:25
(cons A B),A为整数,经测试A>149提示错误。A不为整数,(cons 150.0 300)无问题。

这个啥原理?

飞雪神光 发表于 2023-2-1 18:57:30

应该和CAD有点关系 我07也有这个提示 但是用飞诗加载运行这几个都没有错误提示 所以不在命令栏直接运行代码就没问题

tigcat 发表于 2023-2-1 21:09:13

Bao_lai 发表于 2023-2-1 17:44
这个啥原理?

这个不知道

Klein 发表于 2023-2-2 15:58:13

21版测试没有问题

Ming131564 发表于 2023-2-2 17:25:32

来看看,解决了吗
页: [1] 2
查看完整版本: 一个点对表问题,没弄明白