明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 982|回复: 9

[LISP群(2)] 2013-09-12 明经 AutoLISP 编程②(177027547) 群聊记录:set与setq有何区别?是不是可以相互替换啊?

 关闭 [复制链接]
发表于 2013-9-12 09:26:35 | 显示全部楼层 |阅读模式
[958620832]仁者 09:26:35
set与setq有何区别?是不是可以相互替换啊?
 楼主| 发表于 2013-9-12 11:13:15 | 显示全部楼层
梅花 11:13:15
(defun c:rect1 (/ p1 p2 p3 p4)
  (graphscr)
  (setvar "cmdecho" 0)
  (prompt "  rect1 command drows a rectangle") 
  (setq p1 (getpoint "  enter first corner")) 
  (setq p3 (getpoint "  enter opposite corner")) 
  (setq p2 (list (car p3) (cdr p1)))
  (setq p4 (list (car p1) (cdr p3)))
  (command "line" p1 p2 p3 p4 "c")
  (setvar "cmdecho" 1)
  (command)
  (princ)
  )
梅花 11:13:47
以上程序为什么加载后没有画出矩形啊,请帮助
 楼主| 发表于 2013-9-12 11:29:14 | 显示全部楼层
和光同尘 11:29:14
呵呵,四个点怎么会有问题呢
梅花 11:34:02
不知道
梅花 11:34:32
你认为问题出在什么哪里啊
梅花 11:35:32
如果有时间你帮助我加载一下看看
谢谢
 楼主| 发表于 2013-9-12 12:53:25 | 显示全部楼层
[ZZXXQQ] 12:53:25
(defun c:5test1()
 ;以下 pa、ww、kk 值须由使用者输入
 (setq pa (getpoint "请输入直角三角形左下角点:"))
 (setq ww (getreal  " 请输入直角三角形底边长度:"))
 (setq kk (getreal  " 请输入直角三角形斜边长度:"))
   ;以下pb、pc、hh值须由程序依据pa、ww、kk求出
 (setq pb (polar pa 0 ww))
 (setq hh (sqrt (- (* kk kk) (* ww ww))))
 (setq pc (polar pa (/ pi 2) hh))
 (command "line" pa pb pc "c") ;;;用PLINE也可以
   ;以下将三角形二夹角自动求出,并显示在指令区
 (setq ang_pb (atan (/ hh ww)))
 (setq ang_pb (/ (* ang_pb 180) pi))
 (setq ang_pc (- 90 ang_pb))
 (princ " PB的夹角=")(princ ang_pb)(princ "度")
 (princ " PC的夹角=")(princ ang_pc)(princ "度")
 (prin1)
)
(prompt "  >自动直角三角形绘制")
(prin1)
蝴蝶效应 12:53:26
不好意思,刚学没多久
 楼主| 发表于 2013-9-12 15:29:02 | 显示全部楼层
静水流深 15:29:02
程序运行之后能出来结果但是为什么提示命令行会出现 no function definition: RINL
求教各位啊   是不是我程序哪里写错了
[hao3ren]青珩 15:33:37
[qqimg]201309/{5D2CD7AF-B219-997D-B20A-B956E5CDA537}.jpg[/qqimg]这是个毛玩意啊
[影带走流年]静 15:34:44
错误: no function definition: RINL
[hao3ren]青珩 15:36:00
无prinl函数
[影带走流年]静 15:37:11
那个应该是什么啊
[hao3ren]青珩 15:37:38
我哪里知道啊,这不是你的程序吗
[影带走流年]静 15:37:45
是我输入错了啊
这个函数的作用是在程序结束后不出现nil
[hao3ren]青珩 15:38:16
经常用的是princ和print
[影带走流年]静 15:40:00
明白了  恕我输入错了
1和l有出入
[hao3ren]青珩 15:41:08
,不懂
 楼主| 发表于 2013-9-12 16:44:00 | 显示全部楼层
梅花 16:44:00
加载并输入相关参数后,显示 函数错误: 8 如何处理
 楼主| 发表于 2013-9-12 17:01:23 | 显示全部楼层
[958620832]仁者 17:01:23
(cond ((表达式1) (表达式2) (表达式3) (表达式4) (表达式5))),该表达式怎么来解释?
[958620832]仁者 17:08:43
可不可以这样解释,如果表达式1成立,将执行表达式2、表达式3…表达式5?
 楼主| 发表于 2013-9-12 21:08:23 | 显示全部楼层
[ZZXXQQ] 21:08:23
不对
[ZZXXQQ] 21:09:14
解释是表达式1成立后顺序运行后面的表达式
蝴蝶效应 21:11:03
(defun c:rect1 (/ p1 p2 p3 p4)
  (graphscr)
  (setvar "cmdecho" 0)
  (prompt "  rect1 command drows a rectangle") 
  (setq p1 (getpoint "  enter first corner")) 
  (setq p3 (getpoint "  enter opposite corner")) 
  (setq p2 (list (car p3) (cdr p1)))
  (setq p4 (list (car p1) (cdr p3)))
  (command "line" p1 p2 p3 p4 "c")
  (setvar "cmdecho" 1)
  (command)
  (princ)
  )
这个程序请大哥们看看,是那里出问题了
[ZZXXQQ] 21:13:10
(defun c:rect1 (/ p1 p2 p3 p4)
 (graphscr)
 (setvar "cmdecho" 0)
 (prompt "  rect1 command drows a rectangle") 
 (setq p1 (getpoint "  enter first corner")) 
 (setq p3 (getcorner p1 "  enter opposite corner")) 
 (setq p2 (list (car p3) (cadr p1)))
 (setq p4 (list (car p1) (cadr p3)))
 (command "line" p1 p2 p3 p4 "c")
 (setvar "cmdecho" 1)
 (command)
 (princ)
)
 楼主| 发表于 2013-9-12 21:56:10 | 显示全部楼层
扬帆启航 21:56:10
大家好,帮忙看一下这个程序
(defun c:lisp_01()
  (setvar "cedecho"0)
  (setq pt1 (getpoint " 选取图形左下角:"))
  (setq ww (cetdist pt1" 宽度:"))
  (if (null ww)(set ww 100.0))
  (setq hh (getdist pt1" 高度:"))
  (if (null hh)(setq hh 50.0))
  (setq ww3 (/ ww 3))
  (setq hh2 (/ hh 2))
  (setq pt2 (polar pt1 0 ww ))
  (setq pt3 (polar pt2(/ pi 2) hh))
  (setq pt4 (polar pt3 pi ww3))
  (setq pt5 (polar pt4 (* pi 1.5) hh2))
  (setq pt6 (polar pt5 pi ww3))
  (setq pt7 (polar pt6 (pi / 2 ) hh2))
  (setq pt8 (polar  pt7 pi ww3))
  (command  "pline " pt1 pt2  pt3 pt4 pt5 pt6 pt7 pt8 "c")
  (prinl)
)
[still] 21:59:07
好像有好多错别字吧
扬帆启航 21:59:28
加载了。怎么出现 错误: AutoCAD 变量设置被拒绝: "cedecho" 0
梅花 22:00:03
cedecho》cmdecho
[still] 22:00:50
cedecho不知道是什么
[still] 22:01:24
cetdist->getdist
梅花 22:01:36
(setq ww (cetdist>应该是getdist
[ZZXXQQ] 22:04:42
(defun c:lisp_01 ()
  (setvar "cmdecho"0)
  (setq pt1 (getpoint " 选取图形左下角: "))
  (setq ww (getdist pt1 " 宽度:"))
  (if (null ww) (setq ww 100.0))
  (setq hh (getdist pt1 " 高度:"))
  (if (null hh)(setq hh 50.0))
  (setq ww3 (/ ww 3))
  (setq hh2 (/ hh 2))
  (setq pt2 (polar pt1 0 ww ))
  (setq pt3 (polar pt2 (/ pi 2) hh))
  (setq pt4 (polar pt3 pi ww3))
  (setq pt5 (polar pt4 (* pi 1.5) hh2))
  (setq pt6 (polar pt5 pi ww3))
  (setq pt7 (polar pt6 (pi / 2 ) hh2))
  (setq pt8 (polar pt7 pi ww3))
  (command  "pline" pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 "c")
  (prinl)
)
蝴蝶效应 22:10:08
这是一个什么程序呢
扬帆启航 22:11:18
恩恩
扬帆启航 22:11:49
多谢各位啦,
梅花 22:11:54
(prinl)-->princ
梅花 22:12:31
[qqimg]201309/{B945CBD8-9005-7389-6D3E-E8C68421C905}.jpg[/qqimg]
是不是就这么一个图形
扬帆启航 22:14:42
呵呵,是的
梅花 22:15:04
好的
蝴蝶效应 22:19:12
这个不是自动生成的图形吧?
梅花 22:19:45
是啊
[ZZXXQQ] 22:20:02
是根据你选择输入的数据生成的
梅花 22:20:13
对的
蝴蝶效应 22:26:56
那我怎么弄也成不了那个图形呢
[qqimg]201309/{90D5369A-3BC9-6254-8986-A4F6F1FBA1CE}.jpg[/qqimg]
蝴蝶效应 22:31:56
我没有输入,直接回车,说什么函数错误: 3.14159[qqimg]201309/{D69C9190-3D14-74F7-44C7-851E8AC866BE}.jpg[/qqimg]
[ZZXXQQ] 22:32:58
(defun c:lisp_01 ()
  (setvar "cmdecho"0)
  (setq pt1 (getpoint " 选取图形左下角: "))
  (setq ww (getdist pt1 " 宽度:"))
  (if (null ww) (setq ww 100.0))
  (setq hh (getdist pt1 " 高度:"))
  (if (null hh)(setq hh 50.0))
  (setq ww3 (/ ww 3))
  (setq hh2 (/ hh 2))
  (setq pt2 (polar pt1 0 ww))
  (setq pt3 (polar pt2 (/ pi 2) hh))
  (setq pt4 (polar pt3 pi ww3))
  (setq pt5 (polar pt4 (* pi 1.5) hh2))
  (setq pt6 (polar pt5 pi ww3))
  (setq pt7 (polar pt6 (/ pi 2) hh2))
  (setq pt8 (polar pt7 pi ww3))
  (command  "pline" pt1 pt2 pt3 pt4 pt5 pt6 pt7 pt8 "c")
  (prin1)
)
蝴蝶效应 22:34:34
还没有看出来,我刚刚是那里错了
蝴蝶效应 22:35:27
现在对了
扬帆启航 22:42:48
函数错误: 3.14159到底是哪里出问题呀
蝴蝶效应 22:43:40
有可能是某个参数错了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 13:42 , Processed in 0.179000 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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