乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
楼主: chulse

[编程交流] 多行文字段落间距

[复制链接]

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:21:13 | 显示全部楼层
 
是的,事情在那一点上变得棘手。。。
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:23:41 | 显示全部楼层
是否有格式代码的参考?我找不到一个完整的。。。
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:29:23 | 显示全部楼层
 
据我所知。。。
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:32:00 | 显示全部楼层
 
这让它更具挑战性
 
谢谢你的帮助
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:37:52 | 显示全部楼层
我又试了一次,Cary-这应该能让其他格式保持得体(祈祷吧!)
 
  1. (defun c:test ( / *error* ss before after )
  2. ;; © Lee Mac 2010
  3. (defun *error* ( msg )
  4.    (and RegEx (vlax-release-object RegEx))
  5.    (or (wcmatch (strcase msg) "*BREAK,*CANCEL*,*EXIT*")
  6.        (princ (strcat "\n** Error: " msg " **")))
  7.    (princ)
  8. )
  9. (if (and (setq ss (ssget "_:L" '((0 . "MTEXT"))))
  10.           (not (initget 5))
  11.           (setq before (getdist "\n'Before' Paragraph Spacing: "))
  12.           (not (initget 5))
  13.           (setq after  (getdist  "\n'After' Paragraph Spacing: ")))
  14.    
  15.    (ApplyFootoSS (lambda ( x ) (LM:ReplaceParagraphSpacing x before after)) ss)
  16.    
  17. )
  18. (princ)
  19. )
  20. (defun LM:ReplaceParagraphSpacing ( ent before after / str bstr astr bPar aPar RegEx o )
  21. ;; © Lee Mac 2010
  22. (setq str (LM:GetTextString ent))
  23. (mapcar '(lambda ( x ) (and (zerop (eval x)) (set x nil))) '(before after))
  24. (setq bstr (if before (strcat "b" (vl-princ-to-string before)) ""))
  25. (setq astr (if after  (strcat "a" (vl-princ-to-string after )) ""))
  26. (setq RegEx (vlax-create-object "VBScript.RegExp") o 0)
  27. (if (setq bPar (LM:RegExExecute RegEx "b.*?[,;]" str))
  28.    (mapcar
  29.     '(lambda ( s )
  30.        (setq str
  31.          (vl-string-subst
  32.            (strcat bstr (substr (car s) (strlen (car s)))) (car s) str (- (cadr s) o)
  33.          )
  34.        )
  35.        (setq o (- (strlen (car s)) 1 (strlen bstr)))
  36.      )
  37.     bPar
  38.    )
  39. )
  40. (setq o 0)
  41. (if (setq aPar (LM:RegExExecute RegEx "a.*?[,;]" str))
  42.    (mapcar
  43.     '(lambda ( s )
  44.        (setq str
  45.          (vl-string-subst
  46.            (strcat astr (substr (car s) (strlen (car s)))) (car s) str (- (cadr s) o)
  47.          )
  48.        )
  49.        (setq o (- (strlen (car s)) 1 (strlen astr)))
  50.      )
  51.     aPar
  52.    )
  53. )
  54. (vlax-release-object RegEx)
  55. (vla-put-TextString (vlax-ename->vla-object ent) str)
  56. )
  57. (defun LM:GetTextString ( ent / string )
  58. ;; © Lee Mac 2010
  59. (vl-load-com)
  60. (and (eq 'VLA-OBJECT (type ent))
  61.       (setq ent (vlax-vla-object->ename ent)))
  62. (  (lambda ( string )
  63.       (mapcar
  64.         (function
  65.           (lambda ( pair )
  66.             (if (vl-position (car pair) '(1 3))
  67.               (setq string (strcat string (cdr pair)))
  68.             )
  69.           )
  70.         )
  71.         (entget ent)
  72.       )
  73.       string
  74.     )
  75.    ""
  76. )
  77. )
  78. (defun ApplyFootoSS ( foo ss )
  79. ;; © Lee Mac 2010
  80. (
  81.    (lambda ( i / e )
  82.      (while (setq e (ssname ss (setq i (1+ i)))) (foo e))
  83.    )
  84.    -1
  85. )
  86. )
  87. (defun LM:RegExExecute ( reg pat str / l )
  88. ;; © Lee Mac 2010
  89. (mapcar
  90.    '(lambda ( prop value ) (vlax-put-property reg prop value))
  91.    '(pattern global ignorecase) (list pat actrue acfalse)
  92. )
  93. (vlax-for x (vlax-invoke reg 'execute str)
  94.    (setq l (cons (list (vlax-get x 'value) (vlax-get x 'firstindex)) l))
  95. )
  96. l
  97. )
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:41:10 | 显示全部楼层
嗨,李,对不起,我花了这么长时间才回来。谢谢你再来一次。
我得到以下错误:
**错误:错误参数值:非负:-37**
 
有什么想法吗?
 
谢谢
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-6 21:24 , Processed in 0.397575 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表