明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1593|回复: 5

[基础] 语句含义求助vl-cmdf

[复制链接]
发表于 2011-4-3 20:49:02 | 显示全部楼层 |阅读模式
各位大侠,我在一个自动编号程序中看到了这个函数,但是不懂得它的含义,求教个位,(vl-cmdf ".copy" a "" ""  p1 p2),p1,p2是两个点,谢过了
发表于 2011-4-3 21:05:38 | 显示全部楼层
vl-cmdf 功能同command:

语法

   (vl-cmdf  [arguments] ...)

功能

    执行 AutoCAD 命令

说明

     1)l-cmdf 函数和 command 函数类似,但在求值传递的参数方面有所不同。

         a)vl-cmdf 函数在执行 AutoCAD 命令之前检查所有的描述参数,如果在这一过程中检测到错误,将不再执行AutoCAD命令。

         b)  command 函数将每个参数顺序传递给 AutoCAD,所以在发现错误之时命令可能已开始执行了。

         c)   如果对命令的调用中包含对其他函数的调用,则 vl-cmdf 在执行命令之前先进行函数调用。而 command 则在开始执行命令后执行定函数调用。

        d )  有些命令在通过 vl-cmdf 调用时表现正常,而在通过 command 调用时则会失败。

        vl-cmdf 函数主要突破了在 command 中不能使用 getxxx 的限制。

   2 ) 参数 arguments 是AutoCAD 命令及选项。

       a)根据执行命令提示的要求,arguments 参数可以为字符串、实数、整数或点。空字符串和按 ENTER 键的效果一样。不带参数调用 vl-cmdf 和按 ESC 的效果一样,可以取消大多数 AutoCAD 命令。

       b)如果在 Visual LISP 中执行 vl-cmdf,焦点不会转换到 AutoCAD 窗口中。若命令要求用户输入,则返回值 (T) 将出现在控制台窗口中,但 AutoCAD 继续等待输入。此时,必须手动激活 AutoCAD 窗口来响应提示。但在这之前,将停止执行任何后续命令。

   返回值:

        T

   样例:

       加深 command 和 vl-cmdf 的区别,在 AutoCAD 命令提示行(而不是 VLISP 控制台提示)输入下列代码:

       1)使用 command 时,先执行 LINE 命令,然后再调用 getpoint 函数。

     

        命令:(command "line" (getpoint " getpoint ") '(0 0) "")

            line 指定第一点:getpoint

            指定下一点或 [放弃(U)]:

        命令:nil

       2)使用 vl-cmdf 时,先调用 getpoint 函数,然后再执行 LINE 命令。

        命令:(VL-CMDF "line" (getpoint "getpoint!") '(0 0) "")

                         getpoint!line 指定第一点:

              指定下一点或 [放弃(U)]:

        命令:T

3)由于向 LINE 命令传递了一个无效点表,command 函数将每个参数依次传递给 AutoCAD,而并不计算参数,所以不能检测到无效的点表,函数被取消。

命令:(command "line" (getpoint "getpoint?") '(0) "")

line 指定第一点:point?

指定下一点或 [放弃(U)]:

命令:ERASE nil

选择对象:指定对角点:*取消*

找到 0 个

命令:(VL-CMDF "line" (getpoint "getpoint!") '(0) "")

getpoint!应用程序错误: 发送到 ads_cmd 的类型无效。

nil

这是因为  vl-cmdf 在传递命令前先计算每个参数,所以检测到了无效点表,不再继续执行命令。



回复 支持 1 反对 0

使用道具 举报

发表于 2011-4-3 21:04:41 | 显示全部楼层
与ACAD中COPY命令一样。
发表于 2011-4-3 21:04:51 | 显示全部楼层
是内建函数 2000+
Executes an AutoCAD command

Arguments

(vl-cmdf [arguments] ...)

帮助内详
 楼主| 发表于 2011-4-3 22:44:59 | 显示全部楼层
回复 Gu_xl 的帖子

非常感谢
发表于 2011-4-4 12:56:50 | 显示全部楼层
   跟着了解一下.....
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-16 13:23 , Processed in 0.166693 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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