明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4648|回复: 8

cmdla0,cmdla1是什么意思?

[复制链接]
发表于 2010-5-12 17:33:00 | 显示全部楼层 |阅读模式

在网上下载了一些LISP的程序,运行时都出现“错误: no function definition: CMDLA0”。我LISP只学到选择集就没学下去了。百度一下好像cmdla0,cmdla1是前置函数和后置函数,要什么通用函数。高手给一个通用函数的下载地址,还有我下载的LISP程序有蛮多,每个好像都调用了通用函数,这样我每使用一个函数就要下载一个相应本程序的通用函数吗,还是下载的通用程序里全部包括了,不需要每次专门下载。

还有我知道,我用CAD的“工具选项板”上拖拽出来的块程序,能不能也用LISP命令实现。INSERT命令只能调用本图形中的块,“工具选项板”中的块都是其它图形文件中的块,INSERT这个命令这时就无能为力了。

发表于 2010-5-12 17:51:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2010-5-13 08:44:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| 发表于 2010-5-13 11:07:00 | 显示全部楼层

答非所问啊,童鞋们。高手还没来解惑?

发表于 2010-5-13 15:34:00 | 显示全部楼层

这两个函数是自定义函数

可以下载学院派工具箱,就可以使用相关程序了
 楼主| 发表于 2010-5-14 09:23:00 | 显示全部楼层

不喜欢下载工具箱之类的程序,因为下载后好多命令用不上。一般只下载些自己用的上的,再修改一下。

发表于 2010-5-15 09:02:00 | 显示全部楼层
xyp1964有些通用函数是公开的,可以找到的。
贴于下,仅供参考。不算侵权吧
  1. ;;; ================================================================== ;;; 通用子程序 ;;; ------------------------ cmdla0 ------------------------- ;;; ------------------------ cmdlasc0 ----------------------- ;;; 保存用户系统变量 ;;; 方式 : (cmdla0) ;;; ================================================================== (defun cmdlasc0 () (cmdla0) (if (null sc) (setbl) ) ) (defun cmdla0 () (defun *error* (msg) (princ "错误 : ") (princ msg) (cmdla1) ) (setq **sysvarnl** ’("AUNITS" "AUPREC" "ATTDIA" "BLIPMODE" "CECOLOR" "CELTYPE" "CLAYER" "CMDECHO" "DIMZIN" "EXPERT" "HIGHLIGHT" "LUNITS" "LUPREC" "OSMODE" "ORTHOMODE" "TEXTSTYLE" "PLINEWID" "dimdec" "dimadec" "regenmode" "pickbox" ) #time1 (rtos (getvar "cdate") 2 16) start-time (substr (rtos (getvar "cdate") 2 16) 7) ) (setierr) (command "ucs" "") (command ".undo" "BE") (princ) ) (defun setierr (/ sv) (if (= ’list (type *error*)) (alert "错误:最后一个(SetIErr)函数没有配对的(ReErr)!") (progn (setq **svarl** ’()) (foreach sv **sysvarnl** (setq **svarl** (cons (getvar sv) **svarl**)) ) (foreach sv ’("ATTDIA" "BLIPMODE" "CMDECHO" "ORTHOMODE" "DIMZIN" "plinewid" "regenmode" ) (setvar sv 0) ) (setvar "ATTREQ" 1) (setvar "EXPERT" 5) (setvar "pickbox" 5) (setvar "pickadd" 1) (setvar "aperture" 5) (defun-q *error* (st) (reerr)) ) ) ) (defun reerr () (if (= ’list (type *error*)) (progn (mapcar ’setvar **sysvarnl** (reverse **svarl**) ) (setq *error* nil) (setvar "modemacro" ".") ) ) )
  2. ;;; ================================================================== ;;; ------------------------ cmdla1 ------------------------- ;;; 恢复用户系统变量 ;;; 方式 : (cmdla1) ;;; ================================================================== (defun cmdla1 () (command ".undo" "E") (command "ucs" "") (reerr) (princ) )
[/code]
 楼主| 发表于 2010-5-15 16:24:00 | 显示全部楼层

还有我知道,我用CAD的“工具选项板”上拖拽出来的块程序,能不能也用LISP命令实现。INSERT命令只能调用本图形还有我知道,我用CAD的“工具选项板”上拖拽出来的块程序,能不能也用LISP命令实现。INSERT命令只能调用本图形中的块,“工具选项板”中的块都是其它图形文件中的块,INSERT这个命令这时就无能为力了。中的块,“工具选项板”中的块都是其它图形文件中的块,INSERT这个命令这时就无能为力了。

这个问题怎么解决?

发表于 2010-6-6 10:38:00 | 显示全部楼层
那是自定义函数,猜想是一些设置的吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 03:33 , Processed in 0.168609 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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