找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 839|回复: 6

[求助] [求助]:如何用lisp实现类似 _tan 的操作?

[复制链接]
发表于 2005-8-22 15:10:12 | 显示全部楼层 |阅读模式

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

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

×
CAD的对象捕捉工具栏上的按钮点击后出现的命令如: _tan, _endp等 只有在命令过程中使用才有效, 这在lisp中如何实现呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 11306个

财富等级: 富甲天下

发表于 2005-8-22 15:32:47 | 显示全部楼层
(SETVAR "OSMODE" <数值>)
数值取值(可以叠加):
   1=端点      2=中点      4=中心点
   8=结点     16=象限点   32=交叉点
  64=插入点  128=垂直点  256=切点
512=最近点 1024=快速   2048=外观交点
4096=延伸   8192=平行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-22 15:37:24 | 显示全部楼层
二楼的答案不是我想要的!

我的意思是像 _tan , _endp 等不是一般的系统命令, 它们只在命令内部才能用!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11306个

财富等级: 富甲天下

发表于 2005-8-22 15:42:36 | 显示全部楼层
是这样吗?
(command "_.line" "_tan" pause "_end" pause "")
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-22 15:44:53 | 显示全部楼层
不是!

我的意思是我想写一个lisp的程序, 这个程序只能在命令内部使用, 就像_tan一样!


Command: _tan
Unknown command "TAN".  Press F1 for help.


Command: l
LINE Specify first point: _tan
to
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 11306个

财富等级: 富甲天下

发表于 2005-8-22 15:56:38 | 显示全部楼层
不好办。一般在ACAD命令中调用LISP命令只能用(命令名)形式,而且这个LISP命令中还不能用COMMAND函数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2005-8-23 10:44:40 | 显示全部楼层
你说的是透明命令!对于透明命令调用是在命令状态用单引号'调用
如: 'cal
好象是在加载时实现的吧。

语法

     (vlax-add-cmd global-name func-sym [local-name cmd-flags])

功能

      将命令添加到 AutoCAD 内置命令集中

 

说明

1)使用 vlax-add-cmd 可以将函数定义为 AutoCAD 命令,而无需在函数名中使用 c: 前缀。

2)使用 vlax-add-cmd 可以定义透明 AutoLISP 命令,而 c: 函数,是不可能实现的。

3)vlax-add-cmd 函数使某个 AutoLISP 函数在当前 AutoCAD 任务中作为 ObjectARX 类型的命令,在 AutoCAD 命令行提示中使用。

4)vlax-add-cmd 函数提供了对 ObjectARX acedRegCmds 宏的访问,从而提供了一个到 ObjectARX 系统 AcEdCommandStack 对象的指针。

5)vlax-add-cmd 函数自动将命令指定到命令组。当文档名称空间发出命令时,vlax-add-cmd 将命令添加到组 doc-ID。doc-ID 是标识文档的十六进制值。当独立名称空间 VLX 发出命令时,vlax-add-cmd 将命令添加到组 VLC-Ddoc-ID:VLX-name。这里 VLX-name 是发出 vlax-add-cmd.的应用程序名。

6)不能使用 vlax-add-cmd 显露创建反应器对象的函数,也不能用它来显露反应器的回调函数。

7)参数 global-name 为字符串。

8)参数 func-sym 为符号,指定不带参数的 AutoLISP 函数。

9)参数 local-name 为字符串(默认值为 global-name)。

10)cmd-flags 为整数型(默认值为 ACRX_CMD_MODAL + ACRX_CMD_REDRAW)。

   主要标志有:

       ACRX_CMD_MODAL (0)  在使用其他命令时不能调用该命令。

       ACRX_CMD_TRANSPARENT (1)  在使用其他命令时可以调用该命令。

   二级标志有:

       ACRX_CMD_USEPICKSET (2)  检索选择优先集时,在 AutoCAD 中清除设置。命令能够获取             优先集,但不能检索或设置夹点。

       ACRX_CMD_REDRAW (4)  检索选择优先集或夹点集时,不将它们从 AutoCAD 中清除。命令可获取优先集和夹点集。

11)若同时设置了 ACRX_CMD_USEPICKSET 和 ACRX_CMD_REDRAW,那么效果和仅设置 ACRX_CMD_REDRAW 一样。

12)关于标志的详细信息,请参见 ObjectARX Reference 手册中的“Command Stack”。

返回值:

如果成功则返回 global-name 参数。如果 acedRegCmds->addCommand(...) 返回错误条件,则函数返回 nil。

范例

下例中的 hello-autocad 函数没有 c: 前缀,但 vlax-add-cmd 将其作为 ObjectARX 类型的命令显示在 AutoCAD 命令行提示:

_$ (defun hello-autocad () (princ "hello Visual LISP"))

HELLO-AUTOCAD

_$ (vlax-add-cmd "hello Visual LISP" 'hello Visual LISP)

"hello Visual LISP"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-28 12:53 , Processed in 0.313896 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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