[已解決]點圓自動畫中心線LISP 幫忙
4 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決]點圓自動畫中心線LISP 幫忙
以下是我自己寫的程式
點圓>自動取出圓心>取出半徑/5的長度>在半徑外額外加上/5的長度的距離>畫出中心線
但有時會跑出 中心線亂掉或者 沒額外長度出來
假如r100 畫出來的中心線長度就剛好200而以 成功的話應該事100/5=20 兩邊都會+20 變成240才對
但有時測試成功有時測試失敗 請大大幫忙解決問題 看我哪邊寫錯
點圓>自動取出圓心>取出半徑/5的長度>在半徑外額外加上/5的長度的距離>畫出中心線
但有時會跑出 中心線亂掉或者 沒額外長度出來
假如r100 畫出來的中心線長度就剛好200而以 成功的話應該事100/5=20 兩邊都會+20 變成240才對
但有時測試成功有時測試失敗 請大大幫忙解決問題 看我哪邊寫錯
- 代碼:
(defun c:mid()
(setvar "cmdecho" 0)
(setq mi (entsel "選取圓"))
(setq mid (entget (car mi)))
(setq exe (cdr (assoc 10 mid)))
(setq exe2 (car exe)) ;X
(setq exe3 (cadr exe)) ;Y
(setq exe4 (cdr (assoc 40 mid)));R
(setq exe5 (/ exe4 5))
(setq XXA (+ exe3 exe4))
(setq XXA2 (+ XXA exe5))
(setq XXA3 (list exe2 XXA2))
(setq XXB (+ exe2 exe4))
(setq XXB2 (+ XXB exe5))
(setq XXB3 (list XXB2 exe3))
(setq XXC (- exe2 exe4))
(setq XXC2 (- XXC exe5))
(setq XXC3 (list XXC2 exe3))
(setq XXD (- exe3 exe4))
(setq XXD2 (- XXD exe5))
(setq XXD3 (list exe2 XXD2))
(setq LINE_data (command "LINE" XXA3 XXD3 ""))
(setq LINE2_data (command "LINE" XXB3 XXC3 ""))
)
(prin1)
as920029as 在 2015-02-03, 16:28 作了第 1 次修改
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [已解決]點圓自動畫中心線LISP 幫忙
你的程式沒有問題
關閉鎖點就可以正常使用
這是採用點集的通病
關閉鎖點就可以正常使用
這是採用點集的通病
adslwang- 高級會員
- 文章總數 : 376
年齡 : 46
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 7211
威望值 : 356
回帖精華 : 1
注冊日期 : 2008-10-02
回復: [已解決]點圓自動畫中心線LISP 幫忙
感謝大大幫忙
所以通常集點的都會有這種問題瞜?
想說怎有時候會怪怪的
所以通常集點的都會有這種問題瞜?
想說怎有時候會怪怪的
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [已解決]點圓自動畫中心線LISP 幫忙
請問是否有把物件鎖點 關掉 開啟的指令 像是F3那樣
想用(command "OSNAP") 卻不知從何下手
想用(command "OSNAP") 卻不知從何下手
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [已解決]點圓自動畫中心線LISP 幫忙
建議可以換個方式不關閉「物件鎖點」。as920029as 寫到:請問是否有把物件鎖點 關掉 開啟的指令 像是F3那樣
想用(command "OSNAP") 卻不知從何下手
其實程式中好像並不需要把 OSMODE設為 0 (setvar "OSMODE" 0)
只要把 OSNAPCOORD設定為 1 之後,執行程式時會以程式輸入為主,就不會因為「物件鎖點」導致亂鎖點!
相關主題討論 >> [討論]已拒絕 AutoCAD 變數設定: "OSMODE" nil
____________________________________________________________________________________
👉快速比例設定與出圖技巧-線上課程(點我)👈
回復: [已解決]點圓自動畫中心線LISP 幫忙
十分感謝兩位大大幫忙
原本還打算用把鎖點全部取消 然後再重新設定...
但有其他更好的辦法 可以解決
小弟十分感謝
原本還打算用把鎖點全部取消 然後再重新設定...
但有其他更好的辦法 可以解決
小弟十分感謝
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
回復: [已解決]點圓自動畫中心線LISP 幫忙
借花獻佛
也可以把程式美化如下:
- 代碼:
(defun c:mid()
(setvar "cmdecho" 0)
(setq OSC (getvar "osnapcoord")) ;;記錄osnapcoord初始值
(setq mi (entsel "選取圓"))
(setq mid (entget (car mi)))
(setq exe (cdr (assoc 10 mid)))
(setq exe2 (car exe)) ;X
(setq exe3 (cadr exe)) ;Y
(setq exe4 (cdr (assoc 40 mid)));R
(setq exe5 (/ exe4 5))
(setq XXA (+ exe3 exe4))
(setq XXA2 (+ XXA exe5))
(setq XXA3 (list exe2 XXA2))
(setq XXB (+ exe2 exe4))
(setq XXB2 (+ XXB exe5))
(setq XXB3 (list XXB2 exe3))
(setq XXC (- exe2 exe4))
(setq XXC2 (- XXC exe5))
(setq XXC3 (list XXC2 exe3))
(setq XXD (- exe3 exe4))
(setq XXD2 (- XXD exe5))
(setq XXD3 (list exe2 XXD2))
(setvar "osnapcoord" 1) ;;畫線前先將鎖點改成依程式鎖點
(command "LINE" XXA3 XXD3 "")
(command "LINE" XXB3 XXC3 "")
(setvar "osnapcoord" OSC) ;;畫線後將osnapcoord值改回預設值
)
(prin1)
也可以把程式美化如下:
- 代碼:
(defun c:mid()
(setvar "cmdecho" 0)
(setq OSC (getvar "osnapcoord")) ;;記錄osnapcoord初始值
(setq mi (entsel "選取圓")
mid (entget (car mi))
exe (cdr (assoc 10 mid))
exe2 (car exe) ;X
exe3 (cadr exe) ;Y
exe4 (cdr (assoc 40 mid));R
exe5 (/ exe4 5)
)
(setq XXA (+ exe3 exe4)
XXA2 (+ XXA exe5)
XXA3 (list exe2 XXA2)
)
(setq XXB (+ exe2 exe4)
XXB2 (+ XXB exe5)
XXB3 (list XXB2 exe3)
)
(setq XXC (- exe2 exe4)
XXC2 (- XXC exe5)
XXC3 (list XXC2 exe3)
)
(setq XXD (- exe3 exe4)
XXD2 (- XXD exe5)
XXD3 (list exe2 XXD2)
)
(setvar "osnapcoord" 1) ;;畫線前先將鎖點改成依程式鎖點
(command "LINE" XXA3 XXD3 "")
(command "LINE" XXB3 XXC3 "")
(setvar "osnapcoord" OSC) ;;畫線後將osnapcoord值改回預設值
)
(prin1)
____________________________________________________________________________________
djh1006- 中級會員
- 文章總數 : 177
年齡 : 53
來自 : 彰化縣員林鎮中山路二段369巷二弄15-14號
職業 : 連續沖壓模具設計工程師
愛好 : UG,SOLIDWORKS,AUTOCAD 2D,autolisp
個性 : 內向偏外
使用年資 : 23年以上
使用版本 : 2014
積分 : 7
經驗值 : 6137
威望值 : 359
注冊日期 : 2011-06-16
回復: [已解決]點圓自動畫中心線LISP 幫忙
感謝大大指導...小弟學到很多
小弟學LISP= =不是正規管道學的...是上網四處找資料拼拼湊湊學的
所以很多地方不是很好請建量
目前還沒辦法達到可以美化到大大提供的那樣XD 但還是感謝大大幫忙美化
小弟學LISP= =不是正規管道學的...是上網四處找資料拼拼湊湊學的
所以很多地方不是很好請建量
目前還沒辦法達到可以美化到大大提供的那樣XD 但還是感謝大大幫忙美化
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5226
威望值 : 47
注冊日期 : 2012-05-06
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章