[討論] LSP檔疑問~!
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
[討論] LSP檔疑問~!
(defun c:Spline2Circle()
(SETVAR "CMDECHO" 0)
(COMMAND "UNDO" "BE")
(SETQ OLDOSMODE (GETVAR "OSMODE"))
(SETQ OLDLAYEAR (GETVAR "CLAYER"))
(SETVAR "OSMODE" 0)
;(setq FTT (getint "\n 輸入圓直徑大小: "))
(princ "請選預替換的雲行線 ")
(setq en (ssget '((0 . "spline"))))
(setq ppp (sslength en))
(setq qqq 0)
(repeat ppp
(setq ggg (ssname en qqq))
;(command "-color" 1)
(command "LAYER" "M" "CIRCLE" "C" 1 "CIRCLE" "")
(setq hhh (entget ggg))
(setq PT (MEMBER (assoc 10 hhh) hhh))
(setq pt1 (cdr (CAR PT)))
(setq pt2 (cdr (NTH 8 PT)))
;(command "circle" "2p" PT1 (polar pt1 (* pi 1.5) FTT))
(command "circle" "2p" PT1 PT2)
(setq qqq (+ qqq 1)))
(command "erase" en "")
;(command "-color" "bylayer")
(princ (strcat "\n共有 " (itoa ppp) " 個雲行線物件替換成圓物件...."))
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)
(COMMAND "UNDO" "E")
(prin1)
)
↑蘋果爸之前給的檔案~相當快速好用~想請問一下蘋果爸 如果要把雲行線改成橢圓轉正圓 需要改哪個地方 我找LSP黨找不到解說
因為目前其他繪圖軟體圓轉CAD的圓會變成雲行線AND橢圓兩種~如過是雲行線的話 問題已經解決了
而我自己修改LSP都會出錯...因為我只把''spline''~>''ellipse'' 然後雲行線改成橢圓 結果都出現錯誤..
能否勞駕蘋果爸幫我用成橢圓 還是說有網站介紹LSP檔案裡面的指令相關解說...不然一直麻煩蘋果爸也相當不好意思~!
(SETVAR "CMDECHO" 0)
(COMMAND "UNDO" "BE")
(SETQ OLDOSMODE (GETVAR "OSMODE"))
(SETQ OLDLAYEAR (GETVAR "CLAYER"))
(SETVAR "OSMODE" 0)
;(setq FTT (getint "\n 輸入圓直徑大小: "))
(princ "請選預替換的雲行線 ")
(setq en (ssget '((0 . "spline"))))
(setq ppp (sslength en))
(setq qqq 0)
(repeat ppp
(setq ggg (ssname en qqq))
;(command "-color" 1)
(command "LAYER" "M" "CIRCLE" "C" 1 "CIRCLE" "")
(setq hhh (entget ggg))
(setq PT (MEMBER (assoc 10 hhh) hhh))
(setq pt1 (cdr (CAR PT)))
(setq pt2 (cdr (NTH 8 PT)))
;(command "circle" "2p" PT1 (polar pt1 (* pi 1.5) FTT))
(command "circle" "2p" PT1 PT2)
(setq qqq (+ qqq 1)))
(command "erase" en "")
;(command "-color" "bylayer")
(princ (strcat "\n共有 " (itoa ppp) " 個雲行線物件替換成圓物件...."))
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)
(COMMAND "UNDO" "E")
(prin1)
)
↑蘋果爸之前給的檔案~相當快速好用~想請問一下蘋果爸 如果要把雲行線改成橢圓轉正圓 需要改哪個地方 我找LSP黨找不到解說
因為目前其他繪圖軟體圓轉CAD的圓會變成雲行線AND橢圓兩種~如過是雲行線的話 問題已經解決了
而我自己修改LSP都會出錯...因為我只把''spline''~>''ellipse'' 然後雲行線改成橢圓 結果都出現錯誤..
能否勞駕蘋果爸幫我用成橢圓 還是說有網站介紹LSP檔案裡面的指令相關解說...不然一直麻煩蘋果爸也相當不好意思~!
x26811199- 一般會員
- 文章總數 : 24
年齡 : 35
來自 : 鑫北市樹林區
職業 : 剛接觸美工
愛好 : 鋼琴~網球~
個性 : 樂天開朗
使用年資 : 新手初學
使用版本 : 2008
經驗值 : 4864
威望值 : 0
注冊日期 : 2011-10-15
回復: [討論] LSP檔疑問~!
- 代碼:
(defun c:ellipse2Circle()
(SETVAR "CMDECHO" 0)
(COMMAND "UNDO" "BE")
(SETQ OLDOSMODE (GETVAR "OSMODE"))
(SETQ OLDLAYEAR (GETVAR "CLAYER"))
(SETVAR "OSMODE" 0)
;(setq FTT (getint "\n 輸入圓直徑大小: "))
(princ "請選預替換的橢圓 ")
(setq en (ssget '((0 . "ellipse"))))
(setq ppp (sslength en))
(setq qqq 0)
(repeat ppp
(setq ggg (ssname en qqq))
;(command "-color" 1)
(command "LAYER" "M" "CIRCLE" "C" 1 "CIRCLE" "")
(setq hhh (entget ggg))
(setq PT (MEMBER (assoc 10 hhh) hhh))
(setq PT2 (MEMBER (assoc 11 hhh) hhh))
(setq pt1 (cdr (CAR PT)))
(setq pt2 (cdr (CAR PT2)))
;(command "circle" "2p" PT1 (polar pt1 (* pi 1.5) FTT))
(command "circle" PT1 PT2)
(setq qqq (+ qqq 1)))
(command "erase" en "")
;(command "-color" "bylayer")
(princ (strcat "\n共有 " (itoa ppp) " 個橢圓物件替換成圓物件...."))
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)
(COMMAND "UNDO" "E")
(prin1)
)
不能光改''spline''~>''ellipse''
必須
(setq PT (MEMBER (assoc 10 hhh) hhh))
(setq pt1 (cdr (CAR PT)))
(setq pt2 (cdr (NTH 8 PT)))
改成
(setq PT (MEMBER (assoc 10 hhh) hhh))
(setq PT2 (MEMBER (assoc 11 hhh) hhh))
(setq pt1 (cdr (CAR PT)))
(setq pt2 (cdr (CAR PT2)))
及
(command "circle" "2p" PT1 PT2)
改成
(command "circle" PT1 PT2)
leoneriol 在 2011-11-10, 13:00 作了第 1 次修改 (原因 : 程式碼小修正)
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
回復: [討論] LSP檔疑問~!
那些是什麼意思 代表些什麼
因為能看的懂得只有spline跟elilpse~
所以只會修改那個地方 其他的地方 看不太懂...
能解說一下嗎?
馬上來試試看 橢圓轉圓的檔
因為能看的懂得只有spline跟elilpse~
所以只會修改那個地方 其他的地方 看不太懂...
能解說一下嗎?
馬上來試試看 橢圓轉圓的檔
x26811199- 一般會員
- 文章總數 : 24
年齡 : 35
來自 : 鑫北市樹林區
職業 : 剛接觸美工
愛好 : 鋼琴~網球~
個性 : 樂天開朗
使用年資 : 新手初學
使用版本 : 2008
經驗值 : 4864
威望值 : 0
注冊日期 : 2011-10-15
回復: [討論] LSP檔疑問~!
抱歉 請問一下LEO大大
我用您給我的LSP檔去修改9MM橢圓轉換圓
結果他轉換出來的圓是1666.9381.....
我測試了一下 不知是不是我的電腦有問題.....
使用LEO大的檔案
直徑10MM圓~>216MM圓.
12MM~>181MM
15MM~>147MM
這是為啥...
語法中有一個輸入直徑大小 但是我輸入指令後 選一個橢圓 按下ENTER他就轉了 沒有出現叫我輸入直徑的地方..
我用您給我的LSP檔去修改9MM橢圓轉換圓
結果他轉換出來的圓是1666.9381.....
我測試了一下 不知是不是我的電腦有問題.....
使用LEO大的檔案
直徑10MM圓~>216MM圓.
12MM~>181MM
15MM~>147MM
這是為啥...
語法中有一個輸入直徑大小 但是我輸入指令後 選一個橢圓 按下ENTER他就轉了 沒有出現叫我輸入直徑的地方..
x26811199- 一般會員
- 文章總數 : 24
年齡 : 35
來自 : 鑫北市樹林區
職業 : 剛接觸美工
愛好 : 鋼琴~網球~
個性 : 樂天開朗
使用年資 : 新手初學
使用版本 : 2008
經驗值 : 4864
威望值 : 0
注冊日期 : 2011-10-15
回復: [討論] LSP檔疑問~!
- 代碼:
(defun c:ellipse2Circle()
(SETQ OLDOSMODE (GETVAR "OSMODE"))
(SETQ OLDLAYEAR (GETVAR "CLAYER"))
(SETVAR "CMDECHO" 0)
(SETVAR "OSMODE" 0)
(princ "請選預替換的橢圓 ")
(setq en (ssget '((0 . "ellipse"))))
(setq n (sslength en))
(setq i 0)
(command "LAYER" "M" "CIRCLE" "C" 1 "CIRCLE" "")
(repeat n
(setq enidate (entget (ssname en i)))
(setq PT1 (cdr (assoc 10 enidate)))
(setq PT2 (cdr (assoc 11 enidate)))
(setq PT3 (polar Pt1 0 (distance '(0 0) pt2)))
(command "circle" PT1 PT3)
(setq i (+ i 1)))
(command "erase" en "")
(princ (strcat "\n共有 " (itoa n) " 個橢圓物件替換成圓物件...."))
(SETVAR "OSMODE" OLDOSMODE)
(SETVAR "CLAYER" OLDLAYEAR)
(prin1)
)
修正過了,您再用用看吧XD
乘涼乘過頭了..........Orz
leoneriol- 榮譽顧問
- 文章總數 : 818
年齡 : 40
來自 : 基隆市七堵區
職業 : 機電工程公司-繪圖(工地)
愛好 : 看小說
個性 : 不愛說話-反應慢
使用年資 : 6年
使用版本 : 2008 & 2012
積分 : 27
經驗值 : 9199
威望值 : 960
發帖精華 : 1
回帖精華 : 1
注冊日期 : 2009-03-12
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章