autolisp程式設計中如果主函式裡面要呼叫自己編寫的

2021-05-01 17:51:58 字數 1943 閱讀 7639

1樓:冼睿敏

呼叫自己寫的指令,用(c:xx)格式,xx為自己定義的指令.

defun c:name() 引數的預設?是預設值還是?是指指令函式裡的變數的值麼?

在自定義指令裡可以使用主函式的變數,在主函式中的(defun xx (a b / c d)..)中,a b 為呼叫函式必須的變數,c d為主函式的內部變數,內部變數即只在本函式中使用,其它程式或函式無法取得該變數的值,若是你要用的自定義指令裡的變數在c d的位置,則無法直接使用主函式的變數.

最後乙個問題同上,只要需呼叫的變數不是函式的內部變數(即不在c d位置),都可以直接呼叫.無需傳遞.

2樓:匿名使用者

的連線為軸會有無數個座標系可以滿足! 三點確定乙個平面,同樣要確定唯一座標系也是需要三點的!

**給你,如果第三點不確定,只能保證給定的兩點轉換後坐標是對的!

(defun c:ducs()

(setq os (getvar "osmode"))

(setq cm (getvar "cmdecho"))

(setvar "osmode" 9)

(setvar "cmdecho" 0)

(command "ucs" "w")

(setq p1 (getpoint "\n請選取第一點p1:"))

(setq p2 (getpoint "\n請選取第二點p2:"))

(setq p3 (getpoint "\n請選取第三點p3:"))

(setvar "osmode" 0)

(initget 1 )

(setq s1 (getpoint "\n請輸入第一點p1實際座標x1,y1,z1:"))

(initget 1 )

(setq s2 (getpoint "\n請輸入第二點p2實際座標x2,y2,z2:"))

(initget 1 )

(setq s3 (getpoint "\n請輸入第三點p3實際座標x3,y3,z3:"))

(setq l1 (distance p1 p2))

(setq l2 (distance s1 s2))

(setq x "yes")

(if (> (abs (- l1 l2)) 1);誤差控制

(progn

(alert "資料誤差較大請點後選擇是否繼續")

(initget 1 "yes no")

(setq x (getkword "\n是否繼續? (yes 或 no)")) ))

(if (= "yes" x)

(progn

(setq ltm (ssadd))

(command "line" "0,0,0" "1,0,0" "")

(ssadd (entlast) ltm)

(command "line" "0,0,0" "0,1,0" "")

(ssadd (entlast) ltm)

(command "align" ltm "" s1 p1 s2 p2 s3 p3)

(setq lindat (ssname ltm 0))

(setq lindate (entget lindat))

(setq uc1 (cdr (assoc '10 lindate)))

(setq uc2 (cdr (assoc '11 lindate)))

(setq lindat (ssname ltm 1))

(setq lindate (entget lindat))

(setq uc3 (cdr (assoc '11 lindate)))

(command "erase" ltm "")

(command "ucs" "3" uc1 uc2 uc3)))

(setvar "osmode" os)

(setvar "cmdecho" cm)

(princ))

matlab中s函式的程式設計問題,matlab中S函式的程式設計問題

流星 function sys,x0,str,ts mdlinitializesizes sizes simsizes sizes.numcontstates 0 sizes.numdiscstates 4 sizes.numoutputs 1 sizes.numinputs 2 sizes.dir...

vb中的val函式什麼意思,VB程式設計中VAL是什麼意思

val函式,返回包含於字串內的數字,字串中是一個適當型別的數值。1 語法 val string 必要的string 引數可以是任何有效的字串表示式.2 說明 val 函式,在它不能識別為數字的第一個字元上,停止讀入字串。那些被認為是數值的一部分的符號和字元,例如美圓號與逗號,都不能被識別。但是函式可...

c 在主函式中輸入整數到陣列中,呼叫函式完成將陣列迴圈移動k位(要求函式引數為陣列名

int main b 10 int x 21,i,k scanf d x if x 0 x 10 x 10 for i 0 i 10 i for i 0 i 10 i printf d b i return 0 在主函式中輸入十個整數存入陣列,編寫乙個函式實現對該陣列元素進行從小到大排序的功能 in...