马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
- ;|
- 按原位置分解文字实体,清除空格
- 参数 : ent -- TEXT实体
- 返回值: 选择集 or nil
- |;
- (defun XD::Text:SplitBySpace (ent / ang basept box ent2 n nrm pt ss str strl)
- (if (and
- (setq str (xdrx_getpropertyvalue ent "textstring"))
- (xdrx_string_regexps "[\\s\\u3000]" str)
- (setq str (xdrx_string_regexpr "[\\s\\u3000]+$" str ""))
- (setq strl (xdrx_string_regexps "([\\s\\u3000]+)|[^\\s\\u3000]+" str))
- )
- (progn
- (xdrx_begin)
- (xdrx_setmark)
- (setq pt (xdrx_getpropertyvalue ent "position")
- basept pt
- nrm (xdrx_getpropertyvalue ent "normal")
- ang (xdrx_getpropertyvalue ent "rotation")
- )
- (foreach n strl
- (setq ss (xdrx_entity_copy ent)
- ent2 (entlast)
- )
- (xdrx_setpropertyvalue ent2 "textstring" n "rotation" 0.0 "position"
- pt
- )
- (setq box (xdrx_entity_box ent2)
- pt (mapcar
- '+
- pt
- (mapcar
- '-
- (cadr box)
- (car box)
- )
- )
- )
- (if (xdrx_string_regexps "[\\s\\u3000]" n)
- (entdel ent2)
- (xdrx_entity_rotate ent2 ang basept nrm)
- )
- )
- (entdel ent)
- (xdrx_end)
- (xdrx_getss)
- )
- )
- )
|