找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 835|回复: 10

[求助] [求助]:菜鸟问个急问题!

[复制链接]
发表于 2005-4-25 00:11:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
刚学lisp,练习编了一段量距离的小程序,返回值的格式上时候有点小问题
下面是我返回的值
命令: dd  First point:Second point:,
dis = 453.5493, goupei = 15.8475
inx = 447.9591, iny = 70.9903, inz = 0
命令:
下面是用cad自带的测量返回的值
命令: '_dist 指定第一点: 指定第二点:
距离 = 471.1867,XY 平面中的倾角 = 5.3340,  与 XY 平面的夹角 = 0.0000
X 增量 = 469.1463,  Y 增量 = 43.8025,   Z 增量 = 0.0000

我返回值的最后 自动出现了一行“命令:”的提示符,cad的量距离就没有那一行。
应该怎样写才能有直接是结果而不加那行提示符,也就是这样
命令: dd  First point:Second point:,
dis = 453.5493, goupei = 15.8475
inx = 447.9591, iny = 70.9903, inz = 0
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 11305个

财富等级: 富甲天下

发表于 2005-4-25 08:23:57 | 显示全部楼层
将您的源程序发上来才能有人帮您改呀!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-25 18:58:09 | 显示全部楼层
  1. (defun c:dd ()
  2.   (setq tem (getvar "dimzin"))
  3.         (setvar "dimzin" 0)
  4.   (setq        p  (getpoint " First point:")
  5.         x1 (car p)
  6.         y1 (cadr p)
  7.         z1 (caddr p)
  8.         q  (getpoint p "Second point:")
  9.         x2 (car q)
  10.         y2 (cadr q)
  11.         z2 (caddr q)
  12.   )
  13.   (setq inx (- x2 x1))
  14.   (setq iny (- y2 y1))
  15.   (setq inz (- z2 z1))
  16.   (setq dist (distance p q))
  17.   (setq ang (* 180 (/ (atan iny inx) pi)))
  18.   (if (= 0 inx)
  19.     (setq goupei "*"
  20.     )
  21.     (setq goupei (* 100 (/ iny inx))

  22.     )
  23.   )
  24.   (setq unit (getvar "luprec"))
  25.   (princ "\n嫍棧 = ")
  26.   (princ (rtos dist 2 unit))
  27.   (princ ", ")
  28.   (princ "岡攝 = ")
  29.   (if (= 0 inx)
  30.     (princ "*")
  31.     (princ (rtos (abs goupei) 2 unit))
  32.   )
  33.   (princ ", ")
  34.   (princ "妏搙 = ")
  35.   (princ (rtos ang 2 unit))
  36.   (princ "\nx 憹検 = ")
  37.   (princ (rtos inx 2 unit))
  38.   (princ ", ")
  39.   (princ "y 憹検 = ")
  40.   (princ (rtos iny 2 unit))
  41.   (princ ", ")
  42.   (princ "z 憹検 = ")
  43.   (princ (rtos inz 2 unit))
  44.   (setvar "dimzin" tem)
  45. (princ)
  46. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-26 00:09:17 | 显示全部楼层
测了,试了,也用了,就是找不出毛病来,这可能是LISP程序本身的故障吧,我一些程序也会带上多余的空command,反正不影响程序的运行,也就是去理会了~!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-26 00:21:32 | 显示全部楼层
我看了人家编的一段删除组的程序,这个程序就没这个毛病,真是搞不懂,要不你也看看?
(defun c:ExplodeAllGroup (/ group name)
  (setq        group
         (entget
           (cdadr (member '(3 . "ACAD_GROUP") (entget (namedobjdict))))
         )
  )
  (if group
    (progn
      (foreach i group
        (if (= (car i) 3)
          (setq name (cons (cdr i) name))
        )
      )
      (command ".undo" "group")      
      (foreach m name
        (command ".group" "e" m)
      )
      (command ".undo" "end")
    )
  )
  
    (progn (princ "\n共分解 ")
           (princ (length name))
           (princ " 组!")
   
  )
  (princ)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-26 08:28:23 | 显示全部楼层
这是一个输出格式的问题,“\n”、“\t”会给你帮助。


应该这样


  1.   [FONT=courier new]
  2. (setq        p  (getpoint " \nFirst point:")
  3.         x1 (car p)
  4.         y1 (cadr p)
  5.         z1 (caddr p)
  6.         q  (getpoint p "\nSecond point:")
  7.         x2 (car q)
  8.         y2 (cadr q)
  9.         z2 (caddr q)
  10.   )

  11.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-26 19:26:18 | 显示全部楼层
\n 是换行 \t是什么作用?
我说得是程序运行后会有多余的command空行
如何才能消除呢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-26 19:43:39 | 显示全部楼层
加上这一句就对了(command "setvar" 0)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-26 20:48:38 | 显示全部楼层
加了但出现错误啦
变量名未知。键入 SETVAR ? 列出变量。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-26 21:33:03 | 显示全部楼层
是不是(setvar "cmdecho" 0)?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-27 00:27:48 | 显示全部楼层
楼主以后发表时,最好再配上一个图片,以免其他朋友误解了你的意思。。。

并申明,6楼斑竹的方法得到的结果一样,不能消除多余命令的指示!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2025-9-28 03:51 , Processed in 0.256007 second(s), 53 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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