在第 6 课中,您将回调函数挂接到反应器事件。由于它目前存在,该函数显示一些消息并初始化两个全局变量,和,to。gp:command-will-start:vlr-commandWillStart*polyToChange**reactorsToRemove*nil
向 gp:命令将启动回调函数添加功能
- 打开你的gpreact.lsp文件。
- 在函数中,通过修改函数调用将两个变量添加到函数调用中,如下所示:gp:command-will-startsetq
;; Reset all four reactor globals to nil.
(setq *lostAssociativity* nil
*polyToChange* nil
*reactorsToChange* nil
*reactorsToRemove* nil)
- 将剩余的代码(直到最后一个函数调用)替换为以下代码:gp:command-will-startprinc
(if (member (setq currentCommandName (car command-list))
'("U" "UNDO" "STRETCH"
"MOVE" "ROTATE" "SCALE"
"BREAK" "GRIP_MOVE" "GRIP_ROTATE"
"GRIP_SCALE" "GRIP_MIRROR")
) ;_ end of member
(progn
(setq *lostAssociativity* T)
(princ "\nNOTE: The ")
(princ currentCommandName)
(princ " command will break a path's associativity .")
) ;_ end of progn
) ;_ end of if
此代码检查用户是否发出了破坏磁贴和路径之间关联性的命令。如果用户发出这样的命令,程序将设置全局变量并警告用户。*lostAssociativity*
在试验花园路径应用程序时,您可能会发现其他编辑命令,这些命令可能会修改花园路径并导致关联性丧失。将这些命令添加到带引号的列表中,以便用户知道将会发生什么。当此函数触发时,用户已启动命令,但尚未选择要修改的任何实体。用户仍然可以取消命令,保持原样。
|