[求助]autolisp指令問題
5 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[求助]autolisp指令問題
各位先進您們好:
小弟初學lisp
在教學範例中使用command指令來畫線都是有輸入座標[例如(command "line" '(-120 0) '(120 0) "")]
我想請問各位先進如果我想以滑鼠點選的方式來讓我指定第一個點甚至到第五個點以上,指令該怎麼改
謝謝各位!
小弟初學lisp
在教學範例中使用command指令來畫線都是有輸入座標[例如(command "line" '(-120 0) '(120 0) "")]
我想請問各位先進如果我想以滑鼠點選的方式來讓我指定第一個點甚至到第五個點以上,指令該怎麼改
謝謝各位!
LuZongTing- 一般會員
- 文章總數 : 10
年齡 : 23
來自 : 桃園市
職業 : 工程師助理
愛好 : 畫圖
個性 : 好奇
使用年資 : 4年
使用版本 : 2019
經驗值 : 1894
威望值 : 15
注冊日期 : 2019-10-21
回復: [求助]autolisp指令問題
可以使用getpoint函數 或使用pause暫停動作等待輸入
以下三個範例有相同的作用
1.
(defun c:test ()
(setq p1 (GETPOINT "請指定第一點")
p2 (GETPOINT "請指定第二點")
)
(command "LINE" p1 p2 "")
)
2.
(defun c:test1 ()
(command "LINE" pause pause "")
(alert "完成")
)
3.
(defun c:test2 ()
(vl-cmdf "LINE" (GETPOINT "請指定第一點") (GETPOINT "請指定第二點") "")
(alert "完成")
)
以下三個範例有相同的作用
1.
(defun c:test ()
(setq p1 (GETPOINT "請指定第一點")
p2 (GETPOINT "請指定第二點")
)
(command "LINE" p1 p2 "")
)
2.
(defun c:test1 ()
(command "LINE" pause pause "")
(alert "完成")
)
3.
(defun c:test2 ()
(vl-cmdf "LINE" (GETPOINT "請指定第一點") (GETPOINT "請指定第二點") "")
(alert "完成")
)
Tiger&蘋果爸 寫到: 謝謝熱心回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
n112212- 初級會員
- 文章總數 : 10
年齡 : 31
來自 : 台中
職業 : 待業
愛好 : 健身
個性 : 和善
使用年資 : 新手初學
使用版本 : 2016
積分 : 1
經驗值 : 3127
威望值 : 37
注冊日期 : 2016-06-19
回復: [求助]autolisp指令問題
好完整的教學範例~n112212 寫到:可以使用getpoint函數 或使用pause暫停動作等待輸入
以下三個範例有相同的作用
1.
(defun c:test ()
(setq p1 (GETPOINT "請指定第一點")
p2 (GETPOINT "請指定第二點")
)
(command "LINE" p1 p2 "")
)
2.
(defun c:test1 ()
(command "LINE" pause pause "")
(alert "完成")
)
3.
(defun c:test2 ()
(vl-cmdf "LINE" (GETPOINT "請指定第一點") (GETPOINT "請指定第二點") "")
(alert "完成")
)
____________________________________________________________________________________
👉[訂購]AutoCAD圖塊大師課程(點我)👈
回復: [求助]autolisp指令問題
n112212 寫到:可以使用getpoint函數 或使用pause暫停動作等待輸入
以下三個範例有相同的作用
1.
(defun c:test ()
(setq p1 (GETPOINT "請指定第一點")
p2 (GETPOINT "請指定第二點")
)
(command "LINE" p1 p2 "")
)
2.
(defun c:test1 ()
(command "LINE" pause pause "")
(alert "完成")
)
3.
(defun c:test2 ()
(vl-cmdf "LINE" (GETPOINT "請指定第一點") (GETPOINT "請指定第二點") "")
(alert "完成")
)Tiger&蘋果爸 寫到: 謝謝熱心回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
太強了 感謝教學 原本想說進來看是否是跟自己所想的一樣答案
結果我只會第一種 進來後多學到 2 跟3 感謝大大
as920029as- 一般會員
- 文章總數 : 110
年齡 : 33
來自 : 台南市
職業 : 繪圖員
愛好 : 電腦遊戲
個性 : 開朗
使用年資 : 3年
使用版本 : 2010
經驗值 : 5178
威望值 : 47
注冊日期 : 2012-05-06
回復: [求助]autolisp指令問題
透過以下:
(setq ch 0
a 0
)
(while (/= a nil) ---->>>>不需要點就按enter會返回nila滿足跳出迴圈
(setq a (getpoint))
(if (/= a nil)
(set (read (strcat "p" (itoa ch))) a)
(setq ch +1)
)
)
產出P1 P2 P3 P4 P5 P6 P7 P8
再套上
(COND
((= 2 CH)(COMMAND "MLINE" "_J" "_T" P0 P1))
((= 3 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2))
((= 4 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3))
((= 5 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4))
((= 6 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5))
((= 7 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5 P6))
((= 8 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5 P6 P7))
((= 9 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5 P6 P7 P8))
類似的方式把式子拉到比你極限點還大
你就可以滿足你要到
這是比較簡單的笨方法
(setq ch 0
a 0
)
(while (/= a nil) ---->>>>不需要點就按enter會返回nila滿足跳出迴圈
(setq a (getpoint))
(if (/= a nil)
(set (read (strcat "p" (itoa ch))) a)
(setq ch +1)
)
)
產出P1 P2 P3 P4 P5 P6 P7 P8
再套上
(COND
((= 2 CH)(COMMAND "MLINE" "_J" "_T" P0 P1))
((= 3 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2))
((= 4 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3))
((= 5 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4))
((= 6 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5))
((= 7 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5 P6))
((= 8 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5 P6 P7))
((= 9 CH)(COMMAND "MLINE" "_J" "_T" P0 P1 P2 P3 P4 P5 P6 P7 P8))
類似的方式把式子拉到比你極限點還大
你就可以滿足你要到
這是比較簡單的笨方法
a6666262000- 一般會員
- 文章總數 : 25
年齡 : 32
來自 : 台南
職業 : 機械,空間套圖
愛好 : 電影、電玩、
個性 : 喜好研究
使用年資 : 10
使用版本 : 2014-2018
經驗值 : 1962
威望值 : 42
注冊日期 : 2019-11-07
Tiger&蘋果爸 likes this post
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章