添加新的反应器功能
在第 6 课中,您将回调函数挂接到 reactor 事件。由于它当前存在,该函数显示一些消息并初始化两个全局变量,并且 到 。gp:command-will-start:vlr-commandWillStart*polyToChange**reactorsToRemove*nil
向 gp:command-will-start 回调函数添加功能
- 打开 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*
在试验花园路径应用程序时,您可能会发现其他编辑命令,这些命令可以修改花园路径并导致关联性丢失。将这些命令添加到引号列表中,以便用户了解将发生的情况。当此函数触发时,用户已启动命令,但尚未选择任何要修改的实体。用户仍然可以取消命令,保持不变。
|