天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 7|回复: 0

分解MTEXT(源码)-非炸开之重写方式

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
一直头疼图纸说明,MTEXT文字各段压落问题,
分解MTEXT方法呢,会造成关联其他程序中断,采取重写方式成文,是个好办法
然而,对于重写方式,一直有不好解决的问题,特别是,对于重写一行到底取多少数呢?
考虑从MTEXT的框子宽度,取得这个值,也没想起来怎么取,可能本来MTEXT里就有,这个最大字数的内码在,
发下,谁能给出这个值的取法吗?
;;重写方式分解MTEXT
;;by 尘缘一生 QQ:15290049
(defun c:tt ()
  (setq nam (car (entsel)))
  (setq  
    col (ss-getcolor nam) ;;颜色
    hi (e-higt nam) ;;高度
    ang (e-ang nam nil)
    p0 (polar (dxf1 nam 10) (- ang pi2) (* 1.5 hi))
    ;;p0 (car (e-box4 enam nil)) ;;垂直文字BUG
  )
  (if (null (setq ly (dxf1 nam 8))) (setq ly (getvar "clayer")))
  (if (null (setq sty (dxf1 nam 7))) (setq sty $hz))
  (setq lis (reverse (str->lst (t-string-subst "\\" "\\P" (mtext2text nam)) "\\")))
;(entdel nam) ;测试先注销,发布需要
  (repeat (setq j (length lis))
    (setq str (nth (setq j (1- j)) lis))
    (setq lis1 (reverse (xl-div (sl-str->singleonly str) 46))) ;此处46,为裂解重写一行字数,需要深入研究,如何从MTEXT里,取得这个变值为妙
    (repeat (setq n (length lis1))
      (setq lis0 (nth (setq n (1- n)) lis1) str0 "")
      (repeat (setq i (length lis0))
        (setq str0 (strcat (nth (setq i (1- i)) lis0) str0))
      )
      (entmake (list '(0 . "TEXT") (cons 1 str0) (cons 8 ly) (cons 62 col) (cons 7 sty) (cons 10 p0) (cons 40 hi) (cons 50 ang) (cons 41 0.7)))
      (setq p0 (polar p0 (- ang pi2) (* 1.5 hi)))
    )
  )
)
;提取多行文字,去除无用格式符号,但保留分行符\\P-----(一级)------
;返回-->  "4.钢筋的连接要求\\P 钢筋直径d>20mm时,用机..."
(defun mtext2text (nam / s ob) ;; (setq s (vlax-get (en2obj (car (entsel))) 'TextString))
  (setq s (vlax-get (en2obj nam) 'TextString))
  (vlax-put-property (setq ob (vlax-create-object "Vbscript.RegExp")) "IgnoreCase" 0)
  (vlax-put-property ob "Global" 1)
  (setq s
    (mapcar
      '(lambda (x y) (vlax-put-property ob "Pattern" x) (setq s (vlax-invoke-method ob "Replace" s y)))
      '("\\\\\\\\" "\\\\{" "\\\\}" "\\\\p(.[^;]*);" "\\\\S(.[^;]*)(\\^|#|\\\\)(.[^;]*);"
         "(\\\\F|\\\\f|\\\\C|\\\\H|\\\\T|\\\\Q|\\\\W|\\\\A)(.[^;]*);" "(\\\\L|\\\\O|\\\\l|\\\\o)" "\\\\~"
         "({|})" "\\x01" "\\x02" "\\x03")
      (list (chr 1) (chr 2) (chr 3) "" "" "" "" "" (chr 0) "" "" "\\" "{" "}")
    )
  )
  (if ob (vlax-release-object ob))
  (last s)
)
;;字符串以旧换新----(一级)----
;;(t-string-subst "毛" "a" "abc")
(defun t-string-subst (new old str / n)
  (setq n (- (strlen new)))
  (while (setq n (vl-string-search old str (min (+ n (strlen new)) (strlen str))))
    (setq str (vl-string-subst new old str n))
  )
  str
)
;;字符串转表 str 字符串   sign 分割符号----(一级)---------
;;(str->lst "1 2 3 4" " ")->("1" "2" "3" "4")
;;(str->lst "毛泽东;88;xy;z" ";")->("毛泽东" "88" "xy" "z")
;;(str->lst "毛泽东;88;xy;z" "泽东")->("毛" ";88;xy;z")
(defun str->lst (str sign / lst n1 n2 str_1 m2)
  (setq lst '())
  (setq n1 (strlen str))
  (setq n2 (strlen sign))
  (while (setq m2 (vl-string-search sign str))
    (setq str_1 (substr str 1 m2))
    (setq str (substr str (+ 1 m2 n2)))
    (if (/= str_1 "")
      (setq lst (cons str_1 lst))
    )
  )
  (if (/= str "")
    (setq lst (cons str lst))
  )
  (reverse lst)
)
;;字符串转表 中英文拆分为单独文字表-----(一级)------
;;(sl-str->singleonly "12我 的\n毛泽东")  ("1" "2" "我" " " "的" "\n" "毛" "泽" "东")
(defun sl-str->singleonly (str / strlst strlst1 hz_str)
  (setq  strlst (vl-string->list str) strlst1 '())
  (while strlst
    (cond
      ((and (not hz_str)
         (> (car strlst) 159)
       )
        (setq hz_str (list (car strlst)))
        (setq strlst (cdr strlst))
      )
      ((and hz_str
         (> (car strlst) 159)
       )
        (setq hz_str (append hz_str (list (car strlst))))
        (setq strlst (cdr strlst))
        (setq strlst1 (append strlst1 (list hz_str)) hz_str nil)
      )
      ((< (car strlst) 159)
        (setq hz_str nil)
        (if strlst1
          (setq strlst1 (append strlst1 (list (list (car strlst)))))
          (setq strlst1 (list (list (car strlst))))
        )
        (setq strlst (cdr strlst))
      )
    )
  )
  (mapcar 'vl-list->string strlst1)
)
;;表分组----(一级)----              
;(setq lst'(1 2 3 4 5 6 7 8 9 10 11 12 13))              
;(xl-div lst 3)返回((1 2 3)(4 5 6)(7 8 9)(10 11 12) (13))
(defun xl-div (lst n / i rtn)
  (while lst
    (repeat (min n (length lst))
      (setq i (cons (car lst) i) lst (cdr lst))
    )
    (setq rtn (cons (reverse i) rtn) i nil)
  )
  (reverse rtn)
)












;;重写方式分解MTEXT
;;by 尘缘一生 QQ:15290049
(defun c:tt (/ nam col hi ang p0 ly sty num0 num j n i lis lis1 lis0 str str0)
  (setq nam (car (entsel)))
  (setq  
    col (ss-getcolor nam) ;;颜色
    hi (e-higt nam) ;;高度
    ang (e-ang nam nil)
    p0 (polar (dxf1 nam 10) (- ang pi2) (* 1.5 hi))
    ;;p0 (car (e-box4 enam nil)) ;;垂直文字BUG,舍弃包容盒办法
  )
  (if (null (setq ly (dxf1 nam 8))) (setq ly (getvar "clayer")))
  (if (null (setq sty (dxf1 nam 7))) (setq sty $hz)) ;$hz 全局变量,STYLE
  
  (setq lis (reverse (str->lst (t-string-subst "\\" "\\P" (mtext2text nam)) "\\")) num0 1)
;(entdel nam) ;测试先注销,发布需要
  (repeat (setq j (length lis)) ;取得最大每行写多少字
    (setq num (numstr (nth (setq j (1- j)) lis))) ;(strlen "毛") 2
    (if (<= num num0) (setq num num0))
    (setq num0 num)
  )
  (repeat (setq j (length lis))
    (setq str (nth (setq j (1- j)) lis))
    (setq lis1 (reverse (xl-div (sl-str->singleonly str) num)))
    (repeat (setq n (length lis1))
      (setq lis0 (nth (setq n (1- n)) lis1) str0 "")
      (repeat (setq i (length lis0))
        (setq str0 (strcat (nth (setq i (1- i)) lis0) str0))
      )
      (entmake (list '(0 . "TEXT") (cons 1 str0) (cons 8 ly) (cons 62 col) (cons 7 sty) (cons 10 p0) (cons 40 hi) (cons 50 ang) (cons 41 0.7)))
      (setq p0 (polar p0 (- ang pi2) (* 1.5 hi)))
    )
  )
)
;;字符文字串逻辑长度值-----(一级)-----
(defun numstr (str / ns lis n num1)
  (setq ns 0 lis (sl-str->singleonly str))
  (repeat (setq n (length lis))
    (setq num1 (nth (setq n (1- n)) lis))
    (cond
      ((or (< (ascii num1) 97) (and (> (ascii num1) 122) (<= (ascii num1) 128)))
        (setq ns (1+ ns))
      )
      ((and (>= (ascii num1) 97) (< (ascii num1) 122)) ;小写英文字母
        (setq ns (1+ ns))
      )
      ((> (ascii num1) 128) ;;汉字
        (setq ns (+ ns 2))
      )
    )
  )
  ns
)

 

 

 

 

分解MTEXT(源码)-非炸开之重写方式

该用户从未签到

主题

0

回帖

0

积分

管理员

积分
0
发表于 2024-7-28 09:28:43 | 显示全部楼层
  法拉利膜材作为一种高性能的建筑材料,在建筑、汽车及广告等多个领域有着广泛的应用。以下是对法拉利膜材型号、特点及优点的详细分析:
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223041uiqmeujen4jjj6zv.jpg[/img]
[b]一、法拉利膜材型号[/b]
法拉利膜材有多种型号,包括但不限于以下几种:1302 S2 Flexlight Advanced:这是一种高性能IV型柔性复合膜材,以其卓越的透光性、耐久性和易维护性而受到青睐。942、1202 S2、1002 S2、902 S2、1212 S2、912 S2:这些型号同样属于法拉利膜材系列,各自具有不同的特性和适用范围,但具体特点需根据具体型号进一步分析。需要注意的是,法拉利膜材的型号可能随着产品更新换代而有所变化,具体型号及其特性请参考最新产品资料。
[img=860,1255]http://www.mjgou.com/data/attachment/forum/202403/13/223254bbblwlbvbvsbwlsl.jpg[/img]
[b]二、法拉利膜材特点[/b]
法拉利膜材的特点主要体现在以下几个方面:
1、高强度与耐用性:法拉利膜材采用高强度材料制成,具有良好的抗拉强度和撕裂强度,能够承受较大的外力作用而不易破损。耐用性强,能够在恶劣气候条件下保持稳定的性能,延长使用寿命。
2、透光性与美观性:部分型号如1302 S2 Flexlight Advanced具有高透光性,能够在保持室内光线充足的同时,提供清晰的视野。膜材表面平整光滑,色彩丰富多样,能够满足不同建筑和装饰需求,提升整体美观性。
3、轻质与灵活性:法拉利膜材重量较轻,便于运输和安装,能够降低施工成本和时间。膜材具有一定的柔韧性,能够适应各种复杂形状和结构的设计要求。
4、环保与可回收性:法拉利膜材符合环保要求,部分材料可回收利用,减少了对环境的影响。
[img]http://www.mjgou.com/data/attachment/forum/202403/13/223128owhn0099rrds5h5y.jpg[/img]
[b]三、法拉利膜材优点[/b]
法拉利膜材的优点主要体现在以下几个方面:
1、提升建筑性能:高强度与耐用性使得法拉利膜材能够提升建筑的稳定性和安全性,延长使用寿命。透光性与美观性使得建筑内部光线充足、视野开阔,同时提升整体美观度。
2、降低施工成本:轻质特性使得运输和安装成本降低,施工效率提高。膜材的柔韧性使得施工更加灵活多变,能够适应各种复杂地形和结构要求。
3、节能环保:部分材料可回收利用,符合环保要求,减少了对环境的影响。良好的透光性能够减少室内照明需求,降低能耗。
4、广泛应用领域:
法拉利膜材不仅适用于建筑领域(如体育设施、商业设施、文化设施、交通设施等),还广泛应用于汽车及广告领域(如高档车辆贴膜保护和装饰、广告招贴等),展现出其多功能的特性。

综上所述,法拉利膜材以其高强度、耐用性、透光性、美观性、轻质灵活性以及环保可回收性等优点,在建筑、汽车及广告等多个领域发挥着重要作用。具体型号的选择应根据实际需求和应用场景进行综合考虑。
[url=http://www.mjgou.com/forum-17-1.html][size=92887][color=Red]法拉利膜材中国代理商 - 膜结构网[/color][/size][/url]
分解MTEXT(源码)-非炸开之重写方式

该用户从未签到

主题

0

回帖

2

积分

新手上路

积分
2
发表于 2024-8-6 10:42:43 | 显示全部楼层
星益达膜材中的PVDF(聚偏二氟乙烯)污水膜材是一种在污水处理领域具有广泛应用的高性能材料。以下是对该产品的详细介绍:
[b]一、产品概述[/b]
星益达膜材是国内知名的膜材料生产商之一,其PVDF污水膜材采用高质量的聚偏二氟乙烯树脂为主要原料,经过特殊工艺加工而成。该膜材具有优异的耐化学腐蚀性、耐候性、高强度和自洁性能,特别适用于污水处理等恶劣环境。
[b]二、主要特点[/b]
耐化学腐蚀性:PVDF污水膜材能够抵抗多种化学物质的侵蚀,包括酸、碱、盐等,确保在污水处理过程中膜材的稳定性和耐久性。
耐候性:该膜材具有良好的耐候性,能够抵御紫外线、高温、低温、雨雪等自然环境的侵蚀,从而保持长久的色彩鲜艳和材料性能。
高强度:PVDF污水膜材具有较高的机械强度,能够承受较大的拉伸力和撕裂力,确保在污水处理过程中膜材结构的完整性和稳定性。
自洁性能:膜材表面经过特殊处理,具有优异的自洁性能,能够减少污物附着,降低清洗频率和成本。
透光性:在保持高强度和耐候性的同时,PVDF污水膜材还具有一定的透光性,有助于提升污水处理设施的整体美观度。
[b]三、应用领域[/b]
PVDF污水膜材广泛应用于污水处理厂的膜生物反应器(MBR)、超滤系统、反渗透系统等水处理工艺中。它能够有效去除水中的悬浮物、有机物、细菌等污染物,提高出水水质,满足国家及地方的水质排放标准。
[b]四、产品优势[/b]
性能卓越:星益达PVDF污水膜材凭借其优异的耐化学腐蚀性、耐候性和高强度等特点,在污水处理领域具有显著的优势。
使用寿命长:该膜材具有较高的耐用性,能够长期保持稳定的性能,降低更换频率和成本。
维护简便:膜材的自洁性能减少了清洗频率和成本,同时其高强度和稳定性也降低了维护难度。
环保节能:PVDF污水膜材的应用有助于提升污水处理效率和水质标准,促进环保事业的发展。
[b]五、总结[/b]
星益达膜材的PVDF污水膜材是一种在污水处理领域具有广泛应用前景的高性能材料。其优异的性能特点、广泛的应用领域以及显著的产品优势使得该产品在市场上具有较高的竞争力。未来,随着环保事业的不断发展和水处理技术的不断进步,PVDF污水膜材将在更多领域发挥重要作用。

 

 

 

 

分解MTEXT(源码)-非炸开之重写方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 12:41 , Processed in 0.125004 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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