明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1427|回复: 5

菜鸟求助 帮我看看这段小程序

[复制链接]
发表于 2003-10-11 17:03:00 | 显示全部楼层 |阅读模式
帮我看看这段小程序

;;;插入图块的函数 ap:insertBLK
;;;
;; 读入图块名称,要插入的位置
;; 将指定图块插入指定位置
;; 输出信息:已经插入。

(defun ap:insertBlk(/ BlkName BlkPt BlkScaleX BlkScaleY BlkRot)
  ;将点表BlkPt转换为字符串用于command命令
  (setq Point(strcat car(BlkPt) "," cadr(BlkPt) "," caddr(BlkPt)))
  ;插入图块命令
  (command "_.insert" BlkName Point BlkScaleX BlkScaleY BlkRot)
  ;提示姓习
  (princ "ap:insertBlk Ok!")
)

;为insertBlk赋值
(defun def()
  ;设定插入点
  (setq BK(list 0 0 0))
  ;赋值
  (ap:insertBlk("w.dwg" BK 1 1 1 2))
)

语法检查时提示:
[CHECKING TEXT INSERTBLK.LSP loading...]
.
; *** WARNING: local variable used as function: BLKPT
; *** WARNING: local variable used as function: BLKPT
; *** WARNING: local variable used as function: BLKPT
.
; Check done.

这是怎么回事啊,我没有设定BLKPT为函数啊 呜呜呜
 楼主| 发表于 2003-10-11 17:21:00 | 显示全部楼层
啊 这个问题解决了,是car函数格式的问题

可是又有新的问题了
;赋值
  (ap:insertBlk("w.dwg" BK 1 1 1 2))

语法检查说
; *** ERROR: bad function in expression: ("w.dwg" BK 1 1 ... )
 楼主| 发表于 2003-10-11 17:24:00 | 显示全部楼层
还是不行啊,怎么办那。
 楼主| 发表于 2003-10-11 18:06:00 | 显示全部楼层
哦 原来是我的argument没有 都当作参数来用了,呵呵。
发表于 2003-10-12 15:14:00 | 显示全部楼层
一个人闹着玩呢 !

point没必要转成字符的.

难道你的cad上(setq Point(strcat car(BlkPt) "," cadr(BlkPt) "," caddr(BlkPt)))不出错?
发表于 2003-10-12 16:03:00 | 显示全部楼层
回楼主:
主要是你对LISP的函数使用还没习惯过来,可能其他程序用多了,
一般别的程序都是这样调用函数:
函数名(参数1,参数2。。。)
而LISP调用函数为
(函数名 参数1 参数2 。。。)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 14:36 , Processed in 0.176235 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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