明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2778|回复: 9

记忆上次输入过矩形宽度,这码错了,怎么修改?[已解决]

[复制链接]
发表于 2012-5-4 16:30:37 | 显示全部楼层 |阅读模式
本帖最后由 kwok 于 2012-5-4 17:35 编辑

下面是指定宽度画矩形的,我想让它记忆上次输入过的宽度,怎么弄,指点一下.
谢谢!
(defun c:test(/ OS P1 P2 D P3 P4)
  (if *d*
    (progn
  (setq d (getdist "\n矩形宽度<" (rtos *d* 2 2) ">: ")))
  (if (null d) (setq d *d*) (setq *d* d))
  )
(progn
  (setq d (getdist "\n矩形宽度<1.0>: ")))
      (if (null d) (setq d 1.0 *d* d) (setq *d* d))
  )
  (while
    (and
  (setq p1 (getpoint "\n起点: "))
  (setq p2 (getpoint p1 "\n终点: "))
  (setq os (getvar 'osmode))
   )
  (setq p3 (polar p2 (+ (angle p2 p1) (* 0.5 pi)) d)
        p4 (polar p1 (+ (angle p2 p1) (* 0.5 pi)) d)
        )
  (setvar 'osmode 0)
  (apply 'vl-cmdf (list "_pline" p1 p2 p3 p4 "c"))
    (princ "\n**回车键结束**")
  (setvar 'osmode os)
    )
  (princ)
  )

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2012-5-4 16:39:01 | 显示全部楼层
全局变量*d*的值是多少?这个没值的话程序不好运行啊
 楼主| 发表于 2012-5-4 16:44:53 | 显示全部楼层
xiaxiang 发表于 2012-5-4 16:39
全局变量*d*的值是多少?这个没值的话程序不好运行啊

全局变量*d*的值最小是0,最大无限,
在这里这个d我想的是=宽度,可以随意输入,输入后再次运行命令时记住前面输过的.
发表于 2012-5-4 16:48:29 | 显示全部楼层
kwok 发表于 2012-5-4 16:44
全局变量*d*的值最小是0,最大无限,
在这里这个d我想的是=宽度,可以随意输入,输入后再次运行命令时记住前 ...

问题是首次运行时没有值?是不是在别的地方赋值?
发表于 2012-5-4 16:57:18 | 显示全部楼层
将(defun c:test(/ OS P1 P2 D P3 P4)
改成(defun c:test(/ OS P1 P2  P3 P4)
 楼主| 发表于 2012-5-4 16:59:55 | 显示全部楼层
xiaxiang 发表于 2012-5-4 16:48
问题是首次运行时没有值?是不是在别的地方赋值?

这个d的值是在运行命令时输入的值,可以么,然后后面重复命令时记住它.
 楼主| 发表于 2012-5-4 17:05:45 | 显示全部楼层
本帖最后由 kwok 于 2012-5-4 18:42 编辑

我想加个记忆,让它再执行命令时记忆住这个:(setq d (getdist  "\n矩形宽度: "))的值.
发表于 2012-5-4 17:20:12 | 显示全部楼层
(defun c:t11 (/ OS P1 P2 P3 P4 D)
  (IF (NULL *d*) (setq *d* 1))
  (setq d (getdist (strcat "\n矩形宽度<" (rtos *d* 2 2) ">:")))
  (if (NULL d) (setq d *d*) (SETQ *D* D))

评分

参与人数 1明经币 +1 收起 理由
kwok + 1 很给力!

查看全部评分

 楼主| 发表于 2012-5-4 17:33:20 | 显示全部楼层
wowan1314 发表于 2012-5-4 17:20
(defun c:t11 (/ OS P1 P2 P3 P4 D)
  (IF (NULL *d*) (setq *d* 1))
  (setq d (getdist (strcat "\n矩形 ...

谢谢.
我想复杂了.
发表于 2012-8-2 08:35:49 | 显示全部楼层
wowan1314 发表于 2012-5-4 17:20
(defun c:t11 (/ OS P1 P2 P3 P4 D)
  (IF (NULL *d*) (setq *d* 1))
  (setq d (getdist (strcat "\n矩形 ...

高手,能看下这个怎么修改,能记忆上次图块名。http://bbs.mjtd.com/forum.php?mo ... mp;page=2#pid542152
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-7-22 00:00 , Processed in 0.218900 second(s), 34 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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