来自键盘快捷键的宏
大家好,我有一个宏
^C^C^P(if(=C:FLXDCT nil)(负载(strcat dct\u drltr)/dct10/FLXDCT”))(原理)^PFLXDCT
单击工具栏中的图标即可运行。我想从一个键盘快捷键中调用它-比如说N-(似乎不用于其他任何事情)。
理想情况下,我希望将此宏标记到AutoLisp的末尾,但这可能是另一天的任务。
已经在CUI中尝试了自定义键盘快捷键,但它们似乎都需要shift键或ctrl键的组合。
任何反馈都将受到极大的赞赏。
戴夫 我能看到的最简单的方法:
(defun c:n nil
(or c:flxdct (load (strcat dct_drltr "/dct10/flxdct") nil))
(if c:flxdct (c:flxdct))
) 李·麦克再次请客。谢谢你
我该如何标记到这个lisp的末尾?
(defun c:FF (/ *error* LastEntity OldLayoer pt eLast ent)
;;
(defun *error* ( msg )
(and OldLayer (setvar "CLAYER" OldLayer))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ))
(setq LastEntity (entlast) OldLayer (getvar "CLAYER"))
(or (tblsearch "LAYER" "flex-cr")
(command "_.-layer" "_M" "flex-cr" ""))
;;
(setvar 'filletrad
(cond ((getdist (strcat "\nSpecify radius of flex bends <" (rtos (getvar 'filletrad)) ">: ")))
((getvar 'filletrad))
)
)
(if (setq pt (getpoint "\nSpecify start point: "))
(progn
; (setq eLast (entlast))
(setvar "CLAYER" "flex-cr")
(command "_.pline" "_non" pt)
(while (= 1 (logand (getvar 'cmdactive) 1))
(princ "\nSpecify next point: ")
(command PAUSE)
)
(or (equal eLast (setq ent (entlast)))
(command "_.fillet" "_P" ent)
)
)
)
(setvar "CLAYER" OldLayer)
(princ)
)
.
此lisp创建了弹性线。口齿不清沿着它放了一条之字形的线。
这将是伟大的有这一切在一个打击。
我以为我认出了
http://www.cadtutor.net/forum/showthread.php?44009-宏p=327191&viewfull=1#post327191 我想最简单的方法是这样:
(defun c:FF ( / *error* LastEntity OldLayoer pt ent )
(defun *error* ( msg )
(and OldLayer (setvar "CLAYER" OldLayer))
(or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
(princ (strcat "\n** Error: " msg " **")))
(princ)
)
(setq LastEntity (entlast) OldLayer (getvar "CLAYER"))
(or (tblsearch "LAYER" "flex-cr")
(entmake
(list
(cons 0 "LAYER")
(cons 100 "AcDbSymbolTableRecord")
(cons 100 "AcDbLayerTableRecord")
(cons 2 "flex-cr")
(cons 70 0)
)
)
)
(setvar 'filletrad
(cond
(
(getdist (strcat "\nSpecify radius of flex bends <" (rtos (getvar 'filletrad)) ">: "))
)
( (getvar 'filletrad) )
)
)
(if (setq pt (getpoint "\nSpecify start point: "))
(progn
(setvar "CLAYER" "flex-cr")
(command "_.pline" "_non" pt)
(while (= 1 (logand (getvar 'cmdactive) 1))
(princ "\nSpecify next point: ")
(command pause)
)
(or (equal LastEntity (setq ent (entlast)))
(command "_.fillet" "_P" ent)
)
)
)
(setvar "CLAYER" OldLayer)
(princ)
(or c:flxdct (load (strcat dct_drltr "/dct10/flxdct") nil))
(if c:flxdct (c:flxdct))
) 你又一次来救援了。谢谢你
我试图在代码的底部添加函数,然后在另一个lisp完成后调用n函数,但无论我以何种方式尝试,都会不断出现错误。
谁会想到简单地将代码添加到底部呢。 嗯,这不是实现它的理想方式,但我没有其他代码来整合它。
只要行得通我想
页:
[1]