明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2732|回复: 13

[基础] [求助]lsp输入一个数据的命令 已解决

  [复制链接]
发表于 2010-11-22 07:13:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-11-24 0:07:01 编辑

写了一个输入数据的命令,可是不知为什么得不到赋值?请见下面的语句:
 (setq xn1 (getreal "\n请输入数据 <>: "))
(if (/= n1 "")
      (setq n1 xn1)
    )

当输入一个数,假如是:1.5
可是在后面的语句里:
 (command "line"
    (polar p0 (+ ang (* n1 pi)) (* n1 p_d1))
语句不认可n1为1.5
而直接写成(setq n1 1.5)时
 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1))
此时的n1又认可为是1.5
不知是为什么?望高手指教
谢谢

 

 

已解决

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2010-11-22 09:10:00 | 显示全部楼层

Command: (setq xn1 (getreal "\n请输入数据 <>: "))
请输入数据 <>:
nil            ;<========  ""  !=  nil

-----------------------------------------
(setq xn1 (getreal "\n请输入数据 <>: "))
(if (/= xn1 nil)
   (setq n1 xn1)
   (setq n1 1.0)       ; 内定 
)

 楼主| 发表于 2010-11-22 13:18:00 | 显示全部楼层

谢谢Andyhon

我去试试

谢谢了

 楼主| 发表于 2010-11-22 13:39:00 | 显示全部楼层
Andyhon发表于2010-11-22 9:10:00Command: (setq xn1 (getreal \"\n请输入数据 <>: \"))请输入数据 <>:nil            ;<========  \"\"  !

    试了试,还是不行

   当"\n请输入数据 <>: "  不输数据时,就可以作图,取了内定值;当输入了数据时,作出的图形就不对。

 

比如:是给它一个数值,让它偏移。当取内定值时,即不输入数据,就能按内定值偏移;输入数值后,则在指定位置画出线条,而不偏移。

 

不知是为什么?

 

请指教

 

谢谢

发表于 2010-11-22 14:06:00 | 显示全部楼层
未见您的代码,猜想是受捕捉模式的影响
 楼主| 发表于 2010-11-22 23:01:00 | 显示全部楼层
Andyhon发表于2010-11-22 14:06:00未见您的代码,猜想是受捕捉模式的影响

不是捕捉模式的影响,因为不输数据时能作图,输入数值,则在指定位置的两点画出线条。

代码就是根据两点,再赋值给它:(setq w1 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)))
(setq w2 (polar (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)) ang pl))
(command "line" w1 w2 "")

只是不明白,为什么输入值就不行,内定值又可以?

盼得到高手指点

谢谢

 楼主| 发表于 2010-11-23 07:06:00 | 显示全部楼层

我又在其它的电脑上试了试,运行的结果是一样的。

即在不输入数据时,图形是对的,一旦输入数据,就有误,不是平行作线。不知是为什么,出错在哪里?

请见下面:

(defun c:test ()

(setq xn1 (getreal "\n请输入数据 <>: ")) 

    (if (/= xn1 nil)
   (setq n1 xn1)
   (setq n1 0.5)      

  )

  (setq p0 (getpoint "\n请选取第一点:"))     

  (setq pt1 (getpoint P0 "\n请选取第二点:"))
  (setq pl (distance p0 pt1))              

  (setq ang (angle p0 pt1))               

  (setq p_d1 5)   

(setq w1 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)))
(setq w2 (polar (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)) ang pl))
(command "line" w1 w2 "")
)

 

望得到高手指教

谢谢

 

发表于 2010-11-23 09:24:00 | 显示全部楼层

(setq xn1 (getreal "\n请输入数据 <>: "))
.....
(setq w1 (polar p0 (+ ang (* n1 pi)) (* n1 p_d1)))

(+ ang (* n1 pi))   ; Pi 的 倍数值   << 内定值相当于90?

(* n1 p_d1)         ; p_d1  的 倍数值    << 用意呢?

发表于 2010-11-23 13:14:00 | 显示全部楼层
(setq w1 (polar p0 (+ ang (* 0.5 pi)) (* n1 p_d1)))
发表于 2010-11-23 13:15:00 | 显示全部楼层
(setq w2 (polar pt1 (+ ang (* 0.5 pi)) (* n1 p_d1)))
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 16:21 , Processed in 0.174972 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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