乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 43|回复: 2

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

[复制链接]
wzs

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 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请取点的精度(一个焦点参数距离的取点数):"))
  (if (= pdist_p nil)
    (setq pdist_p 5)
  )
  (setq pdist (/ pp pdist_p))
  (initget 6)
  (setq pleng_p (getint "\n请输入抛物线在Y向的长度(焦点参数的倍数):") )
  (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)))
)
回复

使用道具 举报

76

主题

595

帖子

10

银币

中流砥柱

Rank: 25

铜币
899
发表于 2003-9-24 15:57:00 | 显示全部楼层
哦,请将程序正式开始的第一行改为:
(defun c:pbl (/  oldcmdecho pa pax pay pp pdist_p pdist
回复

使用道具 举报

wzs

1

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
6
发表于 2003-9-24 17:28:00 | 显示全部楼层
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-6 07:52 , Processed in 0.714761 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表