找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 3734|回复: 6

[飞鸟集] 未公开的LISP函数用法讨论

[复制链接]

已领礼包: 8121个

财富等级: 富甲天下

发表于 2013-5-7 13:13:28 | 显示全部楼层 |阅读模式

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

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

×
函数:
seturl
geturl

设置链接在一个实体上,或者获取链接。
例如:
[pcode=lisp,true](defun c:test1 (/ e)
  (if (setq e (car (entsel "\nSelect Object to Add Hyperlink to: ")))
    (seturl e "http://www.google.co.uk")
  )
  (princ)
)
(defun c:test2 (/ e)
  (if (setq e (car (entsel "\nSelect Object to Add Hyperlink to: ")))
    (vla-add (vla-get-hyperlinks (vlax-ename->vla-object e))
             "http://www.google.co.uk"
    )
  )
  (princ)
)

[/pcode]---------------------------------------------------

vl-bt
vl-bt-on
vl-bt-off


错误跟踪:
(defun c:ttt ( / *ERROR* )
(defun *ERROR* (ERROR )
  (vl-bt)
)

(+ 12 "asd")
)

运行后:
error.jpg


---------------------------------------------------
(vl-infp)
判断一个数是否无穷大?
譬如(vl-infp 333)  返回nil
(vl-infp 1e2222) 返回T
(vl-nanp)
---------------------------------------------------
(vlisp-* )是一系列函数
譬如vlisp-compile, vlisp-load-project
---------------------------------------------------
bherrs
In R14, (bherrs) could be used to check if the (c:bpoly) function
successfully generated a boundary.
---------------------------------------------------
fnsplitl
_$ (fnsplitl "c:\\path\\filename.ext")
("C:\\path\\" "filename" ".ext")


---------------------------------------------------
xstrcase
这个跟strcase有什么区别?
---------------------------------------------------

这些函数我暂时不知道它们的用法和用途,希望大家讨论一下,



待续...






评分

参与人数 1D豆 +5 收起 理由
炫翔 + 5 出题引导交流奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2013-5-7 14:41:40 | 显示全部楼层
vlisp-compile 这个好像是用来命令行编译的
vl-init 大概是R14时用来初始化 Vl 环境的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6468个

财富等级: 富甲天下

发表于 2013-5-7 15:30:35 | 显示全部楼层
密切关注。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-7 19:24:24 | 显示全部楼层
本帖最后由 Free-Lancer 于 2013-5-7 19:26 编辑

*push-error-using-stack* (AutoLISP) 2014
Error-handling function that indicates the use of variables from the AutoLISP stack within a custom *error* handler.           
                (*push-error-using-stack*)
Allows access to the local AutoLISP variables on the stack defined within the function where the error occurred from your                  custom error handler. A call to the *push-error-using-stack* function overrides a previous call to *push-error-using-command*.                 
If *push-error-using-command* or *push-error-using-stack* are not called, by default AutoLISP works as if *push-error-using-stack* was called.                 
NoteThis function cannot be used when the command function is used with in a custom *error* handler.                    

Return Values                 
A value of T is returned. [pcode=lisp,true](setq var1 "Global1"      ; Set some global variables
      var2 "Global2")

(defun mySub_err (err_msg)
    (if (/= err_msg "Function cancelled")
      (progn
        (prompt (strcat "\nError: " err_msg))
        (prompt (strcat "\nLocalSub1: " var1))
        (prompt (strcat "\nLocalSub2: " var2))
        (terpri)
      )
    )

    (command-s "._undo" "_e")
    (command-s "._U")  
    (setq *error* olderr)
  (princ)
)

(defun subUtil (val / olderr var1 var2)
    (*push-error-using-stack*)         ; Indicates if the custom error handler has access to local
                                       ; variables defined in his function

    (setq olderr *error*
          *error* mySub_err)

    (command "._undo" "_group")        ; The following will not be executed in this sample, but is good
                                       ; framework for setting up your own error handlers

    (setq var1 "Sub1"                  ; Set some local variables
          var2 "Sub2")
  
    ;; Perform your tasks here
    (strcat "Foo" val)
  
    (command "._undo" "_e")
    (setq *error* olderr)              ; Restore old *error* handler
    (*pop-error-mode*)                 ; End the use of *push-error-using-command*  
)

(defun my_err (err_msg)
    (if (/= err_msg "Function cancelled")
      (progn
        (prompt (strcat "\nError: " err_msg))
        (prompt (strcat "\nLocal1: " var1))
        (prompt (strcat "\nLocal2: " var2))
        (terpri)
      )
    )

    (command "._undo" "_e")
    (command "._U")
    (setq *error* olderr)
  (princ)
)

(defun myUtil (val / var1 var2)
    (setq olderr *error*
          *error* my_err)

    (*push-error-using-command*)       ; Indicate use of Command function instead of Command-s
                                       ; in the custom error handler
  
    (setq var1 "Local1"                ; Set some local variables
          var2 "Local2")

    (command "._undo" "_group")        ; The following will not be executed in this sample, but is good
                                       ; framework for setting up your own error handlers
  
    (subUtil val)                      ; Call to a custom function that uses *push-error-using-stack*
  
    (/ 1 0)                            ; Call a function with incorrect values to trigger the custom error handler
                                       ; Remove when setting up your code
   
    ;; Perform your tasks here
  
    (command "._undo" "_e")
    (setq *error* olderr)              ; Restore old *error* handler
    (*pop-error-mode*)                 ; End the use of *push-error-using-command*  
[/pcode]



点评

这个错误处理函数怎么调用?有实例吗?  详情 回复 发表于 2016-6-2 14:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1757个

财富等级: 堆金积玉

发表于 2013-5-9 07:56:32 | 显示全部楼层
我也不知道 关注中
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-9 20:44:07 | 显示全部楼层
非常赞的内容!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 315个

财富等级: 日进斗金

发表于 2016-6-2 14:30:32 | 显示全部楼层
Free-Lancer 发表于 2013-5-7 19:24
*push-error-using-stack* (AutoLISP) 2014
Error-handling function that indicates the use of variabl ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 14:59 , Processed in 0.473514 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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