114
1万
中流砥柱
使用道具 举报
33
267
213
初露锋芒
(defun c:test ( / *error* ss before after ) ;; © Lee Mac 2010 (defun *error* ( msg ) (and RegEx (vlax-release-object RegEx)) (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*") (princ (strcat "\n** Error: " msg " **"))) (princ) ) (if (and (setq ss (ssget "_:L" '((0 . "MTEXT")))) (not (initget 5)) (setq before (getdist "\n'Before' Paragraph Spacing: ")) (not (initget 5)) (setq after (getdist "\n'After' Paragraph Spacing: "))) (ApplyFootoSS (lambda ( x ) (LM:ReplaceParagraphSpacing x before after)) ss) ) (princ))(defun LM:ReplaceParagraphSpacing ( ent before after / str bstr astr bPar aPar RegEx o ) ;; © Lee Mac 2010 (setq str (LM:GetTextString ent)) (mapcar '(lambda ( x ) (and (zerop (eval x)) (set x nil))) '(before after)) (setq bstr (if before (strcat "b" (vl-princ-to-string before)) "")) (setq astr (if after (strcat "a" (vl-princ-to-string after )) "")) (setq RegEx (vlax-create-object "VBScript.RegExp") o 0) (if (setq bPar (LM:RegExExecute RegEx "b.*?[,;]" str)) (mapcar '(lambda ( s ) (setq str (vl-string-subst (strcat bstr (substr (car s) (strlen (car s)))) (car s) str (- (cadr s) o) ) ) (setq o (- (strlen (car s)) 1 (strlen bstr))) ) bPar ) ) (setq o 0) (if (setq aPar (LM:RegExExecute RegEx "a.*?[,;]" str)) (mapcar '(lambda ( s ) (setq str (vl-string-subst (strcat astr (substr (car s) (strlen (car s)))) (car s) str (- (cadr s) o) ) ) (setq o (- (strlen (car s)) 1 (strlen astr))) ) aPar ) ) (vlax-release-object RegEx) (vla-put-TextString (vlax-ename->vla-object ent) str))(defun LM:GetTextString ( ent / string ) ;; © Lee Mac 2010 (vl-load-com) (and (eq 'VLA-OBJECT (type ent)) (setq ent (vlax-vla-object->ename ent))) ( (lambda ( string ) (mapcar (function (lambda ( pair ) (if (vl-position (car pair) '(1 3)) (setq string (strcat string (cdr pair))) ) ) ) (entget ent) ) string ) "" ))(defun ApplyFootoSS ( foo ss ) ;; © Lee Mac 2010 ( (lambda ( i / e ) (while (setq e (ssname ss (setq i (1+ i)))) (foo e)) ) -1 ))(defun LM:RegExExecute ( reg pat str / l ) ;; © Lee Mac 2010 (mapcar '(lambda ( prop value ) (vlax-put-property reg prop value)) '(pattern global ignorecase) (list pat actrue acfalse) ) (vlax-for x (vlax-invoke reg 'execute str) (setq l (cons (list (vlax-get x 'value) (vlax-get x 'firstindex)) l)) ) l)
本版积分规则 发表回复 回帖后跳转到最后一页
微信公众平台
扫描访问手机版
点击图片下载手机App
|关于我们|小黑屋|乐筑天下 繁体中文
GMT+8, 2025-3-6 21:24 , Processed in 0.397575 second(s), 63 queries .
© 2020-2025 乐筑天下
在线时间:10:00-17:00
暂无
扫一扫,关注我们
帮助中心
关于我们
下载APP客户端