明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2068|回复: 11

怎么修改这段程序才能达到我的目的?

  [复制链接]
发表于 2005-9-30 22:42 | 显示全部楼层 |阅读模式

(defun c:bd()
(setq loop t p0 (getpoint "\n 输入点:"))
   (while loop
      (setq inp (grread t))
      (setq source (car inp) pt (cadr inp))
      (if (= source 3) (setq loop nil)(ccx pt))
   )
)
(defun ccx(pp)
  (setq la (/ (getvar "VIEWSIZE") 20)
        p1 (list (+ (car pp) la) (- (cadr pp) la) 0)
        p2 (list (+ (car pp) (* la 5)) (- (cadr pp) la) 0)
        p3 (list (+ (car pp) (* la 5)) (+ (cadr pp) la) 0)
        p4 (list (+ (car pp) la) (+ (cadr pp) la) 0)
  )
 (grdraw p1 p2 -1) (grdraw p2 p3 -1)
 (grdraw p3 p4 -1) (grdraw p4 p1 -1)
 (grdraw p3 p1 -1) (grdraw p4 p2 -1)
 (grdraw p0 pp -1)
)

;;我的问题是,1、不想在输入点的时候留下一个线框。2、鼠标停止移动的时候能够显示出这个线框,和问题1刚好相反。3、移动的时候线框能不能显示的清晰些,好像忽明忽暗的。

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2005-9-30 22:45 | 显示全部楼层

不用getpoint,用getstring转弯

 楼主| 发表于 2005-9-30 23:05 | 显示全部楼层
谢谢,我试了一下,三个问题都没有解决。
 楼主| 发表于 2005-9-30 23:15 | 显示全部楼层

;我把程序稍稍修改了一下,怎么就变了大样了呢?怎么回事?

(defun c:bd()(while (if (= (car(grread t)) 3)(nil)(ccx (cadr(grread t))))))

(defun ccx(pp)
  (setq la (/ (getvar "VIEWSIZE") 20)
        p1 (list (+ (car pp) la) (- (cadr pp) la) 0)
        p2 (list (+ (car pp) (* la 5)) (- (cadr pp) la) 0)
        p3 (list (+ (car pp) (* la 5)) (+ (cadr pp) la) 0)
        p4 (list (+ (car pp) la) (+ (cadr pp) la) 0)
  )
 (grdraw p1 p2 -1) (grdraw p2 p3 -1)
 (grdraw p3 p4 -1) (grdraw p4 p1 -1)
 (grdraw p3 p1 -1) (grdraw p4 p2 -1)
t)

发表于 2005-10-1 07:34 | 显示全部楼层
这样可以“大便样”,不知道是不是你想要的“变大样”
  1. (defun c:bd()
  2.    (setq loop t pt2 (getpoint "\n 输入点:"))
  3.    (while loop
  4.       (setq inp (grread t))
  5.       (setq source (car inp) pt (cadr inp))
  6.       (if (= source 3)
  7. (setq loop nil)
  8. (if (not(eq pt pt2))
  9.    (progn (ccx pt2 0)(ccx pt 1))
  10. )
  11. )
  12.      (setq pt2 pt)
  13.    )
  14. )
 楼主| 发表于 2005-10-1 11:57 | 显示全部楼层
兄弟是个热心人,就是说话刻薄了些,另外就是程序也改的不对。
发表于 2005-10-1 14:52 | 显示全部楼层

看看这回理解对了没有,呵呵

(defun c:bd()
   (setq loop t pt2 (getpoint "\n 输入点:"))
   (while loop
      (setq inp (grread t))
      (setq source (car inp) pt (cadr inp))
      (if (= source 3)
 (setq loop nil)
 (if (not(eq pt pt2))
   (progn (ccx pt2 0)(ccx pt 1))
 )
 )
     (setq pt2 pt)
   )
  (ccx pt2 0)
  pt
)

 楼主| 发表于 2005-10-1 16:03 | 显示全部楼层

好兄弟,急人之所急。感谢。

 但是(ccx pt2 0)(ccx pt 1) 怎么调用子程序多了一个参数呢?你那边调试能通过不?

其实我想实现的功能很简单,如果不行,我就用另外那个帖子里的程序将就一下。

就是鼠标停止的时候没有方框线而已。

发表于 2005-10-1 19:38 | 显示全部楼层
(defun ccx(pp k)
  (setq la (/ (getvar "VIEWSIZE") 20)
        p1 (list (+ (car pp) la) (- (cadr pp) la) 0)
        p2 (list (+ (car pp) (* la 5)) (- (cadr pp) la) 0)
        p3 (list (+ (car pp) (* la 5)) (+ (cadr pp) la) 0)
        p4 (list (+ (car pp) la) (+ (cadr pp) la) 0)
  )
 (grdraw p1 p2 k) (grdraw p2 p3 k)
 (grdraw p3 p4 k) (grdraw p4 p1 k)
 (grdraw p3 p1 k) (grdraw p4 p2 k)
 (grdraw p0 pp k)
)
 楼主| 发表于 2005-10-2 10:16 | 显示全部楼层

非常感谢啊,在你的帮助下,我调好了那段程序,等我的程序编好了给你也发一份。

看来你理解了那两个函数了,我还是瞎子摸象呢。

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

本版积分规则

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

GMT+8, 2024-5-18 21:49 , Processed in 0.351339 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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