找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 792|回复: 9

[求助] 为什么最后一行程序不运行,返回nil

[复制链接]

已领礼包: 21个

财富等级: 恭喜发财

发表于 2017-5-14 21:48:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
(defun c:t1()
  (vl-load-com)
  (setq p0(getpoint))
  (setq p1(polar p0 (* 0.5 pi) 1000))
  (setq p2(polar p0 0 300))
  (setq p3(polar p2 0 500))
  (command "line" p0 p1 "")
  (setq e1 (entlast))
  (command "circle" p2 "500")
  (setq e2 (entlast))
  (setq e1 (vlax-ename->vla-object e1) e2 (vlax-ename->vla-object e2))
  (setq ver-interse (VLAX-VARIANT-VALUE (VLA-INTERSECTWITH e1 e2 2) ) )
  (setq p4(VLAX-SAFEARRAY->LIST ver-interse))
  (command "line" p0 p4 "")
  )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 20个

财富等级: 恭喜发财

发表于 2017-5-14 21:52:00 | 显示全部楼层
那就是P0,P4至少有一个没有值了,你在倒数第二行加上打印语句,打印下这两个变量,如果没有值,就往上面找计算这两个变量的地方,看看哪个地方错了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1876个

财富等级: 堆金积玉

发表于 2017-5-14 21:59:46 | 显示全部楼层
从代码字面上看p4为两圆的交点,只有两圆相切时p4才为一点。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-5-14 22:15:46 | 显示全部楼层

我这只有一个交点啊??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-5-14 22:17:35 | 显示全部楼层

都有值啊,求大神帮我跑一下程序,找找错
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-14 22:23:26 | 显示全部楼层
你这个代码潜在的出错的地方太多了,因为很多交互的时候你没有判断返回值是什么,有值才能进行下一步的操作另外,vla-intersectwith有可能两个以上交点的,你得到的P4不一定是个点,可能是长度大于等于6的表。


只是就你的代码修改了下,前后逻辑我没有看,试试

  1. (defun c:t1 ()
  2.   (vl-load-com)
  3.   (if (setq p0 (getpoint))
  4.     (progn
  5.       (setq p1 (polar p0 (* 0.5 pi) 1000))
  6.       (setq p2 (polar p0 0 300))
  7.       (setq p3 (polar p2 0 500))
  8.       (command "line" p0 p1 "")
  9.       (setq e1 (entlast))
  10.       (command "circle" p2 "500")
  11.       (setq e2 (entlast))
  12.       (setq e1 (vlax-ename->vla-object e1)
  13.             e2 (vlax-ename->vla-object e2)
  14.       )
  15.       (if
  16.         (and (setq ver-interse
  17.                     (VLAX-VARIANT-VALUE (VLA-INTERSECTWITH e1 e2 2))
  18.              )
  19.              (setq p4 (VLAX-SAFEARRAY->LIST ver-interse))
  20.              (= (length p4) 3) ;;判断只有一个交点
  21.         )
  22.          (command "line" p0 p4 "")
  23.       )
  24.     )
  25.   )
  26.   (princ)
  27. )




论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 21个

财富等级: 恭喜发财

 楼主| 发表于 2017-5-15 08:40:46 | 显示全部楼层
本帖最后由 xxxkkk331 于 2017-5-15 08:45 编辑

运行出来了。。。,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-15 08:42:46 | 显示全部楼层

程序都给你分支了,你自己打印, 看看执行到哪个里面了, 是哪个值结果不如你预期的。

上面程序,在你那里,P4结果是什么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2017-5-15 08:48:26 | 显示全部楼层

你怎么知道的没运行出来?

在我这里,看图,亮显的那个,就是你最后的LINE命令画出来的,只是和第一个线重合了。

搜狗截图20170515084753.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 04:22 , Processed in 0.468315 second(s), 50 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表