[已解決]lisp拉伸變形
2 posters
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
[已解決]lisp拉伸變形
- 代碼:
(defun c:2031()
(setvar "cmdecho" 0)
(setq c_osmode (getvar "osmode")) ;取得物件鎖點的資料
(setq xy00 (getpoint "Enter Left/Low Point:")) ;點選中心點
(setvar "osmode" 0) ;物件鎖點 關閉
(setq swww 200) ;左右拉伸的距離
(setq shhh 200) ;上下拉伸的距離
(setq xwww 260) ;x要加的距離
(setq yhhh 260) ;y要加的距離
(setq se01 (polar xy00 0 swww )) ;向右拉伸的點
(setq sw01 (polar xy00 pi swww )) ;向左拉伸的點
(setq ss01 (polar xy00 (* pi 1.5) shhh )) ;向下拉伸的點
(setq sn01 (polar xy00 (* pi 0.5) shhh )) ;向上拉伸的點
(setq xe01 (polar xy00 0 xwww )) ;x右邊的點
(setq xw01 (polar xy00 pi xwww)) ;x左邊的點
(setq ys01 (polar xy00 (* pi 1.5) yhhh)) ;y下面的點
(setq yn01 (polar xy00 (* pi 0.5) yhhh)) ;y上面的點
(command "-insert" "D:\\MYLISP\\訂製品\\鐵板" xy00 1 1 0 ) ;插入底板圖塊
(setvar "qaflags" 1)
(command "EXPLODE" "c" (polar ys01 0 swww) (polar yn01 pi swww) "" );炸開 圖塊
(COMMAND "STRETCH" "C" xe01 (polar xw01 (* pi 1.5) 350) "" xy00 ss01) ;向下拉伸
(COMMAND "STRETCH" "C" xe01 (polar xw01 (* pi 0.5) 250) "" xy00 sn01) ;向上拉伸
(COMMAND "STRETCH" "C" ys01 (polar yn01 0 xwww) "" xy00 se01) ;向右拉伸
(COMMAND "STRETCH" "C" ys01 (polar yn01 pi xwww) "" xy00 sw01) ;向左拉伸
(setvar "qaflags" 0)
(setvar "cmdecho" 1) ; 執行 指令函數時,對提示和輸入進行回應
(setvar "osmode" c_osmode) ;恢復物件鎖點的值
)
這段程式有時候可以,有時候就會變形
當我將視窗一值縮小後(物件變到最小),在執行程式,出現的物件就會變形
當我將視窗一值縮大後(物件變到最大),在執行程式,出現的物件就會變形
只有在適當大小時才會正常的拉伸,
想請問各位前輩~我的程式哪裡出了問題需要怎麼修正?
- 附件
r1543761189 在 周四 5 1月 - 9:09 作了第 1 次修改
r1543761189- 一般會員
- 文章總數 : 22
年齡 : 44
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4896
威望值 : 0
注冊日期 : 2011-09-30
回復: [已解決]lisp拉伸變形
做編輯動作 ..圖元超出視窗外是選不到東西的.r1543761189 寫到:
- 代碼:
(defun c:2031()
(setvar "cmdecho" 0)
(setq c_osmode (getvar "osmode")) ;取得物件鎖點的資料
(setq xy00 (getpoint "Enter Left/Low Point:")) ;點選中心點
(setvar "osmode" 0) ;物件鎖點 關閉
(setq swww 200) ;左右拉伸的距離
(setq shhh 200) ;上下拉伸的距離
(setq xwww 260) ;x要加的距離
(setq yhhh 260) ;y要加的距離
(setq se01 (polar xy00 0 swww )) ;向右拉伸的點
(setq sw01 (polar xy00 pi swww )) ;向左拉伸的點
(setq ss01 (polar xy00 (* pi 1.5) shhh )) ;向下拉伸的點
(setq sn01 (polar xy00 (* pi 0.5) shhh )) ;向上拉伸的點
(setq xe01 (polar xy00 0 xwww )) ;x右邊的點
(setq xw01 (polar xy00 pi xwww)) ;x左邊的點
(setq ys01 (polar xy00 (* pi 1.5) yhhh)) ;y下面的點
(setq yn01 (polar xy00 (* pi 0.5) yhhh)) ;y上面的點
(command "-insert" "D:\\MYLISP\\訂製品\\鐵板" xy00 1 1 0 ) ;插入底板圖塊
(command "zoom" "E" )
(command "zoom" "0.5x" )
(setvar "qaflags" 1)
(command "EXPLODE" "c" (polar ys01 0 swww) (polar yn01 pi swww) "" );炸開 圖塊
(COMMAND "STRETCH" "C" xe01 (polar xw01 (* pi 1.5) 350) "" xy00 ss01) ;向下拉伸
(COMMAND "STRETCH" "C" xe01 (polar xw01 (* pi 0.5) 250) "" xy00 sn01) ;向上拉伸
(COMMAND "STRETCH" "C" ys01 (polar yn01 0 xwww) "" xy00 se01) ;向右拉伸
(COMMAND "STRETCH" "C" ys01 (polar yn01 pi xwww) "" xy00 sw01) ;向左拉伸
(setvar "qaflags" 0)
(setvar "cmdecho" 1) ; 執行 指令函數時,對提示和輸入進行回應
(setvar "osmode" c_osmode) ;恢復物件鎖點的值
)
因為程式狀態.無法判別目前視窗大小
最簡單的方式..就是..ZOOM 到E
然後縮小一點.. 確保圖元都在視窗可見之處...
我只加了2行..你試看看.!!
shenhung- 高級會員
- 文章總數 : 281
年齡 : 57
來自 : 新北市
職業 : 塑膠模具設計.AUTOLISP
愛好 : 音樂
個性 : 隨和
使用年資 : 18年
使用版本 : 2010
積分 : 15
經驗值 : 8075
威望值 : 1188
注冊日期 : 2009-06-03
回復: [已解決]lisp拉伸變形
好了~好了~
謝謝~shenhung 大大的指導~
謝謝~shenhung 大大的指導~
r1543761189- 一般會員
- 文章總數 : 22
年齡 : 44
來自 : 彰化
職業 : 設計
愛好 : 布袋戲
個性 : 安靜
使用年資 : 新手初學
使用版本 : 新手初學
經驗值 : 4896
威望值 : 0
注冊日期 : 2011-09-30
AutoCAD顧問 :: 技術(發言等級:一般會員) :: :: 進階討論 :: 已解決主題精華區
第1頁(共1頁)
這個論壇的權限:
您 無法 在這個版面回復文章