找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 711|回复: 7

[求助] [求助]:图形在屏幕中缩得较小时,break命令不能能执行?

[复制链接]
发表于 2008-4-3 13:16:58 | 显示全部楼层 |阅读模式

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

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

×
(defun C:WLL (/ L1 L2 PT1 PT2 PT3 PT4 PT5 PT6 KU)

    (if        (setq L1 (getpoint "\nPick point:"))
        (progn
            (setq OLD_CMDECHO (getvar "CMDECHO"))
            (setvar "CMDECHO" 0)
            (setq CL (getvar "clayer"))
            (setvar "EDGEMODE" 1)
            (command "-layer" "m" "WALL" "C" "31" "" "")
            ;;PLINEWID 存储多段线的缺省宽度
            (setvar "PLINEWID" 60)
            (while (setq L2 (getpoint L1 "\nPick point:"))

                (setq KU (angle L1 L2))
                (setq PT1 (polar L1 (+ KU (* 0.5 pi)) 120))
                (setq PT2 (polar L1 (+ KU (* 1.5 pi)) 120))
                (setq PT3 (polar L2 (+ KU (* 0.5 pi)) 120))
                (setq PT4 (polar L2 (+ KU (* 1.5 pi)) 120))
                (setq PT5 (polar L1 (+ KU (* 0.5 pi)) 300))
                (setq PT6 (polar L2 (+ KU (* 0.5 pi)) 300))
                ;;绘制
                (command "_.Pline" "non" PT1 "non" PT3 "")
                (command "_.Pline" "non" PT2 "non" PT4 "")
                ;;打断
                (command "break" "non" PT5 "f" "non" PT1 "non" PT2)
                (command "break" "non" PT6 "f" "non" PT3 "non" PT4)
            )

            (setvar "clayer" CL)
            (setvar "CMDECHO" OLD_CMDECHO)
        )
    )
    (princ)
)
当图形充满屏幕时,上面的break命令能执行,当图形在屏幕中缩得较小时,上面的break命令不能能执行。为何?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2008-4-3 17:14:24 | 显示全部楼层
break命令不能能执行,是因为程序中你没有去除捕捉点设置!还有其他很多情况因为捕捉点没有去除,会得到意想不到的结果!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 19:14:38 | 显示全部楼层
我也想到了捕捉的问题,在画图时我特别关闭F3,但还是不行,另:程序中用了"NON",应该是取消了捕捉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10401个

财富等级: 富甲天下

发表于 2008-4-4 10:37:51 | 显示全部楼层
这样试试:
[php]
(defun C:WLL (/ L1 L2 PT1 PT2 PT3 PT4 PT5 PT6 KU)
(if (setq L1 (getpoint "\nPick point:"))
(progn
(setq OLD_CMDECHO (getvar "CMDECHO"))
(setvar "CMDECHO" 0)
(setq CL (getvar "clayer"))
(setvar "EDGEMODE" 1)
(command "-layer" "m" "WALL" "C" "31" "" "")
;;PLINEWID 存储多段线的缺省宽度
(setvar "PLINEWID" 60)
(while (setq L2 (getpoint L1 "\nPick point:"))
(setq KU (angle L1 L2))
(setq PT1 (polar L1 (+ KU (* 0.5 pi)) 120))
(setq PT2 (polar L1 (+ KU (* 1.5 pi)) 120))
(setq PT3 (polar L2 (+ KU (* 0.5 pi)) 120))
(setq PT4 (polar L2 (+ KU (* 1.5 pi)) 120))
(setq PT5 (polar L1 KU 300))
(setq PT6 (polar L2 (+ KU pi) 300))
;;绘制
(command "_.Pline" "non" PT1 "non" PT3 "") (setq s1 (entlast))
(command "_.Pline" "non" PT2 "non" PT4 "") (setq s2 (entlast))
;;打断
(command ".trim" s1 s2 "" "f" "non" pt5 "non" pt6 "" "")
(setq l1 l2)
)

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

使用道具 举报

 楼主| 发表于 2008-4-4 12:54:51 | 显示全部楼层
楼上的朋友,谢谢,
程序测试了,还是切不断
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-4-4 14:51:36 | 显示全部楼层
szx025 ,能否详细说说你这段程序最终要得到一个什么样的结果?我在我的机器上测试了一下,好像是正常的啊?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-4 18:30:57 | 显示全部楼层
这是我画墙线的程序,当墙线T型交叉时,让程序切断墙线中的线段
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2008-4-5 14:17:37 | 显示全部楼层
(command "break" (list ename point1) point2)
or
(command "break" (list ename point1) "f"point1 point2)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 21:31 , Processed in 0.212789 second(s), 46 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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