尘缘一生 发表于 2021-11-5 22:01:42

关于字符合并的尝试:意在解决合并后的宽度,垂直字符的排序!

本帖最后由 尘缘一生 于 2021-11-6 01:08 编辑

不多说:


[*]

[*];;字符 文字合并-----(一级)---------------------
[*](defun wzhb (ss / i n ename dl ell x y text e1 e2 ang h h0 dis num strlis str1)
[*](if ss
[*]    (progn
[*]      (setq ang (e-ang (ssname ss (fix (* (sslength ss) 0.5))) nil))
[*]      (setq dl nil h0 2.5 num 0 dis 0)
[*]      (repeat (setq i (sslength ss))
[*]      (setq ename (ssname ss (setq i (1- i))))
[*]      (setq h (e-higt ename))
[*]      (if (> h h0) ;;取最高大字高
[*]          (setq h0 h)
[*]          (setq h h0)
[*]      )
[*]      )
[*]      (repeat (setq i (sslength ss))
[*]      (setq ename (ssname ss (setq i (1- i))) ell (entget ename) x (cadr (assoc 10 ell)) y (cadr (cadr (e-box4 ename t))) text (getstr ename))
[*]      (setq dl (append dl (list (list x text ename y))))
[*]      (setq strlis (sl-str->singleonly text))
[*]      (repeat (setq n (length strlis))
[*]          (setq str1 (nth (setq n (1- n)) strlis))
[*]          (if (>= (ascii str1) 128) ;;汉字
[*]            (progn
[*]            (setq dis (+ (* 1.3 h) dis))
[*]            (setq num (+ 2 num)) ;;个数
[*]            )
[*]            (progn
[*]            (setq dis (+ (* 0.7 h) dis))
[*]            (setq num (1+ num))
[*]            )
[*]          )
[*]      )
[*]      )
[*]      (setq x (/ (/ dis num) h)) ;;宽高比
[*]      (if (or (= ang pi2) (= ang (- 0 pi2)))
[*]      (setq dl (vl-sort dl (function (lambda (e1 e2) (< (cadddr e1) (cadddr e2)))))) ;;垂直文字 从上到下
[*]      (setq dl (vl-sort dl (function (lambda (e1 e2) (< (car e1) (car e2)))))) ;;其余 从左到右
[*]      )
[*]      (setq ;;第一个实体数据
[*]      text (cadr (nth 0 dl))
[*]      ell (entget (caddr (nth 0 dl)))
[*]      i 1
[*]      )
[*]      (repeat (1- (length dl))
[*]      (setq text (strcat text (cadr (nth i dl))))
[*]      (entdel (caddr (nth i dl)))
[*]      (setq i (1+ i))
[*]      )
[*]      (entmod (emod (emod (emod (emod (emod (emod ell 1 text) 40 h) 41 x) 72 0) 73 0) 62 (atoi (slsjqs)))) ;;左定位,变色
[*]    )
[*])
[*])

tigcat 发表于 2021-11-8 19:08:59

看能不能做出这个,输入一个关键字,可以让一行字符串以这个关键字断开
例如:“我今天去找你玩”
参数中输入“去”字,这行字变成“我今天” “找你玩”
这两行字相对原来位置不变。
我找到leemac的程序,他的只支持英文,中文的没改出来。

尘缘一生 发表于 2021-11-10 02:14:25

tigcat 发表于 2021-11-8 19:08
看能不能做出这个,输入一个关键字,可以让一行字符串以这个关键字断开
例如:“我今天去找你玩”
参数中 ...

这个本坛记得有的。

tigcat 发表于 2021-11-10 21:36:36

尘缘一生 发表于 2021-11-10 02:14
这个本坛记得有的。

兄弟睡得晚啊
页: [1]
查看完整版本: 关于字符合并的尝试:意在解决合并后的宽度,垂直字符的排序!