明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1686|回复: 9

[基础] 字转为任意块

[复制链接]
发表于 2009-10-9 23:34:00 | 显示全部楼层 |阅读模式

各位大虾,请问下面的T/B能批量转为块嘛,块名任意吧,块的角度就随字的角度,帮看看有些什么办法,

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
"觉得好,就打赏"
还没有人打赏,支持一下
明经网友  发表于 2009-10-10 12:49:00
就是把字转成块就成了.看看这个思路行不行,先把文字加上方框,再把方框转成块,看行不行
回复 支持 反对

使用道具

 楼主| 发表于 2009-10-11 01:11:00 | 显示全部楼层
错了.应该是各位大侠,请问下面的T/B能批量转为块嘛,块名任意吧,块的角度就随字的角度,帮看看有些什么办法,
发表于 2009-10-11 08:45:00 | 显示全部楼层
357785513:给你编一个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
明经网友  发表于 2009-10-11 14:55:00

但弄出来的是无名块,

我在网上搜了一个不能用

;;(txt_to_blk "LUCAS")
(defun TXT_TO_BLK (STR / DATA N SS)
   (setq STR (strcase STR))
   (if (setq SS (ssget '((0 . "text"))))
     (progn
       (setq N 0)
       (repeat (sslength SS)
  (if
    (= STR
       (strcase (cdr (assoc 1 (setq DATA (entget (ssname SS N))))))
    )
     (entmake (list '(0 . "INSERT")
      '(100 . "AcDbBlockReference")
      (assoc 8 DATA)
      (cons 2 STR)
      (assoc 10 DATA)
       )
     )
  )
  (setq N (1+ N))
       )
       (command "_.erase" SS "")
     )
   )
   (princ)
)

回复 支持 反对

使用道具

 楼主| 发表于 2009-10-11 14:58:00 | 显示全部楼层

谢谢,感谢给予帮助,弄出来的是无名块是吧,不管它无名块就无名块吧,我在网上搜了一个但不能用

;;(txt_to_blk "LUCAS")
(defun TXT_TO_BLK (STR / DATA N SS)
   (setq STR (strcase STR))
   (if (setq SS (ssget '((0 . "text"))))
     (progn
       (setq N 0)
       (repeat (sslength SS)
  (if
    (= STR
       (strcase (cdr (assoc 1 (setq DATA (entget (ssname SS N))))))
    )
     (entmake (list '(0 . "INSERT")
      '(100 . "AcDbBlockReference")
      (assoc 8 DATA)
      (cons 2 STR)
      (assoc 10 DATA)
       )
     )
  )
  (setq N (1+ N))
       )
       (command "_.erase" SS "")
     )
   )
   (princ)
)

 楼主| 发表于 2009-10-11 14:59:00 | 显示全部楼层
 楼主| 发表于 2009-10-11 19:57:00 | 显示全部楼层
感谢三楼楼主,
发表于 2009-12-2 10:13:00 | 显示全部楼层
出来的是无名块
发表于 2009-12-2 10:18:00 | 显示全部楼层

你需要怎样取块名?

(defun c:tt1 ( / ec r n ss e bname)
     (if (and (setq ec (car (entsel "\n点选样板文字:")))
              (= "TEXT" (cdr (assoc 0 (setq ec (entget ec)))))
       (print "\n选择要转换成块的文字:")         
              (setq ss (ssget (list '(0 . "TEXT") (assoc 1 ec))))
              (setq bname (getstring "输入块名:"))      
         )
         (progn    
     (entmake (list '(0 . "BLOCK") (cons 2 bname) '(70 . 0) '(10 0 0 0)))
        (setq ec (subst '(10 0. 0. 0.) (assoc 10 ec) ec))
        (entmake (subst '(50 . 0.) (assoc 50 ec) ec))   
     (setq bname (entmake '((0 . "ENDBLK"))))
    
            (setq n -1)
            (repeat (sslength ss)
        (setq e (entget (ssname  ss (setq n (+ n 1)))))
        (entmake (list '(0 . "INSERT") (cons 2 bname) (assoc 10 e) (assoc 50 e)
     (cons 41 1) (cons 42 1) (cons 43 1))
    )   )
    (command "erase" ss "")          
        )
     )    
     (princ)
 ) 
 

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-1 19:23 , Processed in 0.205311 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表