明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5848|回复: 15

[源码] 请教这个画线命令怎么实现循环连续

[复制链接]
发表于 2013-4-23 01:15:10 | 显示全部楼层 |阅读模式
本帖最后由 start4444 于 2013-4-24 10:49 编辑

(defun c:gx()
  (setq p0(getpoint "\n请输入基准点:")
        p1(getpoint p0 "\n请输入第二点:"))
  (setq p0x (car p0)
        p0y (cadr p0)
        p1x (car p1)
        p1y (cadr p1))
  (setq p11 (list p1x (+ 500 p1y)))
  (command "line" p0 p11 p1)


上面那个命令怎么做到不退出循环连续画线 :以p0为原点不断画线(p0  p1、p0  p2、、、、p0 pn)  ,直到点右键退出,希望各位指点,谢谢。


本帖子中包含更多资源

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

x
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2013-4-23 08:29:42 | 显示全部楼层
本帖最后由 pzweng 于 2013-4-23 08:30 编辑

画出来是啥效果?
用whlie就行了
发表于 2013-4-23 09:16:22 | 显示全部楼层
multiple  可以,但是要用esc取消
这个是cad的自带命令
 楼主| 发表于 2013-4-23 10:37:43 | 显示全部楼层
谢谢楼上两位朋友,我不是想程序自动循环,我只是要画p0-p1、p0-p2、、、p0-pn共n条直线,怎么实现点一次p0然后就再点p1 、p2、、、pn就完成,如果用自带直线命令就要点n次p0了。
发表于 2013-4-23 13:10:56 | 显示全部楼层
(defun c:j()
(setq p1 (getpoint "\n 请输入第一点:"))
(setq p2 (getpoint p1 "\n 请输入第二点:"))
(while p2
(command "line" p1 p2 "")
(setq p2 (getpoint p1 "\n 请输入第二点:"))
)
)
 楼主| 发表于 2013-4-23 13:58:23 | 显示全部楼层
phoenixdjq 发表于 2013-4-23 13:10
(defun c:j()
(setq p1 (getpoint "\n 请输入第一点:"))
(setq p2 (getpoint p1 "\n 请输入第二点:"))

谢谢啊,学习了,但是我把语句加到上面的程序里面就出错了,不知道为什么。
发表于 2013-4-23 15:13:28 | 显示全部楼层
你的程序没有用while,不全
你把全的程序贴上来,我帮你看看
 楼主| 发表于 2013-4-23 15:51:49 | 显示全部楼层
本帖最后由 start4444 于 2013-4-23 15:52 编辑
phoenixdjq 发表于 2013-4-23 15:13
你的程序没有用while,不全
你把全的程序贴上来,我帮你看看

(defun c:gx()
  (setq p0(getpoint "\n请输入基准点:")
        p1(getpoint p0 "\n请输入第二点:"))
  (setq p0x (car p0)
        p0y (cadr p0)
        p1x (car p1)
        p1y (cadr p1))
  (setq p3 (list p1x (+ 2000 p1y)))
(while p1
  (command "line" p0 p3 p1)
  (setq p1(getpoint p0 "\n请输入第二点:"))
  (setq p0x (car p0)
        p0y (cadr p0)
        p1x (car p1)
        p1y (cadr p1))
  (setq p3 (list p1x (+ 2000 p1y)))
)
)

这个不行啊。。。
发表于 2013-4-23 16:27:14 | 显示全部楼层
本帖最后由 x_s_s_1 于 2013-4-23 16:30 编辑
start4444 发表于 2013-4-23 15:51
(defun c:gx()
  (setq p0(getpoint "\n请输入基准点:")
        p1(getpoint p0 "\n请输入第二点:") ...


没仔细看您的程序,给您个例子

  1. (defun c:test (/ pt1 pt2)
  2.   (setq pt1 (getpoint "\n选择基点:"))
  3.   (while (setq pt2 (getpoint pt1 "\n选择结束点:"))
  4.     (entmake (list '(0 . "line") (cons 10 pt1) (cons 11 pt2)))
  5.   )
  6. )

本帖子中包含更多资源

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

x
发表于 2013-4-23 16:55:12 | 显示全部楼层
你直接用我给你的程序,就可以了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 09:31 , Processed in 0.194148 second(s), 32 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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