找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 916|回复: 6

[求助] [求助]:请高手指点,急!

[复制链接]
发表于 2008-1-9 08:41:43 | 显示全部楼层 |阅读模式

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

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

×
这是个计算线路方位角的小程序,代码:
(defun c:xlfwj(/ umask_s p0 p1 p2 p3 p4 p5 h h0 h1 h2 h3 h4 d ft tt tt1 hd)
(if (null ia)(setq ia 1))
(command "osnap" "int,end" "")
(setq j1 (getpoint"\n请选择坐标系原点:"))
(setq j2 (getpoint"\n请选择坐标系E方向:"))
(setq j3 (getpoint"\n请选择坐标系N方向:"))
(command "ucs" "3" j1 j2 j3)
(command "-layer" "make" "123" "c" "white" "123" "" "")
(setq p0 (getpoint"\n画平行线路直线起点(小里程)"))
(setq p1 (getpoint"\n终点(大里程)"))
(command "osnap" "off" "")
(command "line" p0 p1 "")
(command "list" (ssget "L") "")
(command "-layer" "set" "0" "" "")
)

我现在想添加一个判断语句,以实现:Y 则全部执行,N 则直接执行画平行线路直线起点(小里程),我试写了一下,但提示有错,请高手指点一下,非常感谢!我试写的如下:
(defun c:xlfwj(/ umask_s p0 p1 p2 p3 p4 p5 h h0 h1 h2 h3 h4 d ft tt tt1 hd)
(if (null ia)(setq ia 1))
(command "osnap" "int,end" "")
(setq y (getstring 1"\n新标注范围吗?<N>:"))
(IF (OR (= "Y" Y) (= "y" y))
(PROGN (setq j1 (getpoint"\n请选择坐标系原点:"))
(setq j2 (getpoint"\n请选择坐标系E方向:"))
(setq j3 (getpoint"\n请选择坐标系N方向:"))
(command "ucs" "3" j1 j2 j3)
(command "-layer" "make" "123" "c" "white" "123" "" "")
(if (not(setq p0 (getpoint"\n画平行线路直线起点(小里程)")))
(setq p1 (getpoint"\n终点(大里程)"))
(command "osnap" "off" "")
(command "line" p0 p1 "")
(command "list" (ssget "L") "")
(command "-layer" "set" "0" "" "")
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 10402个

财富等级: 富甲天下

发表于 2008-1-9 12:20:02 | 显示全部楼层
少了几个括弧。
[php]
(defun c:xlfwj(/ umask_s p0 p1 p2 p3 p4 p5 h h0 h1 h2 h3 h4 d ft tt tt1 hd)
(if (null ia) (setq ia 1))
(command "osnap" "int,end" "")
(setq y (getstring 1"\n新标注范围吗?:"))
(IF (OR (= "Y" Y) (= "y" y)) (progn
  (setq j1 (getpoint"\n请选择坐标系原点:"))
  (setq j2 (getpoint"\n请选择坐标系E方向:"))
  (setq j3 (getpoint"\n请选择坐标系N方向:"))
  (command "ucs" "3" j1 j2 j3)
  (command "-layer" "make" "123" "c" "white" "123" "" "")
  (if (not (setq p0 (getpoint "\n画平行线路直线起点(小里程)"))) (progn
   (setq p1 (getpoint "\n终点(大里程)"))
   (command "osnap" "off" "")
   (command "line" p0 p1 "")
   (command "list" (ssget "L") "")
   (command "-layer" "set" "0" "" "")
  ))
))
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 10402个

财富等级: 富甲天下

发表于 2008-1-9 12:43:57 | 显示全部楼层
书写规范些就不会出这样的错误了。
[php]
(defun c:xlfwj (/ umask_s p0 p1 p2 p3 p4 p5 h h0 h1 h2 h3 h4 d ft tt tt1 hd)
(if (null ia) (setq ia 1))
(command "osnap" "int,end" "")
(setq y (getstring 1 "\n新标注范围吗?:"))
(if (= (strcase Y) "Y") (progn
  (setq j1 (getpoint "\n请选择坐标系原点:"))
  (setq j2 (getpoint "\n请选择坐标系E方向:"))
  (setq j3 (getpoint "\n请选择坐标系N方向:"))
  (command "ucs" "3" j1 j2 j3)
  (command "-layer" "make" "123" "c" "white" "123" "" "")
  (if (not (setq p0 (getpoint "\n画平行线路直线起点(小里程)"))) (progn
   (setq p1 (getpoint "\n终点(大里程)"))
   (command "osnap" "off" "")
   (command "line" p0 p1 "")
   (command "list" (ssget "L") "")
   (command "-layer" "set" "0" "" "")
  ))
))
(princ)
)
[/php]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-9 14:29:02 | 显示全部楼层
很感谢zxq0220 哈!
我刚开始接触lisp语言,有好多不规范的地方,还请多多指导哈!

我试了下你发的代码,还是不行,不知道什么原因?
多谢哈,在线等你!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-9 14:36:23 | 显示全部楼层
很感谢zxq0220 哈!
我刚开始接触lisp语言,有好多不规范的地方,还请多多指导哈!

我试了下你发的代码,还是不行,不知道什么原因?
多谢哈,在线等你!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-1-10 10:26:01 | 显示全部楼层

  1. ;;;这是个计算线路方位角的小程序.carrot1983 2008-1-10 改写
  2. ;;;我个人觉得这个思路不太好。。哪里有得到方位角啊???
  3. ;;;代码:
  4. (defun c:tt (/ CLA KW OSM PE PN PO PQ PZ)
  5.   ;;初始设置
  6.   ;;++++++++++
  7.   (setq osm (getvar "osmode")) ;_获取初始对象捕捉
  8.   (setq cla (getvar "clayer")) ;_获取初始图层
  9.   (setvar "osmode" 33) ;_设置当前捕捉为end和int
  10.   ;;如果不存在白色图层123,则建立白色图层123
  11.   (if (not (tblsearch "layer" "123"))
  12.     (command "-layer" "m" "123" "c" 7 "123" "")
  13.   )
  14.   (setvar "clayer" "123") ;_设置当前图层为123

  15.   ;;++++++++++
  16.   (if (and (setq po (getpoint "\n请选择坐标系原点<退出>:"))
  17.            (setq pe (getpoint po "\n请选择坐标系E方向<退出>:"))
  18.            (setq pn (getpoint po "\n请选择坐标系N方向<退出>:"))
  19.       )
  20.     (progn
  21.       ;;以下用initget和getkword取得关键字Yes/No的值
  22.       ;;------------
  23.       (initget "Yes No")
  24.       (setq kw
  25.              (getkword
  26.                "\n选项:[Yes/No]<Y>:"
  27.              )
  28.       )
  29.       (if (null kw)
  30.         (setq kw "yes")
  31.       )
  32.       (setq kw (strcase kw t))
  33.       ;;------------
  34.       ;;以下进行Yes/No返回值进行相应的条件判断
  35.       ;;============
  36.       (if (= kw "yes")
  37.         (progn
  38.           (command "ucs" "3" po pe pn) ;_改变座标系
  39.         )
  40.       )
  41.       ;;============
  42.       (setq pq (getpoint "\n画平行线路直线起点(小里程)<退出>:"))
  43.       (setq pz (getpoint pq "\n终点(大里程)<退出>:"))
  44.       (command "line" pq pz "")
  45.       (command "list" "L" "")
  46.       (command "ucs" "w") ;_还原UCS座标系
  47.     )
  48.     (alert "完蛋啦- -")
  49.   )
  50.   ;;结束设置
  51.   ;;++++++++++
  52.   (setvar "osmode" osm) ;_还原初始对象捕捉
  53.   (setvar "clayer" cla) ;_还原初始图层
  54.   ;;++++++++++
  55.   (princ)
  56. )
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-1-22 19:55:19 | 显示全部楼层
还是一楼同样的问题,请大家帮帮忙,苦等!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 23:30 , Processed in 0.271110 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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