一个点对表问题,没弄明白
遇到一个点对表,不明白,请热心人帮我看看。命令: (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)
应用程序错误: 参数类型错误 这是ARX的内部机制问题,点对表前面的整数与ARX数据表的数据类型相冲突,点对表第一位最好不要用整数,容易出问题! (cons A B),A为整数,经测试A>149提示错误。A不为整数,(cons 150.0 300)无问题。 在acad2008下跟踪了一下,发现出错的原因并不是cons这个函数,这个函数的运行没有出错。错误出在往命令行显示的时候。
(vl-princ-to-string (cons 150 1))这句在命令行上显示正常,说明cons函数没有错。
(princ '(150 . 1))出错,整数在150到169之间出错,170以上和149以下都不出错。
prin1 print这两个函数同样出错。
看来出错原因是把点表化成字符串在命令行显示的过程中。只要不在命令行上用prin1 printprinc,就不会出错。vlide中正常,fas中也正常。 大哥,测了下,确实是错误,但是我也不明白,这你都发现了,你真厉害。 我17版本测试 没错误 22版测试,也没有错误 tigcat 发表于 2023-2-1 11:25
(cons A B),A为整数,经测试A>149提示错误。A不为整数,(cons 150.0 300)无问题。
这个啥原理? 应该和CAD有点关系 我07也有这个提示 但是用飞诗加载运行这几个都没有错误提示 所以不在命令栏直接运行代码就没问题 Bao_lai 发表于 2023-2-1 17:44
这个啥原理?
这个不知道 21版测试没有问题 来看看,解决了吗
页:
[1]
2