AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~

[討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

上一篇主題 下一篇主題 向下

[討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

發表 由 hua 于 2016-08-17, 09:49

請問~副程式裡呼叫其他副程式~
我寫得有問題嗎? 頭暈目眩
因為到主程式到副程式一都可以順利完成
可是副程式一裡~我呼叫了副程式二
結果就出不來了~
可以幫我看一下~
我哪裡寫得有問題嗎?
謝謝~ 感動
(defun c:atext-repeat()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq rr (getreal "\n弧半徑: "))
(setq n 0)
(prompt"\n<<框選需要畫弧的線>>")
(setq ss (ssget '((8 . "TEXT") (0 . "line"))))
(repeat (sslength ss)
 (setq ssn (ssname ss n))
 (setq ssdata (entget ssn))
 (atext_arc)
 (setq n(+ 1 n))
);repeat end
(setvar "osmode" 1)
 (prin1)
 )
;副程式一
(defun rtd (a) (* a (/ 180 pi)))
(defun atext_arc()
 (setq pts (cdr (assoc 10 ssdata)))
 (setq pte (cdr (assoc 11 ssdata)))
 (command "arc" pte "e" pts "r" rr)
 (arc_cen)
 (prin1)
)
;;副程式二
(defun arc_cen()
(setq e0 (entlast))
(setq e1 (entget e0))
(setq c1 (cdr (assoc 10 e1)) ; center point
     a0 (cdr (assoc 50 e1)) ; start arc angle
     a1 (cdr (assoc 51 e1)) ; end arc angle
     i1 (if (> a1 a0) ; included angle
            (- a1 a0)
            (+ a1 (- (* pi 2) a0))
        )
 ) ; end SETQ
(prin1)
)
附件
atext-repeat.zip 您無權下載這里的附件。(1 Kb) 下載 1 次
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 577
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

發表 由 阿希 于 2016-08-24, 05:25

把副程式一與副程式二合併不是比較單純 ?

阿希
高級會員
高級會員

文章總數 : 335
年齡 : 36
來自 : 台北
職業 : 水電設計
愛好 : autolisp
個性 : 和平主義者
使用年資 : 5
使用版本 : 2008
積分 : 19
經驗值 : 4195
威望值 : 196
發帖精華 : 1
注冊日期 : 2008-09-22
男 摩羯座 猴

回頂端 向下

回復: [討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

發表 由 hua 于 2016-08-25, 01:23

我試試看~謝謝你~
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 577
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

發表 由 hua 于 2016-08-25, 03:56

(defun c:atext-repeat()
(setvar "cmdecho" 0)
(setq os (getvar "osmode"))
(setvar "osmode" 0)
(setq rr (getreal "\n弧半徑: "))
(setq n 0)
(prompt"\n<<框選需要畫弧的線>>")
(setq ss (ssget '((8 . "TEXT") (0 . "line"))))
(repeat (sslength ss)
(setq ssn (ssname ss n))
(setq ssdata (entget ssn))
(atext_arc)
(setq n(+ 1 n))
);repeat end
(setvar "osmode" 1)
(prin1)
)
;副程式一
(defun rtd (a) (* a (/ 180 pi)))
(defun atext_arc()
(setq pts (cdr (assoc 10 ssdata)))
(setq pte (cdr (assoc 11 ssdata)))
(command "arc" pte "e" pts "r" rr)
(setq e0 (entlast))
(setq e1 (entget e0))
(setq c1 (cdr (assoc 10 e1)) ; center point
a0 (cdr (assoc 50 e1)) ; start arc angle
a1 (cdr (assoc 51 e1)) ; end arc angle
i1 (if (> a1 a0) ; included angle
(- a1 a0)
(+ a1 (- (* pi 2) a0))
)
p1 (osnap (cadr e0) "end") ; start point pick
p2 (polar c1 a1 r1) ; end point arc
) ; end SETQ
(prin1)
)

avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 577
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

發表 由 hua 于 2016-08-25, 03:58

我試了~可是加了之後~前面執行畫弧的部分就沒辦法正確執行了~
avatar
hua
一般會員
一般會員

文章總數 : 16
年齡 : 35
來自 : 新北市
職業 : 繪圖員
愛好 : 畫圖
個性 : 內向
使用年資 : 5-6
使用版本 : 2014
經驗值 : 577
威望值 : 0
注冊日期 : 2016-08-10
女 摩羯座 雞

回頂端 向下

回復: [討論]副程式裡呼叫其他副程式~ 我寫得有問題嗎?

發表 由 chien_yi 于 2016-10-12, 13:19

(command "arc" pte "e" pts "r" rr)
請問一下由指定的弧起點+弧終點+指定半徑,可以劃出一條弧嗎?
avatar
chien_yi
一般會員
一般會員

文章總數 : 16
年齡 : 49
來自 : 台北
職業 : 待業
愛好 : 電腦
個性 : 呆呆的
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 2395
威望值 : 12
注冊日期 : 2011-08-19
男 水瓶座 猴

回頂端 向下

上一篇主題 下一篇主題 回頂端


 
這個論壇的權限:
無法 在這個版面回復文章