【KAIXIN】 发表于 2011-12-2 14:50:46

框选写入文字功能(实用)

本帖最后由 【KAIXIN】 于 2011-12-2 16:21 编辑








如果觉得框选的宽与高不合适可以用下面的程序(刷一下):






kugoo999 发表于 2021-7-11 20:23:43

框选写入文字功能,学习了!

taiwanfox 发表于 2024-7-21 15:32:48

好東西,謝謝分享,感謝!!!

tensir 发表于 2024-7-9 13:14:33

感谢作者的分享!

hao3ren 发表于 2011-12-2 16:09:53

晕倒哦,楼主购买主题一个,附件还要一个啊

【KAIXIN】 发表于 2011-12-2 16:11:50

本帖最后由 【KAIXIN】 于 2011-12-2 16:16 编辑

hao3ren 发表于 2011-12-2 16:09 http://bbs.mjtd.com/static/image/common/back.gif
晕倒哦,楼主购买主题一个,附件还要一个啊

哈哈不好意思!看错了,第一次收钱,我改改!

hao3ren 发表于 2011-12-2 16:14:30

理解错误,以为是在原有文字框选位置处写入文字,实际上就是写文字,这样写文字的字高怎么控制啊

【KAIXIN】 发表于 2011-12-2 16:15:46

hao3ren 发表于 2011-12-2 16:14 static/image/common/back.gif
理解错误,以为是在原有文字框选位置处写入文字,实际上就是写文字,这样写文字的字高怎么控制啊

字高在框选的时候就可以控制

【KAIXIN】 发表于 2011-12-2 16:22:53

hao3ren 发表于 2011-12-2 16:14 static/image/common/back.gif
理解错误,以为是在原有文字框选位置处写入文字,实际上就是写文字,这样写文字的字高怎么控制啊

我上传了一个文字高宽比,可以设置文字的默认样子......

【KAIXIN】 发表于 2011-12-2 16:26:03

本帖最后由 【KAIXIN】 于 2011-12-2 16:27 编辑


;修改字高
(DEFUN changtextheight (EN TCH_ok / th1 aa1)
(if b
    (progn
      (setq kk 0)
      (setq ss "\n新字高<")
      (SETQ TH (CDR (ASSOC 40 EN)))
      (if tch_ok
(progn
   (setq th1 (rtos (* th scale_47) 2 2))
   (setq th (* th scale_47))
)
(setq th1 (rtos (/ th 1) 2 2))
      )
      (princ (strcat ss th1 "mm>:"))
      (setq aa1 (getreal))
      (if aa1
(setq th (* aa1 1))
      )
      (setq b nil)
    )
)
(if TCH_ok
    (progn
      (setq th (/ th scale_47))
      (setq en (subst (cons 40 th) (assoc 40 en) en))
      (setq th (* th scale_47))
    )
    (setq en (subst (cons 40 th) (assoc 40 en) en))
)
(entmod en)
(setq kk (1+ kk))
)
******************************************************
(defun C:CH (/ LL EN k kk th b)
(setq sse (ssget))
(if sse
    (progn
      (setq ll (sslength sse)
   b0
   k0
   kk 0
      )
      (repeat ll
(SETQ EN (ENTGET (ssname sse k)))
(setq TCH_ok nil)
(if (= (CDR (ASSOC 0 EN)) "TEXT")
   (changtextheight en TCH_ok)
   (if (= (CDR (ASSOC 0 EN)) "TCH_TEXT")
   (progn
       (setq scale_47 (cdr (assoc 47 en)))
   ;(setq en (subst (cons 72 11) (assoc 72 en) en))
       (setq TCH_ok 0)
       (changtextheight en TCH_ok)
   )
   )
)    ;if text_end
(if (= (CDR (ASSOC 0 EN)) "INSERT")
   (progn
   (setq main_B_name (cdr (assoc -1 en)))
   (setq an (tblsearch "block" (cdr (assoc 2 en))))
   (setq an_name (cdr (assoc -2 an)))
   (while (/= an_name nil)
       (setq en (entget an_name))
       (if (= (CDR (ASSOC 0 EN)) "TEXT")
(progn
    (changtextheight en TCH_ok)
)
       )
       (setq an_name (entnext an_name))
   )
   (entupd main_B_name)
   )
)    ;if_insert_end
(setq k (1+ k))
      )   ;repeat_end
      (princ (strcat "改了" (rtos kk) "个字符."))
    )
)
(PRINC)
)
**************************************************
(defun C:CW (/ p l n nw chm en ow enm e1)
      (setq p (ssget))
      (if p (progn
      (setq l 0 n (sslength p) chm 0)
      (while (< l n)
          (setq enm (cdr (assoc 0 (setq en (entget (ssname p l))))))
          (if(or (= enm "LWPOLYLINE") (= enm "POLYLINE") (= enm "LINE") (= enm "ARC")(= enm "CIRCLE"))
             (progn
               (if (zerop chm) (progn
               (if (and (/= enm "LINE") (/= enm "ARC")) (setq ow (cdr (assoc 40 en)))
                   (setq ow 0))
                (princ "\n新线宽<")
                (princ (rtos (/ ow 1) 2 2))
                (setq nw (getreal "mm>:"))
                (if (null nw) (setq nw ow))
            ))
    (if (= enm "CIRCLE")
      (progn
      ;(setq angle1 (/ pi 2))
      (setq pt1 (polar (CDR(ASSOC 10 EN)) 0 (CDR(ASSOC 40 EN))))
      (setq pt2 (polar (CDR(ASSOC 10 EN)) pi (CDR(ASSOC 40 EN))))
      (command ".BREAK" pt1 pt2)
      (command "pedit" (ssname p l) "y" "w" nw "c" "")
             ))
    (if (or (= enm "LINE") (= enm "ARC"))
      (command "pedit" (ssname p l) "y" "w" nw "")
      
      (if (or(= enm "LWPOLYLINE") (= enm "POLYLINE"))
            (command "pedit" (ssname p l) "w" nw "")
      )
      )
            (setqchm (1+ chm))
          ))
          (setq l (1+ l))
      )
      ))
      (princ "改了") (princ chm) (princ "条线.")
      (PRINC)
)

;(command ".BREAK"
;       (cons e
;          (polar (socas 10) 0 (socas 40))
;      )
;       (polar (socas 10) 1e-3 (socas 40))

hao3ren 发表于 2011-12-2 16:27:35

这个功能是最基本的,我以前弄得也有,理解错误了,呵呵呵,说实话这个源码收费有点坑人了

【KAIXIN】 发表于 2011-12-2 16:35:29

hao3ren 发表于 2011-12-2 16:27 static/image/common/back.gif
这个功能是最基本的,我以前弄得也有,理解错误了,呵呵呵,说实话这个源码收费有点坑人了

嗯,其实这个是我很常用的一个程序,工作需要特意写的,顺便分享!
可以框选一个表格,或者一个框来写文本,文本的内容可以任意.........

longer1000 发表于 2011-12-3 19:46:56

实用性不是很大,每次框选的不可能一样大
页: [1] 2 3 4 5
查看完整版本: 框选写入文字功能(实用)