nababeer 发表于 2022-7-5 20:38:01

两者均为标准字体-宋体

pBe 发表于 2022-7-5 20:40:59

 
如果样式不是宋体,而是其他样式呢?这正是我在纳巴贝尔的目的,有一些条件需要首先解决。
 
彻底描述预期结果,而不是步骤。
 
 
你请求帮助,至少做你该做的。

nababeer 发表于 2022-7-5 20:44:49

好的,pBe
 
我不知道条件,因为我不熟悉lisp。但实际情况是,我已经将所有文本样式的字体转换为Arial。ttf然后我使用我之前上传的lisp。在实际情况下,样式名称在$0$之后相似,而不是在我发送的图形之前。因此,带前缀的样式名称应合并为不带前缀的样式名称。然后我必须清除所有,以删除带有前缀的样式名称!
谢谢你的时间pBe

pBe 发表于 2022-7-5 20:48:41

 
我所说的条件是指期望的结果,与编写代码无关。正如我所说,我们在这里试图使代码尽可能通用。
 
深吸一口气,想想最终的结果,这是一个简单的假设/然后/否则。。。不涉及编码,我试图在这里帮助您获得一个合适的解决方案nababeer。要有耐心。

nababeer 发表于 2022-7-5 20:49:16

这就是我认为的程序:
 

Lee Mac 发表于 2022-7-5 20:53:25

试试下面的nababeer,我希望它能有所帮助:
 

(defun c:mergedimtxt ( / cmd doc pos str )
   (setq doc (vla-get-activedocument (vlax-get-acad-object)))
   (foreach col '(textstyles dimstyles)
       (mergedimtxt:processcollection (vlax-get-property doc col))
   )
   (vlax-for blk (vla-get-blocks doc)
       (if (= :vlax-false (vla-get-isxref blk))
         (vlax-for obj blk
               (if
                   (and
                     (wcmatch (vla-get-objectname obj) "AcDb*Text,AcDb*Dimension")
                     (setq str (vla-get-stylename obj)
                           pos (vl-string-position 36 str nil t)
                     )
                     (vlax-write-enabled-p obj)
                   )
                   (vla-put-stylename obj (substr str (+ 2 pos)))
               )
         )
       )
   )
   (setq cmd (getvar 'cmdecho))
   (setvar 'cmdecho 0)
   (setvar 'textstyle "Standard")
   (command "_.-dimstyle" "_r" "Standard" "_.-purge" "_r" "*" "_n" "_.-purge" "_a" "*" "_n")
   (setvar 'cmdecho cmd)
   (vla-regen doc acallviewports)
   (princ)
)
(defun mergedimtxt:processcollection ( col / pos str )
   (vlax-for obj col
       (if
         (and
               (setq str (vla-get-name obj)
                     pos (vl-string-position 36 str nil t)
               )
               (vl-catch-all-error-p (vl-catch-all-apply 'vla-item (list col (substr str (+ 2 pos)))))
         )
         (vla-put-name obj (substr str (+ 2 pos)))
       )
   )
)
(vl-load-com) (princ)

nababeer 发表于 2022-7-5 20:56:14

 
非常感谢李
我应该从另一个lisp RBP运行它吗?还是单独运行?因为我运行了它,它给出了一个错误消息,指的是Active X!

Lee Mac 发表于 2022-7-5 21:00:42

 
不客气。
您应该能够独立运行它-您收到了什么错误消息?

nababeer 发表于 2022-7-5 21:02:19

 
ActiveX服务器返回错误:类型不匹配!

Lee Mac 发表于 2022-7-5 21:06:37

 
这很奇怪——我似乎无法复制这个错误。
使用该程序测试的每个图形上是否都会出现错误?
页: 1 [2]
查看完整版本: 合并Dimstyle和文字样式af