明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10953|回复: 9

[函数] 求助:参数类型错误: numberp: nil

[复制链接]
发表于 2011-5-16 21:53 | 显示全部楼层 |阅读模式
这个程序是标注坐标的。可以连续标注,但是在输入下一个点时,我直接按回车键,就会出现“参数类型错误: numberp: nil”。不知道怎么做可以消除,我基本可以确定是 while 语句的问题,但是就不知道怎么去改!?希望高手指点一下。

;;;    此小程序为将坐标写在CAD中
(defun c:zb();;defun为标准函数用来定义新函数
   (setvar "cmdecho" 0);;关闭命令回显
   (setq os (getvar "osmode"));;保存对象捕捉系统变量
   (setvar "osmode" 33)
       (setvar "dimtxt" (getvar "TEXTSIZE"))
         (setq dtxt
           (getdist
             (strcat "\n请输入标注文字的高度<"(rtos (getvar "dimtxt"))">: " )
           )
         );;;本行和下行主要是确定标注文字的高度。
       (if (null dtxt) (setq dtxt (getvar "dimtxt")))
   
  (WHILE (/= pt "")
    (setvar "osmode" 33)
    (setq
         pt (getpoint "\n标注点:")
         tx  (strcat "X=" (rtos (car pt) 2))  ;;赋值,并设置数字保留小数位数(rtos 实数 单位模式 数字精度)
         ty  (strcat "Y=" (rtos (cadr pt) 2))  ;;赋值,并设置数字保留小数位数
     )
    (setq pt1 (getpoint pt "\n注释点:"))
    (setq x1 (car pt1))
    (setq y1 (cadr pt1))
    (setq y2 y1)
    (setq x2 (+ x1 dtxt))
    (setvar "osmode" 0)
    (setq pt2 (list x2 y2))
    (command "line" pt pt1 pt2 "")
    (command "style" "sf" "dim.shx,gbcbig.shx" 0 0.65 0 "n" "n" "n")
    (command "text" (list (+ x1 (/ dtxt 3)) (+ y1 (/ dtxt 9.5))) dtxt 0 tx ^c)
    (command "text" (list (+ x1 (/ dtxt 3)) (- y1 dtxt (/ dtxt 9.5))) dtxt 0 ty ^c)
    (princ)
   )
  (setvar "osmode" os)
  (setvar "cmdecho" 1);;打开命令回显
  (prompt "\n中华人民共和国");;静默退出
  (princ);;抑制nil的产生
)
(prompt "\n键入zb唤起命令:")

发表于 2011-5-16 22:52 | 显示全部楼层
pt未赋初值。
 楼主| 发表于 2011-5-18 11:13 | 显示全部楼层
回复 ZZXXQQ 的帖子

请高手给修改一下,给PT赋予一个什么样的初值,才不会在我按回车键或空格键结束标注的时候,能顺利把程序运行完成,而不至于出现“ ; 错误: 参数类型错误: numberp: nil”的提示。
我已经试了几天了,不知道怎么做!?怎么完善这个LISP程序!恳请高手能给指点一下。
发表于 2011-5-18 19:21 | 显示全部楼层
游客,本帖隐藏的内容需要发帖数高于 2 才可浏览,你当前发帖数只有 0
发表于 2011-7-16 23:36 | 显示全部楼层
我的巴拿马也有问题呀
发表于 2011-11-27 17:18 | 显示全部楼层
我也是这种问题
发表于 2011-11-28 13:44 | 显示全部楼层
         pt (getpoint "\n标注点:")
         tx  (strcat "X=" (rtos (car pt) 2))
按回车键,pt的值是nil;
而rtos函数的第一个参数只能是数字,不能是nil
发表于 2011-12-31 15:07 | 显示全部楼层
学习了 非常好
发表于 2012-8-13 21:48 | 显示全部楼层
有收获呀,我也是遇到这样的问题
发表于 2013-5-31 21:51 | 显示全部楼层
是多少多岁的是但是
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 13:54 , Processed in 0.285194 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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