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

[討論]想依倍數統一改變標註數值......哪位高手幫幫忙...

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

[討論]想依倍數統一改變標註數值......哪位高手幫幫忙...

發表 由 yenbl 于 2013-08-16, 09:24

哪位高手幫幫忙...

我在圖面上某個部分.以圓圈框起來....再把圓圈及其內的所有物件.拷貝搬移後.再放大數倍...標上尺寸後跟實際尺寸不一樣..
所以想寫一程式......框選放大祥圖(含標註)...在選原位置圓圈..程式算出倍數..在依倍數改正標註數值..........這是我想做的.....

可是功力不夠.......竊喜 害羞 .....嘆氣 

(defun c:dim_sca()                                                                
 (setq ss (ssget))                                                                
 (setq i 0 cir nil)                                                              
 (setq nn (sslength ss))                                                          
 (repeat nn                                                                      
   (setq ename (ssname ss i))                                                    
   (setq en (entget ename))                                                      
   (setq enf (cdr (assoc 0 en)))                                                  
   (if (= enf "CIRCLE")                                                          
     (progn                                                                      
       (setq r1 (cdr (assoc 40 en)))                                              
       (if cir                                                                    
         (if (> r1 cir) (setq cir r1))                                            
         (setq cir r1)                                                            
       )                                                                          
     )                                                                            
   )                                                                              
   (setq i (+ 1 i))                                                              
 )                                                                                
 (setq en2 (entsel "\n選擇原位置外框圓 : "))                                      
 (setq dxf (entget (car en2)))                                                    
 (setq nam (cdr (assoc 0 dxf)))                                                  
 (if (= nam "CIRCLE")                                                            
   (progn                                                                        
     (setq cir2 (cdr (assoc 40 dxf)))                                            
     (setq r_sca (fix (/ cir cir2)))                                              
   )                                                                              
 )                                                                                
 (setq i 0)                                                                      
 (repeat nn                                                                      
   (setq ename (ssname ss i))                                                    
   (setq en (entget ename))                                                      
   (setq enf (cdr (assoc 0 en)))                                                  
   (if (= enf "DIMENSION")                                                        
     (progn                                                                      
       (setq dh (assoc 42 en))                                                    
       (setq oldh (assoc 1 en))                                                  
       (setq nh (/ (cdr dh) r_sca))                                              
       (setq newh (cons 1 nh))                                                    
       (setq en (subst newh oldh en))                                            
       (entmod en)                                                                
     )                                                                            
   )                                                                              
   (setq i (+ 1 i))                                                              
 )                                                                                
)                                                                                  

=====================================
AUTOCAD顯示錯誤

選擇原位置外框圓 : ; 錯誤: 損壞的 DXF 群組: (1 . 3.6)

指令:
avatar
yenbl
一般會員
一般會員

文章總數 : 87
年齡 : 61
來自 : 中壢市
職業 : 室內設計
愛好 : 繪圖..AutoLisp
個性 : 老實
使用年資 : 31年
使用版本 : 2005
經驗值 : 2945
威望值 : 87
注冊日期 : 2011-04-06
男 雙魚座 猴

回頂端 向下

回復: [討論]想依倍數統一改變標註數值......哪位高手幫幫忙...

發表 由 Atsai 于 2013-08-18, 15:41

以上的省略…
                                     
       ;; (setq nh (/ (cdr dh) r_sca))  
      ;;上面這一句改成下面這一句
      (setq nh (rtos (/ (cdr dh) r_sca) 2 2))

      ...…     
                                 
       (entmod en)                                                                
     )                                                                            
   )                                                                              
   (setq i (+ 1 i))                                                              
 )                                                                                
;;建議這裡可以再加個
(princ)
)

Tiger&蘋果爸 寫到:讚啦!! 謝謝熱心回覆~< 積分 +1>
[公告]關於團隊成員的回文及貢獻
avatar
Atsai
中級會員
中級會員

文章總數 : 115
年齡 : 42
來自 : 台中
職業 : 工程
愛好 : 看漫畫
個性 : 樂天
使用年資 : 10
使用版本 : 2010
AutoCAD基礎篇等級 : 10星級
積分 : 7
經驗值 : 2958
威望值 : 337
注冊日期 : 2012-04-06
男 金牛座 兔

回頂端 向下

回復: [討論]想依倍數統一改變標註數值......哪位高手幫幫忙...

發表 由 yenbl 于 2013-08-19, 05:08

謝謝.......噯呀........看了老半天...原來.......太棒了....感恩...
avatar
yenbl
一般會員
一般會員

文章總數 : 87
年齡 : 61
來自 : 中壢市
職業 : 室內設計
愛好 : 繪圖..AutoLisp
個性 : 老實
使用年資 : 31年
使用版本 : 2005
經驗值 : 2945
威望值 : 87
注冊日期 : 2011-04-06
男 雙魚座 猴

回頂端 向下

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


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