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

[已解決]lisp中無法呼叫執行express tools中的extrim命令

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

[已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 tarpon 于 2011-08-03, 02:21

[問題]lisp中無法呼叫執行express tools中的extrim命令
(setq po_1(getpoint)
(command "extrim" "l" po_1)

extrim無法執行
要如何才能在lisp中呼叫
執行express tools中的extrim命令 疑問


tarpon 在 2011-08-06, 00:50 作了第 2 次修改
avatar
tarpon
中級會員
中級會員

文章總數 : 201
年齡 : 27
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 3595
威望值 : 238
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 adslwang 于 2011-08-03, 04:05

這個剛剛好我會

(C:extrim)


竊喜


avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4605
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 tarpon 于 2011-08-03, 07:15

adslwang謝謝您
(c:extrim)這個我試過
可執行extrim命令
但"L"選擇和"po_1"點位置
就無法抓到extrim中使用須另選 疑問
我畫了一個矩形框或圓
交疊在許多線後上
想用快速截切方式截除矩形框內或圓內的線段
想偷懶利用extrim程式好像不可行 三條線2
avatar
tarpon
中級會員
中級會員

文章總數 : 201
年齡 : 27
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 3595
威望值 : 238
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 adslwang 于 2011-08-03, 07:44

是沒有錯,不能偷懶!
不然就去搜尋截取express的extrim的碼去做部份修改 試一試 或許可行
可是利用extrim來修剪框內的線段,不是沒有辦法全修除嘛!
好像只有一小斷的距離......
不過矩型的話 不知道可不可以使用這樣的方式 只是一個思考方向
我有用指令測過一次 就是在矩型框夾雜許多穿越的線段 可以將矩型
框先往內偏移複制一小段距離 再使用修剪 選原矩型做修剪基準 再利用
可以取得四個點位的方法(我指令是用籬選) 線就可以刪除 之後再來刪掉
偏移的矩型.....
試一試吧!
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4605
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 tarpon 于 2011-08-03, 11:25

用了偷雞法可暫時解決
但還是希望有簡便方式
將extrim程式和我的程式函數結合在一起
在修改一下extrim程式如下
(setq na(entlast));新選擇物件解決L
;原選擇物件
;(setq na (acet-ui-single-select '((-4 . "; (0 . "CIRCLE")
; (0 . "ARC")
; (0 . "LINE")
; (0 . "ELLIPSE")
; (0 . "ATTDEF")
; (0 . "TEXT")
; (0 . "MTEXT")
; (0 . "IMAGE")
; (0 . "SPLINE")
; (0 . "INSERT")
; (0 . "SOLID")
; (0 . "3DFACE")
; (0 . "TRACE")
; (0 . "LWPOLYLINE")
; (-4 . "; (0 . "POLYLINE")
; (-4 . "; (-4 . "&")
; (70 . 112)
; (-4 . "NOT>")
; (-4 . "AND>")
; (-4 . "OR>")
; )
; T
; );acet-ui-single-select
;);setq
.
.
.
.

;(setq p1 (getpoint "\nSpecify the side to trim on:"));setq原點選截切位置
(setq p1 pp_k1);新點選截切位置解決點位置
avatar
tarpon
中級會員
中級會員

文章總數 : 201
年齡 : 27
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 3595
威望值 : 238
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 adslwang 于 2011-08-04, 15:13

◎只有矩型,有把框內細小線段及文字考慮進去,沒有加入除錯處理
◎缺點方框內部1以內的物件有可能會無法刪除,不過這樣的距離應該夠用了
◎圓,可能要思考一下處理方法,晚了,我不練了...
◎參考看看,其它前輩或許有更好的方法.....
(defun c:ttprr(/ en et1 et11 et2 et3 et4)
(setvar "cmdecho" 0)
(setq en (entsel "\n 選取物件"))
(setq point1 (getpoint "\n 第1點(左下角為基準點)"))
(setq point2 (getpoint point1 "\n 第2點(長度點)"))
(setq point3 (getpoint point1 "\n 第3點(寬度點)"))
(setq long12 (distance point1 point2))
(setq long13 (distance point1 point3))
(setq long122 (- long12 2))
(setq long132 (- long13 2))
(setq et1 (polar point1 0 1))
(setq et11 (polar et1 (/ pi 2) 1))
(setq et2 (polar et11 0 long122))
(setq et3 (polar et2 (/ pi 2) long132))
(setq et4 (polar et3 pi long122))
(command "trim" en "" "F" ET11 ET2 ET3 ET4 "" "")
(setq new1 et11)
(setq new2 et3)
(setq kk (ssget "w" new1 new2))
(command "erase" kk "" "")
(command "rectang" point2 point3)
(princ)
)
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4605
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 tarpon 于 2011-08-05, 10:48

把截切範圍畫的較原本矩形框大
先刪掉原本矩形框
再把籬選框作的跟原本的矩形一樣大
截切完再把原矩形畫上
這樣截切就不會留下小線頭
avatar
tarpon
中級會員
中級會員

文章總數 : 201
年齡 : 27
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 3595
威望值 : 238
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 adslwang 于 2011-08-05, 13:56

tarpon 寫到:把截切範圍畫的較原本矩形框大
先刪掉原本矩形框
再把籬選框作的跟原本的矩形一樣大
截切完再把原矩形畫上
這樣截切就不會留下小線頭

您會錯意了,原有的框是修剪界線,再做出框往內延伸1的距離來做修剪,因位已經往內延伸故可以求的框內四角點,再利用四角點做窗選刪除小物件,至於再補上矩形框的原因是,在測試的時後不知到什麼原因執行完框都會消失,故再補回原有的框。
avatar
adslwang
高級會員
高級會員

文章總數 : 372
年齡 : 39
來自 : 台南
職業 : 自由業
愛好 : 電腦、旅行
個性 : 樂觀
使用年資 : 1年
使用版本 : 2009
積分 : 17
經驗值 : 4605
威望值 : 355
回帖精華 : 1
注冊日期 : 2008-10-02
藍鵲88號
男 處女座 馬

回頂端 向下

回復: [已解決]lisp中無法呼叫執行express tools中的extrim命令

發表 由 tarpon 于 2011-08-05, 14:25

抱歉會錯意了
節取一段
(DEFUN C:COL19(/ L_01 W_01 PO_1 PO_2 PO_3 PO_4 PO_5 PO_6 AGX_1 PK_1 PK_2 PK_3 PK_4)
(SETVAR "OSMODE" 39);物件鎖點
(SETQ STY_1 "COL_01")
(SETQ L_01 (GETREAL "\n請輸入柱子長度:"))
(SETQ W_01 (GETREAL "\n請輸入柱子寬度:"))
(SETQ PO_1 (GETPOINT "\n請點選柱子插入點:"))
(SETQ AGX_1(GETANGLE PO_1 "\n請點選柱子方向:"))
(SETVAR "OSMODE" 0);取消物件鎖點
(COND
((= STY_1 "COL_01")
(SETQ PO_2 (POLAR PO_1 AGX_1 W_01))
(SETQ PO_3 (POLAR PO_2 (- AGX_1 (/ PI 2.0)) L_01))
(SETQ PO_4 (POLAR PO_1 (- AGX_1 (/ PI 2.0)) L_01))
(SETQ PK_1 (POLAR PO_1 (- AGX_1 (/ PI 4.0)) (/ W_01 100.0)));籬選框
(SETQ PK_2 (POLAR PO_2 (- AGX_1 (* 3.0(/ PI 4.0)))(/ W_01 100.0)));籬選框
(SETQ PK_3 (POLAR PO_3 (+ AGX_1 (* 3.0(/ PI 4.0)))(/ W_01 100.0)));籬選框
(SETQ PK_4 (POLAR PO_4 (+ AGX_1 (/ PI 4.0))(/ W_01 100.0)));籬選框
(COMMAND "BREAK" PO_2 PO_1);截切矩形柱重疊邊線段
(COMMAND "BREAK" PO_4 PO_1);截切矩形柱重疊邊線段
(COMMAND "PLINE" PO_1 PO_2 PO_3 PO_4 "C")
;(COMMAND "TRIM" "L" "" "C" PAUSE PAUSE "")
(COMMAND "TRIM" "L" "" "F" PK_1 PK_2 PK_3 PK_4 "" "");籬選截切矩形柱內框選線段
;(C:EXTRIM);截切矩形柱內框選線段
)
);cond結束
);defun結束
avatar
tarpon
中級會員
中級會員

文章總數 : 201
年齡 : 27
來自 : 台北
職業 : 設計
愛好 : 打球
個性 : 溫和
使用年資 : 5年
使用版本 : 2006
積分 : 6
經驗值 : 3595
威望值 : 238
注冊日期 : 2010-07-01
串連貼紙成功 男 巨蟹座 馬

回頂端 向下

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


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