明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2278|回复: 3

未公开函数ACOS & ASIN

[复制链接]
发表于 2002-2-27 16:28 | 显示全部楼层 |阅读模式
Command: (COS (/ PI 5))
0.809017
Command: (/ (* (ACOS 0.809017)180)PI)
36.0
Command: (SIN (/ PI 5))
0.587785
Command: (/ (* (ASIN 0.587785)180)PI)
36.0
"觉得好,就打赏"
还没有人打赏,支持一下
 楼主| 发表于 2002-2-28 11:38 | 显示全部楼层

对不起我弄错了!

对不起我弄错了!抱歉!!找到原因___加载了EMT Software 公司的MLIB_R2K.EXE

其中DP_UTILS.LSP中有ACOS & ASIN & TAN 等函数(加载太多有时还真乱!!!)

(defun acos (%A)
(if (= %A 1) 0.0 (- (* pi 0.5) (atan (/ %A (sqrt (- 1.0 (expt %A 2))))))))
(defun asin (%A)
(if (= %A 1) 1.0 (atan (/ %A (sqrt (- 1.0 (expt %A 2)))))))
(defun tan (%A) (/ (sin %A) (cos %A)))

提供一个小型计算器
但小心它的函数…………
;;;---------------------------------------------------------------------------
;;;   Description : On-line Calculator.
;;;                 You can use this while drafting in Autocad.
;;;
;;;   Prepared by : Sanjay Gandhe.
;;;   Date        : 10/01/1997.
;;;   
;;;                 Thermax limited.
;;;                 Enviro division.
;;;                 Pune.
;;;                 India.
;;;---------------------------------------------------------------------------
;;;  Last revision : 17/03/1997. By SDG.
;;;---------------------------------------------------------------------------
(defun tan (tang)(/ (sin (dtr tang)) (cos (dtr tang))))
;;;---------------------------------------------------------------------------
(defun dtr (deg)(/ (* deg pi) 180.0))
;;;---------------------------------------------------------------------------
(defun rtd (a)(* (/ 180 pi) a))
;;;---------------------------------------------------------------------------
(defun convert ()
    (push "+/-")
    (setq val (atof (get_tile "display")))
    (if (< val 0.0)
        (set_tile "display" (rtos (abs val)))
        (set_tile "display" (rtos (- 0.0 val)))
    )
    (setq old_val (get_tile "display"))
    (setq p_val (get_tile "display"))
)
;;;---------------------------------------------------------------------------
(defun c_time ()
    (setq dt (getvar "date"));real date
    ;1 day =  60 seconds x 60 minuts x 24 hours
    (setq seconds (* 86400.0 (- dt (fix dt))))
    (setq minuts (/ seconds 60.0))
    (setq hours (/ seconds 3600.0))
    (if (> hours 12.0) (setq hours (- hours 12.0)))
    (setq minuts (* 60.0 (- hours (fix hours))))  
    (setq seconds (* 60.0 (- minuts (fix minuts))))
    (setq miliseconds (* 60.0 (- seconds (fix seconds))))
    (setq grt (strcat  
                 (rtos (fix hours) 2 0)":"
                 (rtos (fix minuts) 2 0)":"
                 (rtos (fix seconds) 2 0)":"
                 (rtos (fix miliseconds) 2 0)
              )   
    )
)
;;;---------------------------------------------------------------------------
(defun cu_time ()
          (c_time)
          (set_tile "time" (strcat " Time : " grt))
          (set_tile "title" (strcat " Time : " grt))
)
;;;---------------------------------------------------------------------------
(defun image ()(start_image"t") (slide_image 0 0 1 1 "t")(end_image) (cu_time))
;;;---------------------------------------------------------------------------
(defun set_s_c_t (s_c_t)
    (set_tile "display"
       (rtos (cond ((= s_c_t 'sin) (progn (push "Sin")(sin (dtr (atof (get_tile "display"))))))
             ((= s_c_t 'cos) (progn (push "Cos")(cos (dtr (atof (get_tile "display"))))))
             ((= s_c_t 'tan) (progn (push "Tan")(tan (atof (get_tile "display")))))
             ((= s_c_t 'sqrt) (progn (push "Sqrt")(sqrt (atof (get_tile "display")))))
             )
       2 16
       )
    )
    (setq old_val result)
    (setq p_val nil)
    (cu_time)
)
;;;---------------------------------------------------------------------------
(defun set_pi ()
      (push "i")
      (setq p_val (rtos pi 2 12))
      (set_tile "display" (rtos pi 2 12))
      (cu_time)
)
;;;---------------------------------------------------------------------------
(defun mem_in () (push "Min")(set_tile "MM" (setq min_val (get_tile "display"))) (cu_time))
;;;---------------------------------------------------------------------------
(defun clear () (push "C")(set_tile "display" "0.0")(setq p_val nil)(func "") (cu_time))
;;;---------------------------------------------------------------------------
(defun all_clear () (push "AC")(set_tile "display" "0.0")(setq p_val nil)(func "") (set_tile "MM" "") (cu_time))
;;;---------------------------------------------------------------------------
(defun func (fu) (push fu) (set_tile "Func" (strcat fu " ")) (cu_time))
;;;---------------------------------------------------------------------------
(defun add_mem ()
         (push "M+")
         (set_tile "MM"
           (rtos
            (+
             (atof (get_tile "MM"))
             (atof (get_tile "display"))
            )
            2 16
            )
          )
          (cu_time)
)
;;;---------------------------------------------------------------------------
(defun delay (dt)(setq dtime 1)(while (<= dtime dt)(setq dtime (1+ dtime))))
;;;---------------------------------------------------------------------------
(defun set_mr ()
    (push "MR")
    (set_tile "display" (get_tile "MM"))
    (setq p_val (get_tile "display"))
    (cu_time)
)
;;;---------------------------------------------------------------------------
(defun push (what)
          (mode_tile what 1)
          (delay 500)
          (mode_tile what 0)
)
;;;---------------------------------------------------------------------------
(defun do_do (do)
     (push (itoa do))
     (if (= do 21) (setq doo '+))
     (if (= do 22) (setq doo '-))
     (if (= do 23) (setq doo '*))
     (if (= do 24) (setq doo '/))
     (mode_tile "." 0)
     (if (= do 11) (mode_tile "." 1))
     (if (and (not p_val) (= do 11))
         (progn
          (setq p_val "0")
          (set_tile "display" p_val)
         )
     )
     (if (< do 21)
         (progn
          (set_tile "display"
             (if p_val
               (progn
                 (if (= do 11)
                     (setq p_val (strcat (get_tile "display") "."))
                     (setq p_val (strcat p_val (rtos do 2 0)))
                 )
               )
                 (setq p_val (rtos do 2 0))
             )
          )
         )
         (progn
         (if (/= (get_tile "display") "")
             (setq old_val (get_tile "display"))
             (setq old_val p_val)
          )
          (setq p_val nil)
         )
    )
    (cu_time)
)
;;;---------------------------------------------------------------------------
(defun cal ()
          (push "=")
          (if (not p_val) (setq p_val old_val))
          (setq result
               (apply doo
                  (list
                   (if (= (type old_val) 'STR) (atof old_val) old_val)
                   (if (= (type p_val) 'STR) (atof p_val) p_val)
                  )
               )
          )
             (set_tile "display" (rtos result 2 12))
          (setq old_val result)
          (setq p_val nil)
          (set_tile "Func" "=")
          (cu_time)
)
;;;---------------------------------------------------------------------------
(defun dcl (dialog_name dcl_file)
      (new_dialog (strcase dialog_name) (setq dcl_id (load_dialog (strcase dcl_file))))
)
;------------------------------------------------------------------------------
(defun c:dcl_calc ()
     (setq ai_support nil *ERROR* nil old_val nil do nil doo nil)
     (dcl "DCL_CALC" "DCL_CALC")
     (mode_tile "MM" 1)
     (mode_tile "Func" 1)
     (mode_tile "display" 1)
     (setq v1 nil p_val nil)
     (set_tile "display" "            0.0")
     (set_tile "MM" "0.0")
     
     (action_tile "sdg" "(image)")
     ;;;Functions
     (action_tile "M+" "(add_mem)")
     (action_tile "Min" "(mem_in)")
     (action_tile "MR" "(set_mr)")     
     (action_tile "C" "(clear)")
     (action_tile "AC" "(all_clear)")
     
     (action_tile "Sin" "(set_s_c_t 'sin)")
     (action_tile "Cos" "(set_s_c_t 'cos)")
     (action_tile "Tan" "(set_s_c_t 'tan)")
     (action_tile "+/-" "(convert)")
     (action_tile "Sqrt" "(set_s_c_t 'sqrt)")
     
     ;;; Digits
     (action_tile "1" "(do_do 1)")
     (action_tile "2" "(do_do 2)")
     (action_tile "3" "(do_do 3)")
     (action_tile "4" "(do_do 4)")
     (action_tile "5" "(do_do 5)")
     (action_tile "6" "(do_do 6)")
     (action_tile "7" "(do_do 7)")
     (action_tile "8" "(do_do 8)")
     (action_tile "9" "(do_do 9)")
     (action_tile "0" "(do_do 0)")
     (action_tile "." "(do_do 11)")
     
     ;;; Functions
     (action_tile "+" "(do_do 21)(func (chr 43))")
     (action_tile "-" "(do_do 22)(func (chr 45))")
     (action_tile "X" "(do_do 23)(func (chr 88))")
     (action_tile "/" "(do_do 24)(func (chr 47))")
     (action_tile "i" "(set_pi)")
     (action_tile "=" "(cal)")
     (action_tile "accept"  "(done_dialog 1)")
     (start_dialog)

)
;;;---------------------------------------------------------------------------
;(c:dcl_calc)





//-----------------------------------------------------------------------------
//         This file is for dcl_calc.lsp
//         Program for DCL Calculator.
//         Prepared by : Sanjay Gandhe.
//                       Thermax limited
//                              Enviro division
//                       Pune
//                        India
//-----------------------------------------------------------------------------
dcl_settings : default_dcl_settings { audit_level = 0; }
DCL_CALC : dialog {
       label = "Calculator";
       : boxed_column {
     // children_alignment = centered;
       : row {
: text_part {
label = "      Mem In                     ";
fixed_width=true;
width=10;
}
               : text_part {
label = "Display      ";
fixed_width=true;
width=20;
}
               : text_part {
label = "Fun";
fixed_width=true;
width=5;
}
             }
       : row {      
                : edit_box {
                  label = "";
                  key = "MM";
                  fixed_width=true;
                  edit_width = 8;
                    }      
                : edit_box {
                  label = "";
                  key = "display";
                     fixed_width=true;
                  edit_width = 15;
                }
                : edit_box {
                  label = "";
                  key = "Func";
                 fixed_width=true;
                  edit_width = 1;
                }
               }
             }
         : row {
                  : text_part {
                    label = "";
                    key = "time";
                      edit_width = 6;
                  }      
               }                             
       : boxed_column {
         label = "Hi functions ";
         children_alignment = centered;
         key = "title";
       : row {
                : button {
                    label = "Sin";
                    key =  "Sin";
                    mnemonic = "S";
                    fixed_width = true;
                    }
                : button {
                    label = "Cos";
                    key =  "Cos";
                    mnemonic = "o";
                    fixed_width = true;
                    }
                : button {
                    label = "Tan";
                    key =  "Tan";
                    mnemonic = "T";
                    fixed_width = true;
                    }
                : button {
                    label = "Min";
                    key =  "Min";
                    mnemonic = "M";
                    fixed_width = true;
                    }                    
                : button {
                    label = "MR";
                    key =  "MR";
                    mnemonic = "R";
                    fixed_width = true;
                    }                           
             }
       : row {        
                : button {
                    label = "Sqrt";
                    key =  "Sqrt";
                    mnemonic = "q";
                    fixed_width = true;
                    }
                : button {
                    label = "+/-";
                    key =  "+/-";
                    fixed_width = true;
                    }
                : button {
                    label = " ";
                    key =  "";
                    fixed_width = true;
                    }
                : button {
                    label = " ";
                    key =  "";
                    fixed_width = true;
                    }                                        
                : retirement_button {
                      label = "OFF";
                           key = "accept";
                      width = 3;
                      fixed_width = true;
                      is_default = true;
                      is_cancel = true;
                    }                                      
            }                    
          }
       : boxed_column {
         label = "Low functions";
         children_alignment = centered;
       :row {
                : button {
                    label = "7";
                    key =  "7";
                    mnemonic = "7";
                    fixed_width = true;
                    }
                : button {
                    label = "8";
                    key =  "8";
                    mnemonic = "8";
                    fixed_width = true;
                    }                    
                : button {
                    label = "9";
                    key =  "9";
                    mnemonic = "9";
                    fixed_width = true;
                    }
                : button {
                    label = "C";
                    key =  "C";
                    mnemonic = "C";
                    fixed_width = true;
                    }
                : button {
                    label = "AC";
                    key =  "AC";
                    mnemonic = "A";
                    fixed_width = true;
                    }                    
             }
       : row {
                : button {
                    label = "4";
                    key =  "4";
                    mnemonic = "4";
                    fixed_width = true;
                    }
                : button {
                    label = "5";
                    key =  "5";
                    mnemonic = "5";
                    fixed_width = true;
                    }                    
                : button {
                    label = "6";
                    key =  "6";
                    mnemonic = "6";
                    fixed_width = true;
                    }
                : button {
                    label = "X";
                    key =  "X";
                    mnemonic = "X";
                    fixed_width = true;
                    }
                : button {
                    label = "/";
                    key =  "/";
                    mnemonic = "/";
                    fixed_width = true;
                    }                    
             }
       : row {
                : button {
                    label = "1";
                    key =  "1";
                    mnemonic = "1";
                    fixed_width = true;
                    }
                : button {
                    label = "2";
                    key =  "2";
                    mnemonic = "2";
                    fixed_width = true;
                    }                    
                : button {
                    label = "3";
                    key =  "3";
                    mnemonic = "3";
                    fixed_width = true;
                    }
                : button {
                    label = "+";
                    key =  "+";
                    mnemonic = "+";
                    fixed_width = true;
                    }
                : button {
                    label = "-";
                    key =  "-";
                    mnemonic = "-";
                    fixed_width = true;
                    }                    
             }             
       : row {
                : button {
                    label = "0";
                    key =  "0";
                    mnemonic = "0";
                    fixed_width = true;
                    }
                : button {
                    label = ".";
                    key =  ".";
                    mnemonic = ".";
                    fixed_width = true;
                    }                    
                : button {
                    label = "i";
                    key =  "i";
                    mnemonic = "";
                    fixed_width = true;
                    }
                : button {
                    label = "=";
                    key =  "=";
                    mnemonic = "=";
                    fixed_width = true;
                    }
                : button {
                    label = "M+";
                    key =  "M+";
                    mnemonic = "M";
                    fixed_width = true;
                    }                    
             }             
             }
}
发表于 2006-3-11 23:21 | 显示全部楼层
龙仔经典贴,顶一下哈哈
发表于 2006-3-12 00:03 | 显示全部楼层
  1. ;;;反正弦
  2. (defun xyp-TF-asin (num)
  3.   (if (= num 1)
  4.     (atan 1 0)
  5.     (atan (/ num (sqrt (- 1 (* num num)))))
  6.   )
  7. )
  8. ;;;反余弦
  9. (defun xyp-TF-Acos(num)
  10.   (if (= num 0)
  11.     (atan 1 0)
  12.     (atan (/ (sqrt (- 1 (* num num))) num))
  13.   )
  14. )
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-6-18 22:00 , Processed in 0.167472 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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