找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2939|回复: 5

[求助] [求助]:还会捕捉到其它点(希望zml84先生出手)

[复制链接]
发表于 2007-4-6 08:47:19 | 显示全部楼层 |阅读模式

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

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

×
(defun C:LTP (/ pt1 pt2 l p1 p2 P3 P4 P5 P6 K K1 P10 P20 )
;;保存系统变量设置
    (setq old_OS  (getvar "OSMODE")
      old_CMD (getvar "CMDECHO")
    )
     
    (setvar "CMDECHO" 0)
    (command "-osnap" "INT")
  (setq pt1 (getpoint "\n左下角点:"))
  (setq pt2 (getpoint pt1 "\n右下角点:"))
6   (setvar "OSMODE" 0)
  (setq p1 (polar pt1 (/ pi 2.0) 400))
  (setq p2 (polar pt2 (/ pi 2.0) 400))
  (setq p3 (polar pt1 (/ pi 2.0) 800))
  (setq p4 (polar pt2 (/ pi 2.0) 800))
  (setq p5 (polar pt1 (/ pi 2.0) 1200))
  (setq p6 (polar pt2 (/ pi 2.0) 1200))
  (command "line" p1 p2 "")
  (command "line" p3 p4 "")
  (command "line" p5 p6 "")
  (command "line" pt2 p6 "")
  (command "line" pt1 p5 "")
  (setq k(angle pt1 pt2))
;(setq k1 0)
;(if (> k (/ Pi 2))
;(setq k1 Pi)
;)
(setq
    xx  (* 100 (/ (cos k) (sin k)))
        p10 (polar pt1 0 xx)
                    )
(setq p20 (polar pt2 (* pi 1.5) 100))
(command "line" pt1 pt2 "")
(command "line" p10 p20 "")
  (setq L (distance pt1 pt2))
  (setq N (/ L 1200))
  (setq I 1)
  (setq P0 Pt1)
  (while (<= i N)
  (setq P1 (polar p0 (/ pi 2.0) 1200))
  27 (command "line" p0 p1 "")
  (setq p0 (polar p0 k 1200))
  (setq I (+ i 1))
;;恢复系统变量设置
    (setvar "CMDECHO" old_CMD)
    (setvar "OSMODE" old_OS)
    (setq *error* olderr)
  (princ)
)

我在第6句(setvar "OSMODE" 0)作了捕捉为0的设置,为何在第27句(command "line" p0 p1 "")画线时还会捕捉到其它点
问一个论坛发贴的问题,(象别的朋友一样,)如何把程序贴在一个专门的程序框内,在论坛发布
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2007-4-6 13:59:15 | 显示全部楼层
开始时增加一句:
(setvar "OSNAPCOORD" 1);

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

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-4-6 18:18:16 | 显示全部楼层
感谢szx025的信任,你在1楼的代码WHILE循环少了一个括号,其他运行正常啊?!
完整代码如下:

  1. (defun C:LTP (/ pt1 pt2 l p1 p2 P3 P4 P5 P6 K K1 P10 P20)
  2.     ;;保存系统变量设置
  3.     (setq old_OS  (getvar "OSMODE")
  4.           old_CMD (getvar "CMDECHO")
  5.     )

  6.     (setvar "CMDECHO" 0)
  7.     (command "-osnap" "INT")
  8.     (setq pt1 (getpoint "\n左下角点:"))
  9.     (setq pt2 (getpoint pt1 "\n右下角点:"))
  10.     ;;6
  11.     (setvar "OSMODE" 0)
  12.     (setq p1 (polar pt1 (/ pi 2.0) 400))
  13.     (setq p2 (polar pt2 (/ pi 2.0) 400))
  14.     (setq p3 (polar pt1 (/ pi 2.0) 800))
  15.     (setq p4 (polar pt2 (/ pi 2.0) 800))
  16.     (setq p5 (polar pt1 (/ pi 2.0) 1200))
  17.     (setq p6 (polar pt2 (/ pi 2.0) 1200))
  18.     (command "line" p1 p2 "")
  19.     (command "line" p3 p4 "")
  20.     (command "line" p5 p6 "")
  21.     (command "line" pt2 p6 "")
  22.     (command "line" pt1 p5 "")
  23.     (setq k (angle pt1 pt2))
  24. ;;;                                (setq k1 0)
  25. ;;;                                        (if (> k (/ Pi 2))
  26. ;;;                                        (setq k1 Pi)
  27. ;;;                                        )
  28.     (setq
  29.         xx  (* 100 (/ (cos k) (sin k)))
  30.         p10 (polar pt1 0 xx)
  31.     )
  32.     (setq p20 (polar pt2 (* pi 1.5) 100))
  33.     (command "line" pt1 pt2 "")
  34.     (command "line" p10 p20 "")
  35.     (setq L (distance pt1 pt2))
  36.     (setq N (/ L 1200))
  37.     (setq I 1)
  38.     (setq P0 Pt1)
  39.     (while (<= i N)
  40.         (setq P1 (polar p0 (/ pi 2.0) 1200))
  41.         ;;27
  42.         (command "line" p0 p1 "")
  43.         (setq p0 (polar p0 k 1200))
  44.         (setq I (+ i 1))
  45.     )

  46.     ;;恢复系统变量设置
  47.     (setvar "CMDECHO" old_CMD)
  48.     (setvar "OSMODE" old_OS)
  49.     (setq *error* olderr)
  50.     (princ)
  51. )

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

使用道具 举报

发表于 2007-4-6 23:35:39 | 显示全部楼层
szx025为什么没有耳语功能?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-4-7 07:56:59 | 显示全部楼层
非常感激ZML84先生,问题确实处在少一个 ) 上,但有一个疑问,LISP程序在少一个 )的情况下,为何在我的机器中能正常工作,只是捕捉出现问题?
另:我发贴是如何做到象ZML84那样,把程序贴在代码拦中
为什么没有耳语功能要请斑主回答
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2个

财富等级: 恭喜发财

发表于 2007-4-7 13:16:51 | 显示全部楼层
一、一般说来,括号不成对语法错误的代码是不会被加载的。所以我无法猜测你的情况。
<br>
二、关于发贴格式问题,请见:
http://www.xdcad.net/forum/showthread.php?s=&threadid=1218
或:
http://www.xdcad.net/forum/showthread.php?s=&threadid=1641
<br>
三、关于是否使用耳语功能,请见:
http://www.xdcad.net/forum/member.php?s=&action=editoptions
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-17 14:28 , Processed in 0.405429 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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