明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 934|回复: 2

[基础] 程序出错,希望大家解释一下

[复制链接]
发表于 2011-1-16 18:53:23 | 显示全部楼层 |阅读模式
程序如下:
(defun c:hh()
  (setq osmode_bak (getvar "osmode"))
  (setvar "osmode" 0)
  (setvar "cmdecho" 0)
  (setq *error*_bak *error*)
  (setq *error* *error*_set)
;*****************************************
  (setq bigc_cen (getpoint "\n
大圆的圆心:"))
    (setq R (getdist bigc_cen "\n
指定大圆半径:"))
    (setq littlec_cen (getpoint bigc_cen "\n
小圆的圆心:"))
    (setq r (getdist littlec_cen "\n
指定小圆半径:"))
    (setq dis (distance bigc_cen littlec_cen))
    (setq ang (angle bigc_cen littlec_cen))
    (setq c2c_ang (atan (+ R r) (sqrt (- (expt dis 2.0) (expt (+ R r) 2.0)))))
    (setq pt1 (polar bigc_cen (+ ang c2c_ang) R))
    (setq pt2 (polar littlec_cen (+ ang c2c_ang pi) r))
    (command "circle" bigc_cen R)
    (command "circle" littlec_cen r) ;
画出的大圆和小圆很出乎我的意料,他们的半径竟然是相等的
    (setq ent (entlast))  ;获取小圆便于后面阵列
    (command "line" pt1 pt2 "c") ;
程序运行到这里就跳到下面的错误处理函数了
    (setq ent1 (entlast))  ;获取切线
    (command "mirror" ent1 "" bigc_cen littlec_cen "")  ;
镜像得到第二条切线
    (setq ent21 (entlast))     ;
获取第二条切线
    (command "trim" ent1 ent2 "" (polar bigc_cen ang (- dis r)))
    (command "array" ent1 ent2 ent "" "p" bigc_cen 6 "" "")
  
;*****************************************
  (setvar "osmode" osmode_bak)
  (setq *error* *error*_bak)
  (setvar "cmdecho" 1)
  )
(defun *error*_set (msg)
  (command)
  (setvar "osmode" osmode_bak)
  (setvar "cmdecho" 1)
  (setq *error* *error*_bak)
  (print msg)
  (princ)
  )
这里最主要的问题是:
1.我画出来的两个圆无论如何竟然是相等的,后来我把这段代码“(setq r (getdist littlec_cen "\n指定小圆半径:"))”改为“(setq r (* R 0.35))”还是不行
2.程序运行到“(command "line" pt1 pt2 "c") ”时就跳到错误处理去了
问题1在我写别的程序中也出现过,不知道是不是函数getdist的问题。


本帖子中包含更多资源

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

x
发表于 2011-1-16 20:12:34 | 显示全部楼层
本帖最后由 caoyin 于 2011-1-16 20:16 编辑

变量中的字母大小写作为变量除了视觉上没有区别的,
(setq R ???)
(setq r  ???)
只不过是同一变量被赋值两次
发表于 2011-1-16 21:49:22 | 显示全部楼层

第一次看到这种错误

本帖最后由 mandala 于 2011-1-16 21:50 编辑

楼上正解,HOHO。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 18:25 , Processed in 0.188789 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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