2009年4月29日 星期三

2009年4月9日 星期四

AutoLisp homework

Input the Diameter D and a point in the work area
  • (defun C:CIR_Ex(/ )
  • (setvar "BLIPMODE" 0)
  • (setq OSM (getvar "osmode"))
  • (setvar "osmode" 0)
  • (setq CP (getpoint "\nEnter Center Point..."))
  • (setq RA (getdist CP "\nEnter Radius ..."))
  • (command "circle" CP RA)
  • (princ)
  • (command "ARC" "C" (POLAR CP (DTR 0) RA) (POLAR CP (DTR 60) RA) (POLAR CP (DTR -60) RA))
  • (setvar "osmode" OSM)
  • )
  • (DEFUN DTR (a)
  • (* Pi (/ a 180.0))
  • )

2009年4月8日 星期三

ETCIR

(defun C:ETCIR(/ EC1 EC2 TCC TCR Rt CIR DX DY)
(setvar "BLIPMODE" 0)
(setq EC1 (Osnap (getpoint "\nSelect existing circle ...") "nea"))

(setq EC2 (Osnap EC1 "center"))
(setq TCR (getdist EC1 "\n Enter Tangent Circle Radius :"))
(setvar "AUNITS" 0)
(setq Rt (getangle EC2 "\nEnter direct angle :"))
(setq CIR (distance EC1 EC2))
(setq DX (* (+ CIR TCR) (cos Rt)))
(setq DY (* (+ CIR TCR) (sin Rt)))
(setq TCC (list (+ (car EC2) DX) (+ (cadr EC2) DY)))
(command "Circle" TCC TCR)
)

2009年3月25日 星期三

AutoLiap 數學運算功能函數

項目 函數語法 傳 回
01-01 (+ 數值 數值 ...) 累計數值
(+ 1 2) 3
(+ 1 2 3 4.5) 10.5
(+ 1 2 3 4.0) 10.0
------------------------------------------------------------------------------------------------
01-02 (- 數值 數值 ...) 減去數值
(- 50 40) 10
(- 50 40.0) 10.0
(- 50 40.0 2.5) 7.5
(- 8) -8
------------------------------------------------------------------------------------------------
01-03 (* 數值 數值 ...) 所有數值乘積
(* 2 3) 6
(* 2 3.0) 6.0
(* 2 3 4.0) 24.0
(* 3 -4.5) -13.5
(* 3) 3
------------------------------------------------------------------------------------------------
01-04 (/ 數值 數值 ...) 第一個數值除以第二個以後數值的商
(/ 100 2) 50
(/ 100 2.0) 50.0
(/ 100 20.0 2) 2.5
(/ 100 20 2) 2 ...除數為整數,小數點後面會不見喔!!!
(/ 4) 4
--------------------------------------------------------------------------------------------------
01-05 (1+ 數值) 數值+1
(1+ 5) 6
(1+ -17.5) -16.5
---------------------------------------------------------------------------------------------------
01-06 (1- 數值) 數值-1
(1- 5) 4
(1- -17.5) -18.5
---------------------------------------------------------------------------------------------------
01-07 (abs 數值) 數值的絕對值
(abs 100) 100
(abs -100) 100
(abs -99.25) 99.25
---------------------------------------------------------------------------------------------------
01-08 (atan 數值) 反正切值
(atan 1) 0.785398
(atan 1.0) 0.785398
(atan 0.5) 0.463648
(atan -1.0) -0.785398
(atan 2.0 3.0) 0.588003
(atan 2.0 -3.0) 2.55359
(atan 1.0 0.0) 1.5708
----------------------------------------------------------------------------------------------------
01-09 (cos 角度) 角度的餘弦值,角度值為弳度
(cos 0.0) 1.0
(cos pi) -1.0
----------------------------------------------------------------------------------------------------
01-10 (exp 數值) 數值的指數
(exp 1.0) 2.71828
(exp 2.2) 9.02501
(exp -0.4) 0.67032
----------------------------------------------------------------------------------------------------
01-11 (expt 基數 指數) 基數的指數值
(expt 2 4) 16
(expt 3.0 2.0) 9.0
----------------------------------------------------------------------------------------------------
01-12 (fix 數值) 將數值轉換為整數值
(fix 3) 3
(fix 3.7) 3
----------------------------------------------------------------------------------------------------
01-13 (float 數值) 將數值轉換為實數值
(float 3) 3.0
(float 3.75) 3.75
----------------------------------------------------------------------------------------------------
01-14 (gcd 數值1 數值2) 二數值的最大公因數
(gcd 81 57) 3
(gcd 12 20) 4
-----------------------------------------------------------------------------------------------------
01-15 (log 數值) 數值的自然對數值
(log 4.5) 1.50408
(log 1.22) 0.198851
-----------------------------------------------------------------------------------------------------
01-16 (max 數值 數值 ...) 數值中的最大值
(max 4.07 -144) 4.07
(max -88 19 5 2) 19
(max 2.1 4 8) 8.0
-----------------------------------------------------------------------------------------------------
01-17 (min 數值 數值 ...) 數值中的最小值
(min 683 -10.0) -10.0
(min 73 2 48 5) 2
(min 73.0 2 48 5) 2.0
(min 2 4 6.7) 2.0
-----------------------------------------------------------------------------------------------------
01-18 pi 常數p ,其值約為 3.1415926
-----------------------------------------------------------------------------------------------------
01-19 (rem 數值1 數值2) 二數值的相除的餘數
(rem 42 12) 6
(rem 12.0 16) 12.0
(rem 26 7 2) 1
-----------------------------------------------------------------------------------------------------
01-20 (sin 角度) 角度的正旋值,角度值為弳度
(sin 1.0) 0.841471
(sin 0.0) 0.0
-----------------------------------------------------------------------------------------------------
01-21 (sqrt 數值) 數值的平方根
(sqrt 4) 2.0
(sqrt 2.0) 1.41421
=============================================

動手試試看,
在Auto CAD的指令行, 輸入Auto Lisp 的功能函數, 看看結果有沒有一樣.

指令: (sqrt 2.0)
1.41421

指令: (sin 1.0)
0.814171

*********************************************************************

2009年3月17日 星期二

2009年3月11日 星期三

AutoCAD Macro #2

A4 ^C^Climits;0,0;297,210;line;0,0;@297<0;@210<90;@297<180;c;^czoom;a;grid;on;
layer ^C^C_-layer;make;pipe;
erase all ^C^Cerase;all;;
Rectangle ^C^Cline;\@100<0;@100<90;@100<180;c

^C^C(setq p1 (getpoint "input start point:"));\;^C(setq d1 (getreal "input length:"));\;^Cline;!p1;(list (+ (car p1) d1) (cadr p1) (caddr p1));(list (+ (car p1) d1) (+ (cadr p1) d1) (caddr p1));(list (car p1) (+ (cadr p1) d1) (caddr p1));c;

AutoCAD Macro #1


5 分鐘完成
^C^Cline;\@100<0;@100<90;@100<180;c;^carray;@5,-100;;r;10;1;10;^cline;@;@10<90;;
^cmove;l;;0,0;@10<0;^carray;l;;r;5;5;20;20;^ccopy;l;;0,0;-70,-70;^carray;l;;r;5;4;20;20;