yenbl 发表于 2013-8-16 16:47:06

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

哪位高手幫幫忙...

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

可是功力不夠.......http://r27.imgfast.net/users/2715/23/55/09/smiles/91815.gif http://r27.imgfast.net/users/2715/23/55/09/smiles/84227.gif .....http://r27.imgfast.net/users/2715/23/55/09/smiles/829363.gif

(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)

指令:
页: [1]
查看完整版本: 想依倍數統一改變標註數值......哪位高手幫幫忙...