乐筑天下

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

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

[复制链接]

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 10:39:24 | 显示全部楼层 |阅读模式
可以通过lisp编辑多行文字的段落间距吗?我在dxf参考中找不到它(或者我错过了它-不确定到底要找什么)。。。
 
假设它可以被dxf代码访问,我假设它可以用entmod更改?
 
我问的原因是,在2011年,多行文字段落对话框juust中的功能不起作用。Autodesk告诉我:
 
 
 
谢谢
113927cdud0myyyjkkrs2h.jpg
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:46:53 | 显示全部楼层
恐怕是多行文字格式代码,类似于:
 
  1. \\px[color=Blue]b0.5[/color],[color=Red]a0.4[/color];
  2. [color=Blue]before [/color], [color=Red]after[/color]

 
使用此选项将其删除
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 10:47:46 | 显示全部楼层
 
谢谢李
有可能操纵它吗?这不是一个可以用entmod更改的普通DXF代码,是吗。。。?
你能给我一个如何访问它的提示吗?
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 10:53:43 | 显示全部楼层
格式化代码存储在多行文字字符串(DXF 1和3)中,因此需要处理这些字符串中编码的数据。
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 10:56:09 | 显示全部楼层
啊,谢谢
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:01:44 | 显示全部楼层
我想我可能会接受这个挑战——这可能是解决问题的一种方法,使用正则表达式对象来执行替换。
 
  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:ReplaceParagraphFormatting x before after)) ss)
  16.    
  17. )
  18. (princ)
  19. )
  20. (defun LM:ReplaceParagraphFormatting ( ent before after / new RegEx )
  21. (mapcar '(lambda ( x ) (and (zerop (eval x)) (set x nil))) '(before after))
  22. (setq new
  23.    (if (apply 'or (list before after))
  24.      (strcat "\\px"
  25.        (if before (strcat "b" (vl-princ-to-string before)) "")
  26.        (if after  (strcat (if before ",a" "a") (vl-princ-to-string after)) "")
  27.        ";"
  28.      )
  29.      ""
  30.    )
  31. )
  32. (setq RegEx (vlax-create-object "VBScript.RegExp"))
  33. (setq str (LM:RegExReplace RegEx new "\\\\p.*?;" (LM:GetTextString ent)))
  34. (vlax-release-object RegEx)
  35. (vla-put-TextString (vlax-ename->vla-object ent) str)
  36. )
  37. (defun LM:GetTextString ( ent / string )
  38. ;; © Lee Mac 2010
  39. (vl-load-com)
  40. (and (eq 'VLA-OBJECT (type ent))
  41.       (setq ent (vlax-vla-object->ename ent)))
  42. (  (lambda ( string )
  43.       (mapcar
  44.         (function
  45.           (lambda ( pair )
  46.             (if (vl-position (car pair) '(1 3))
  47.               (setq string (strcat string (cdr pair)))
  48.             )
  49.           )
  50.         )
  51.         (entget ent)
  52.       )
  53.       string
  54.     )
  55.    ""
  56. )
  57. )
  58. (defun ApplyFootoSS ( foo ss )
  59. ;; © Lee Mac 2010
  60. (
  61.    (lambda ( i / e )
  62.      (while (setq e (ssname ss (setq i (1+ i)))) (foo e))
  63.    )
  64.    -1
  65. )
  66. )
  67. (defun LM:RegExReplace ( reg new pat str )
  68. ;; © Lee Mac 2010
  69. (mapcar
  70.    '(lambda ( prop value ) (vlax-put-property reg prop value))
  71.    '(pattern global ignorecase) (list pat actrue acfalse)
  72. )
  73. (vlax-invoke reg 'replace str new)
  74. )
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:04:10 | 显示全部楼层
谢谢李
但在2011年,这没有起作用——没有变化。也许是因为“已知问题”。。。?
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:11:25 | 显示全部楼层
我正在研究vl string subst,但我不确定从实体中提取字符串的最佳方法是什么。在我的应用中,文本相当长-远远超过DXF 1的限制(我不知道如何获得它们,所有DXF 3和1,全部加在一起…)
回复

使用道具 举报

114

主题

1万

帖子

1万

银币

中流砥柱

Rank: 25

铜币
543
发表于 2022-7-6 11:13:00 | 显示全部楼层
请尝试上面更新的代码
回复

使用道具 举报

33

主题

267

帖子

213

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
197
发表于 2022-7-6 11:18:54 | 显示全部楼层
成功了!谢谢
 
它确实删除了大纲结构的左对齐和缩进。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-6 16:56 , Processed in 0.565403 second(s), 75 queries .

© 2020-2025 乐筑天下

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