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

Join the forum, it's quick and easy

AutoCAD顧問
還沒有註冊嗎...即日起免費註冊,所有最完整的AutoCAD討論、教學及資源都在論壇裡喔~
AutoCAD顧問
Would you like to react to this message? Create an account in a few clicks or log in to continue.
[已解決]插入炸開後圖塊文字比例參考 Aoe1-113[已解決]插入炸開後圖塊文字比例參考 Ioaoe110[已解決]插入炸開後圖塊文字比例參考 2020-310[已解決]插入炸開後圖塊文字比例參考 Oiu15010[已解決]插入炸開後圖塊文字比例參考 2020-211[已解決]插入炸開後圖塊文字比例參考 Ia15010[已解決]插入炸開後圖塊文字比例參考 Aizyao10[已解決]插入炸開後圖塊文字比例參考 Uos15010[已解決]插入炸開後圖塊文字比例參考 BPl3tjj[已解決]插入炸開後圖塊文字比例參考 Ziao1510
[已解決]插入炸開後圖塊文字比例參考 Aoe15010[已解決]插入炸開後圖塊文字比例參考 Oo-2-110[已解決]插入炸開後圖塊文字比例參考 Zuoiy_10[已解決]插入炸開後圖塊文字比例參考 Aizyao11[已解決]插入炸開後圖塊文字比例參考 Iyb_1510[已解決]插入炸開後圖塊文字比例參考 Aoe1-112[已解決]插入炸開後圖塊文字比例參考 Uos15011[已解決]插入炸開後圖塊文字比例參考 Aoe2da10[已解決]插入炸開後圖塊文字比例參考 Aoe2da11[已解決]插入炸開後圖塊文字比例參考 Aoe10

[已解決]插入炸開後圖塊文字比例參考

向下

[已解決]插入炸開後圖塊文字比例參考 Empty [已解決]插入炸開後圖塊文字比例參考

發表 由 wuwubaibai 周三 30 12月 2020, 20:58

請問大大們~
小弟想在圓心替換圖塊後炸開~炸開後的文字大小比例可以選取圖框(擷取圖框比例)或直接輸入比例
所以 acx為一變數~卡關了~~圓心替代使用了蘋果爸分享的lisp
煩請各位大大幫小弟修改一下感激不盡~謝謝
源碼如下
(defun ax:getboundingbox (entname / entpl entpr ptlist)
 (vla-getboundingbox (vlax-ename->vla-object entname) 'entpl 'entpr)
 (setq ptlist (mapcar 'vlax-safearray->list (list entpl entpr)))
 (mapcar '(lambda (x) (trans x 0 1)) ptlist)
)
(defun getentdxf (ent dxf)
 (cond
   ((= (type ent) 'ename)
     (cdr (assoc dxf (entget ent '("*"))))
   )
   ((= (type ent) 'vla-object)
     (cdr (assoc dxf (entget (vlax-vla-object->ename ent) '("*"))))
   )
 )
)
(setq *en2obj* vlax-ename->vla-object)

(defun c:M3-TP (/ ss en elist p0 rad p1 sc entdata entgrp entname n ptlist scale GET IST)
(setvar "cmdecho" 0)
(command "._undo" "_begin")
(if (setq ss (ssget '((0 . "circle"))))
 (progn
  (setq n -1)
  (repeat (sslength ss)
   (setq en (ssname ss (setq n (1+ n))))
   (setq elist (entget en))
   (setq pt (cdr (assoc '10 elist)))
    (entdel en)
    (command "insert" "C:\\lisp\\\工具選項板圖塊\\\攻牙\\\M3.dwg" pt "" "" "");;
    (command "explode" "l") ;炸開插入的圖塊
  );; repeat
 );;progn
);; if
 (if (setq entname (entsel "\n請選擇圖框"))
   (if (= "INSERT" (getentdxf (car entname) 0))
     (progn
       (command "zoom" "o" (car entname) "")
       (setq ptlist (ax:getboundingbox (car entname)))
       (setq entgrp (ssget "W" (car ptlist) (cadr ptlist) '((8 . "*TEXT"))))
       (setq scale (vla-get-XScaleFactor (*en2obj* (car entname))))
       (repeat (setq n (sslength entgrp))
         (setq entname (ssname entgrp (setq n (1- n))))
         (cond
           ((wcmatch (getentdxf entname 0) "*TEXT")
             (vla-put-Height (*en2obj* entname) (* scale 3 (getvar "textsize") ))
           )
         )
       )
     )
   )
 )
(command "._undo" "_end")
(setvar "cmdecho" 1)  
(princ)
)
想再增加的功能如下
(defun c:M4-TP (/ ss en elist p0 rad p1 sc entdata entgrp entname n ptlist scale  scaleget)
(setvar "cmdecho" 0)
(command "._undo" "_begin")
(if (setq ss (ssget '((0 . "circle"))))
 (progn
  (setq n -1)
  (repeat (sslength ss)
   (setq en (ssname ss (setq n (1+ n))))
   (setq elist (entget en))
   (setq pt (cdr (assoc '10 elist)))
    (entdel en)
    (command "insert" "C:\\lisp\\\工具選項板圖塊\\\攻牙\\\M4.dwg" pt "" "" "");;
    (command "explode" "l") ;炸開插入的圖塊
  );; repeat
 );;progn
);; if
;以下想增加一個判斷與手動輸入比例
 (if (setq entname (entsel "\n請選擇圖框或輸入比例"))
     (if (= scaleget nil)
             (progn
                       (setq sc acx)
               )
               (progn
                       (setq sc  entname)
               )
       )

;以上想增加一個判斷與手動輸入比例
   (if (= "INSERT" (getentdxf (car entname) 0))
     (progn
       (command "zoom" "o" (car entname) "")
       (setq ptlist (ax:getboundingbox (car entname)))
       (setq entgrp (ssget "W" (car ptlist) (cadr ptlist) '((8 . "*TEXT"))))
       (setq scale (vla-get-XScaleFactor (*en2obj* (car entname))))
       (repeat (setq n (sslength entgrp))
         (setq entname (ssname entgrp (setq n (1- n))))
         (cond
           ((wcmatch (getentdxf entname 0) "*TEXT")
             (vla-put-Height (*en2obj* entname) (* scale 3 (getvar "textsize") ))
           )
         )
       )
     )
   )
 )
(command "._undo" "_end")
(setvar "cmdecho" 1)  
(princ)
)
[已解決]插入炸開後圖塊文字比例參考 1cs510
[已解決]插入炸開後圖塊文字比例參考 1cs1010
wuwubaibai
wuwubaibai
一般會員
一般會員

文章總數 : 70
年齡 : 42
來自 : 彰化市
職業 : 板金
愛好 : 電腦
個性 : 外向
使用年資 : 4
使用版本 : 2010
經驗值 : 4242
威望值 : 0
注冊日期 : 2014-04-18
男 獅子座 狗

回頂端 向下

回頂端


 
這個論壇的權限:
無法 在這個版面回復文章
[已解決]插入炸開後圖塊文字比例參考 Aoe1-113[已解決]插入炸開後圖塊文字比例參考 Ioaoe110[已解決]插入炸開後圖塊文字比例參考 2020-310[已解決]插入炸開後圖塊文字比例參考 Oiu15010[已解決]插入炸開後圖塊文字比例參考 2020-211[已解決]插入炸開後圖塊文字比例參考 Ia15010[已解決]插入炸開後圖塊文字比例參考 Aizyao10[已解決]插入炸開後圖塊文字比例參考 Uos15010[已解決]插入炸開後圖塊文字比例參考 BPl3tjj[已解決]插入炸開後圖塊文字比例參考 Ziao1510
[已解決]插入炸開後圖塊文字比例參考 Aoe15010[已解決]插入炸開後圖塊文字比例參考 Oo-2-110[已解決]插入炸開後圖塊文字比例參考 Zuoiy_10[已解決]插入炸開後圖塊文字比例參考 Aizyao11[已解決]插入炸開後圖塊文字比例參考 Iyb_1510[已解決]插入炸開後圖塊文字比例參考 Aoe1-112[已解決]插入炸開後圖塊文字比例參考 Uos15011[已解決]插入炸開後圖塊文字比例參考 Aoe2da10[已解決]插入炸開後圖塊文字比例參考 Aoe2da11[已解決]插入炸開後圖塊文字比例參考 Aoe10