明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1460|回复: 2

本站的程序出错, 谁能帮帮?

[复制链接]
发表于 2003-9-24 15:50:00 | 显示全部楼层 |阅读模式
抛物线绘制程序, 出错提示: 参数太少?

;; 版权所有 (C) 1997-2001  郑立楷
;;
;;   本软件免费可供进行任何用途需求的拷贝、修改及发行, 但请遵循下述原则:
;;
;;   1)  上列的版权通告必须出现在每一份拷贝里。
;;   2)  相关的说明文档也必须载有版权通告及本项许可通告。
;;
;;   本软件仅提供作为应用上的参考, 而未声明或隐含任何保证; 对于任何特殊
;;   用途之适应性, 以及商业销售所隐含作出的保证, 在此一概予以否认。
;;
;;   绘制抛物线程序
;;   执行命令:pbl
;;   说明:本程序可通过选择抛物线顶点和焦点参数来绘制抛物线。
;;
;;   明经通道 http://www.mccad.net
;;   e-mail   mccad@21cn.com
;;
(defun c:pbl (oldcmdecho pa pax pay pp pdist_p pdist
              pleng_p pleng py px a b f l)
  (setq oldcmdecho (getvar "cmdecho"))
  (setvar "cmdecho" 0)
  (initget 1)
  (setq pa (getpoint "\n请选取抛物线顶点位置:"))
  (setq        pax (car pa)
        pay (cadr pa)
  )
  (initget 1)
  (setq pp (getdist pa "\n请输入焦点参数:"))
  (initget 6)
  (setq pdist_p (getint "\n请取点的精度(一个焦点参数距离的取点数)<5>:"))
  (if (= pdist_p nil)
    (setq pdist_p 5)
  )
  (setq pdist (/ pp pdist_p))
  (initget 6)
  (setq pleng_p (getint "\n请输入抛物线在Y向的长度(焦点参数的倍数)<5>:") )
  (if (= pleng_p nil)
    (setq pleng_p 5)
  )
  (setq pleng (* pp pleng_p))
  (setq py pleng)
  (setq px (getpntx py pp))
  (command "pline" "non" (list (+ pax px) (+ pay py)))
  (repeat (* 2 pdist_p pleng_p)
    (if        (equal y 0 0.000000001)
      (setq py 0
            px 0
      )

      (setq py (- py pdist)
            px (getpntx py pp)
      )
    )
    (command "non" (list (+ pax px) (+ pay py)))
  )

  (command "")
  (initget "Yes No")
  (setq ab(getkword "\n是否绘制主轴AB[是(Y)/否(N)]<否>:"))
  (if (= ab "")
    (setq ab "No")
    )
  (if (= ab "Yes")
    (command "line" "non" pa "non"(list (+ pax(getpntx pleng pp)) pay) "")
    )
  (initget "Yes No")
  (setq f(getkword"\n是否绘制焦点标记F[是(Y)/否(N)]<否>:"))
  (if (= f "")
    (setq f "No")
    )
  (if (= f "Yes")
    (progn
      (setvar "pdmode" 2)
      (setvar "pdsize" -1)
      (command "point" "non"(list (+ pax (/ pp 2)) pay) )
      )
    )
  (initget "Yes No")
  (setq l(getkword"\n是否绘制准线L[是(Y)/否(N)]<否>:"))
  (if (= l "")
    (setq l "No")
    )
  (if (= l "Yes")
    (command "line" "non" (list (- pax (/ pp 2)) (+ pay pleng)) "non"(list(- pax(/ pp 2))(- pay pleng))"")
    )
  (setvar "cmdecho" oldcmdecho)
    (princ)
)
(defun getpntx (y p)
  (setq x (/ (* y y) (* 2 p)))
)
发表于 2003-9-24 15:57:00 | 显示全部楼层
哦,请将程序正式开始的第一行改为:

(defun c:pbl (/  oldcmdecho pa pax pay pp pdist_p pdist
 楼主| 发表于 2003-9-24 17:28:00 | 显示全部楼层
谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 16:28 , Processed in 0.171649 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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