明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 呆呆

[LISP]求救 谢谢呵呵!

  [复制链接]
 楼主| 发表于 2003-12-5 17:59:00 | 显示全部楼层
还有我的问题就是幻灯片(*.sld)是怎么编译的?
 楼主| 发表于 2003-12-5 18:02:00 | 显示全部楼层
下面的程序我加载的时候出现这个提示  Error: invalid dotted pair 请问是什么错误?
程序原文如下:
(defun c:gh ()
(setq oce (getvar "cmdecho")
      ode (getvar "osmode")
      orh (getvar "orthomode")
)
(setvar "orthomode" 1)
(setq txtg (getvar "textsize")
       rr  (* (getvar "textsize") 1.4)
)
(setvar "osmode" 1)
(setq p1 (getpoint "\nplease input point1:")
      p2 (getpoint "\nplease input point2:")
)
(cond
( (= (car p1) (car p2))
   (setq n 1)
   (while
   (setvar "osmode" 1)
   (setq p3 (getpoint "  poick point:"))
   (if (null p3) (exit))
   (setq p4 (list (car p3) (cadr p2)))
   (cond
     ((< (cadr p1) (cadr p2))
      (setq center (polar p4 (* pi 0.5) (*0.5 rr)))
     )
     ((>= (cadr p1) (cadr p2))
      (setq center (polar p4 (* pi 1.5) (*0.5 rr)))
     )
   )  ;;end cond
   (setvar "osmode" 0)
   (command "line" p3 p4 "")
   (command "circle" center rr)
   (command "text" "m" center txtg "0" (rtos n 2 0) "")
   (setq n (1+ n))
   ) ;; end while
)   
( (= (cadr p1) (cadr p2))
   (setq n 65)
   (while  (< n 91)
   (setvar "osmode" 1)
   (setq p3 (getpoint "  poick point:"))
   (if (null p3) (exit))
   (setq p4 (list (car p2) (cadr p3)))
   (cond
     ((< (car p1) (car p2))
      (setq center (polar p4 (* 0 0) (*0.5 rr)))
     )
     ((>= (car p1) (car p2))
      (setq center (polar p4  p (*0.5 rr)))
     )
   )  ;;end cond
   (setq mm (chr n))
   (setvar "osmode" 0)
   (command "line" p3 p4 "")
   (command "circle" center rr)
   (command "text" "m" center txtg "0" mm "")
   (setq n (1+ n))
   ) ;;end while
   )
  )  ;;end cond
(setvar "cmdecho" oce)
(setvar "osmode" ode)
(setvar "orthomode" orh)
(princ)
)
 楼主| 发表于 2003-12-5 18:11:00 | 显示全部楼层
还有飞哥麻烦您了 我还有问题 就是我的程序在执行的工程中经常回出现这样的语句如
“Unknown command "LA".  Press F1 for help.”  其中LA是命令名 。 请问怎么样才能把这样的语句从命令行里去除掉!谢谢飞哥!!麻烦您了 有时候我的记性不好 ,上次的您别生气! 谢谢帮助 拜托了!
发表于 2003-12-5 18:16:00 | 显示全部楼层
没有你说的错误,(*0.5 rr)这里有错误,注意空格。
(怀疑你的系统有问题,上次我写的右键退出你说不行,也不见你说怎么不行)
感觉过了这么久,你还是没什么进步,就当WHILE函数,已经给你举了这么多例子,说了这么多,你还用一个以(setvar "osmode" 1)作为while的判断条件,这个条件永远为真,所以你根本无法正常退出,即使这样我一个无法退出的死循环,也不会有人以这个作为条件的,只会直接写(while t ...)
还有龙大侠给你写的程序也不见你说什么
 楼主| 发表于 2003-12-5 18:30:00 | 显示全部楼层
飞哥批评的是 我下次一定紧记在心的 谢谢飞哥的教导!

龙大侠的程序在我的机子上运行 不行  可以正常退出 但是偏移后的对象没有转到当前图层上去!我已经在程序里加进了当前图层的参数 不行
 楼主| 发表于 2003-12-5 18:39:00 | 显示全部楼层
飞哥 我的程序意图不是你所说的那样 (setvar "osmode" 1) 不是WHILE的判断条件 我的程序
(< n 91) 才是呀 ! 我那样写对吗?
   
还有飞哥 你上次的那个程序在我的机子里 只有按下ESC才能退出   当提示“选择偏移对象”的时候 我按下右键或者ENTER 都不能退出 还是提示“选择偏移对象”
不知道为什么 是不是我的系统有问题 还有我的程序在200x 里都能正常运行 在R14里经常出现程序运行结果和预期的不同 特别是图层转换上。
发表于 2003-12-5 18:56:00 | 显示全部楼层
呆呆发表于2003-12-5 18:11:00还有飞哥麻烦您了 我还有问题 就是我的程序在执行的工程中经常回出现这样的语句如
“Unknown command &quot;LA&quot;.  Press F1 for help.”  其中LA是命令名 。 请问怎么样才能把这样的语句



这是因为你前面的command函数用得不对,最后多了回车,相当于调用前一次的命令(这里用(command ...)调用的是不算的),所以又调用了自己的程序命令,但自定义的命令一般是不能在程序中像内部命令一样调用的,所以出现未知命令。。。
要仔细检查没一个(command ...)后面的参数是否正确,尤其是那些地方该回车,那些地方又不需要。

你的程序的第一个cond中的while后面紧跟的就是(setvar "osmode" 1)这当然就作为判断条件了。。。
 楼主| 发表于 2003-12-5 19:02:00 | 显示全部楼层
飞哥 程序GH我已经修改好了 按照你的提示 找出了错误所在 是我平时编程不细心导致的结果!谢谢飞哥的帮助! 还有问题就是31楼的问题 和34楼的问题 恳请帮助!!
发表于 2003-12-5 19:10:00 | 显示全部楼层
mslide创建幻灯片,34楼是我的话,不知道你要问什么
 楼主| 发表于 2003-12-5 19:25:00 | 显示全部楼层
对不起飞哥 我搞错了 我说的是33楼和31楼 你都已经解决了 谢谢飞哥
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 08:42 , Processed in 0.170856 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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