| 
 | 
 
 本帖最后由 王开鑫55 于 2017-5-30 18:42 编辑  
 
怎样解决command跳出skill?并没有循环,是按钮函数有bug? 
/***********定义FORM!*********/                                                                     
axlCmdRegister("occ" 'actions)                                                                       
                                                                                                     
defun( actions ()                                                                                    
Createform()                                                                                     
)                                                                                                
                                                                                                     
/***********定义FORM!*********/                                                                     
defun( Createform ()                                                                                 
let(()                                                                                           
  formPath = "./orignChange.form"                                                              
  pform = outfile( formPath "w")                                                               
                                                                                               
  ;form 头,可以用f_FormBegin(pform 31 10 "Free Origin" "TOOLWINDOW") f_FormEnd(pform)代替     
                                                                                               
  fprintf(pform "FILE_TYPE=FORM_DEFN VERSION=2\n")                                             
                                                                                                     
  fprintf(pform "FORM\n")                                                                      
                                                                                                     
  fprintf(pform "FIXED\n")                                                               
                                                                                                     
  fprintf(pform "PORT 31 10\n")                                                                
                                                                                               
  fprintf(pform "HEADER \"Move Origin\"\n")                                                    
                                                                                               
  fprintf(pform "TILE\n")                                                                      
                                                                                               
  ;主体开始                                                                                    
                                                                                               
  fprintf(pform "TEXT \"move origin\"\n")                                                      
                                                                                               
  fprintf(pform "FLOC 20 0\n")                                                                 
                                                                                               
  fprintf(pform "ENDTEXT\n")                                                                   
                                                                                               
  fprintf(pform "GROUP \"Origin Manager\"\n")                                                  
                                                                                                     
  fprintf(pform "FLOC 2 1\n")                                                                  
                                                                                               
  fprintf(pform "FSIZE 28 18\n")                                                               
                                                                                               
  fprintf(pform "ENDGROUP\n")                                                                  
                                                                                               
                                                                                               
                                                                                               
  fprintf(pform "FIELD jumpAnypad\n")                                                          
                                                                                               
  fprintf(pform "FLOC 3 3\n")                                                                  
                                                                                               
  fprintf(pform "MENUBUTTON \"AnyPad\" 8 4\n")                                                 
                                                                                               
  fprintf(pform "ENDFIELD\n")                                                                  
                                                                                               
  fprintf(pform "TEXT \"Jump To Any Pad.\"\n")                                                 
                                                                                               
  fprintf(pform "FLOC 12 4\n")                                                                 
                                                                                               
  fprintf(pform "ENDTEXT\n")                                                                   
                                                                                               
  fprintf(pform "GROUP \"Message Field\"\n")                                                   
                                                                                               
  fprintf(pform "FLOC 2 19\n")                                                                 
                                                                                               
  fprintf(pform "FSIZE 28 8\n")                                                                
                                                                                               
  fprintf(pform "ENDGROUP\n")                                                                  
                                                                                               
  fprintf(pform "TEXT\n")                                                                      
                                                                                               
  fprintf(pform "FLOC 4 21\n")                                                                 
                                                                                                     
  fprintf(pform "INFO msg 28\n")                                                               
                                                                                               
  fprintf(pform "FSIZE 24 7\n")                                                                
                                                                                               
  fprintf(pform "ENDTEXT\n")                                                                   
  fprintf(pform "ENDTILE\n")                                                                   
                                                                                            
     fprintf(pform "ENDFORM\n");结束form文件制作                                                  
                                                                                            
   close(pform);关闭输出端口。                                                              
                                                                                      
                                                                                            
   newform = axlFormCreate( (gensym) "orignChange.form" `(e inner) `OriginHandle t nil)     
                                                                                                     
   axlUIWPerm( newform t )                                                                  
                                                                                            
   axlFormDisplay( newform );显示此form                                                     
                                                                                            
   ;定义此form各个按钮调用相应的函数                                                        
   defvar( msg , "Click the key to select the origin location!" );defvar定义全局变量,变量m 
   axlFormSetField( newform   "jumpAnypad"    nil)                                         
   axlFormSetField( newform   "msg"            msg);msg 插入部分的                          
                                                                                                
   deleteFile(formPath);删除form文件                                                        
  )                                                                                            
  )                                                                                            
                                                                                               
/***********触发函数部分!*********/                                                              
defun( OriginHandle (newform)                                                                      
                                                                                                    
           let( ()                                                                                  
            case( newform->curField                                                         
             ( "jumpAnypad"    jumpAnypad()  );   触发按钮时,command窗口调skill                                          
             );end case                                       
                 );end let                                                                           
            );defun pform_Action                                                                     
/***********按钮函数*********/                                                                      
  defun(  jumpAnypad ()                                                                            
                                                                                                     
   let( ()                                                                                      
    axlClearSelSet()                                                                             
    axlFormSetField( newform "msg" "Please Pick A Pad!")                                         
    axlSetFindFilter(?enabled list( "noall" "pins") ?onButtons list( "noall" "pins"));筛选       
    anyPin = axlGetSelSet(axlSingleSelectPoint())                                                
  when( anyPin                                                                                       
    orx = xCoord(car(anyPin)->xy)                                                                
    ory = yCoord(car(anyPin)->xy)                                                                
     axlDBChangeDesignOrigin(list(minus(orx) minus(ory)))                                         
    ;anyPin = car(anyPin)                                                                        
    ;axlFormSetField( newform "msg" sprintf( nil "The Origin Move to Pin%L!" (anyPin->numbe)))   
    )                                                                                               
      );let                                                                                          
          axlClearSelSet()                                                                     
          axlDBRefreshId(nil);debug,避免连续多次出现定位出错的bug!                           
          );end defun jumpAnypad                                                               
 |   
- 
skill 
 
 
 
 
 
 
 
 |