明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1137|回复: 7

[讨论] 刚开始学二次开发,遇到问题,来求助

[复制链接]
发表于 2011-3-20 17:50:29 | 显示全部楼层 |阅读模式
本帖最后由 a170285 于 2011-3-20 18:04 编辑

(defun c:sf()
(setq cmdecho_bak (getvar "cmdecho"))          ; 读取系统响应变了,备份
  (setq c (entget (car (entsel "请选择要缩放的圆:" ))))
  (setq qbj (assoc 40 c))                      ;获取半径
  (setq old (cdr qbj))                         ;取得半径
  (setq xz (getreal "[缩小(A)]/[放大(B)]<实时>:"))
  (if (= xz a)
      (progn
      (setq xz a)
      (setq sz1 (getreal "请输入缩小倍数:"))
         (setq new (/ old sz1))                                     ;求的新的半径
       )
      (progn
      (setq xz b)
      (setq sz1 (getreal "请输入放大倍数:"))
         (setq new (* old sz1))
         )
  )      
  (setq new_bj (cons 40 new))                  ;产生新半径列表
  (setq new_1 (subst new_bj qbj c))
  (entmod new_1)
  (setvar "cmdecho" cmdecho_bak)               ; 开启系统响应变量
   
  (princ)
  )
  
  



我想问问,,究竟那里出现毛病了?
看了好久都不知道那里有问题
刚改了下,但是为什么在输入A或者B的时候,他们不会自己判断?


发表于 2011-3-20 17:56:23 | 显示全部楼层
回复 a170285 的帖子

括号不匹配
 楼主| 发表于 2011-3-20 18:00:02 | 显示全部楼层
现在呢?我刚该了下..现在在用的时候好像也有问题
发表于 2011-3-20 18:08:01 | 显示全部楼层
(defun c:sf()
(setq cmdecho_bak (getvar "cmdecho"))          ; 读取系统响应变了,备份
  (setq c (entget (car (entsel "请选择要缩放的圆:" ))))
  (setq qbj (assoc 40 c))                      ;获取半径
  (setq old (cdr qbj))                         ;取得半径
  (setq xz (getstring "[缩小(A)]/[放大(B)]<实时>:"))
  (if (= xz a)
      (progn
      (setq xz a)
      (setq sz1 (getreal "请输入缩小倍数:"))
         (setq new (/ old sz1))
)                                    ;求的新的半径
      (progn
      (setq xz b)
      (setq sz1 (getreal "请输入放大倍数:"))
         (setq new (* old sz1))
         )
  )      
  (setq new_bj (cons 40 new))                  ;产生新半径列表
  (setq new_1 (subst new_bj qbj c))
  (entmod new_1)
  (setvar "cmdecho" cmdecho_bak)               ; 开启系统响应变量
   
  (princ)
  )
 楼主| 发表于 2011-3-20 18:17:52 | 显示全部楼层
楼上你好.你可以告诉我你修改了那里吗?
发表于 2011-3-20 18:18:53 | 显示全部楼层
(defun c:sf ( / c new new_1 new_bj old qbj sz1 xz)
  (setq cmdecho_bak (getvar "cmdecho"))        ; 读取系统响应变了,备份
  (setq c (entget (car (entsel "请选择要缩放的圆:"))))
  (setq qbj (assoc 40 c))               ; 获取半径
  (setq old (cdr qbj))                       ; 取得半径
  (setq xz (getstring "[缩小(A)]/[放大(B)]<实时>:"))
  (if (= xz "")
    (setq xz xzbak)
  )
  (if (or
        (= xz "A")
        (= xz "a")
      )
    (progn
      (setq xzbak "A")
      (setq sz1 (getreal "请输入缩小倍数:"))
      (setq new (/ old sz1))
    )
  )                                       ; 求的新的半径
  (if (or
        (= xz "B")
        (= xz "b")
      )
    (progn
      (setq xzbak "B")
      (setq sz1 (getreal "请输入放大倍数:"))
      (setq new (* old sz1))
    )
  )
  (setq new_bj (cons 40 new))               ; 产生新半径列表
  (setq new_1 (subst
                new_bj
                qbj
                c
              )
  )
  (entmod new_1)
  (setvar "cmdecho" cmdecho_bak)       ; 开启系统响应变量
  (princ)
)
发表于 2011-3-20 18:38:09 | 显示全部楼层
回复 langjs 的帖子

这也太麻烦了,这样如下不就行了吗
(setq xz (strcase (getstring "[缩小(A)]/[放大(B)]<实时>:")))
 楼主| 发表于 2011-3-20 18:41:18 | 显示全部楼层
好的..谢谢各位的帮助
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-6-11 05:52 , Processed in 0.167863 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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