mstg007 发表于 2018-1-2 11:35:19

标注样式替代

我正在尝试理解(问题是新手的事情)维度样式如何覆盖工作。
我有一个有自己样式的细节。但是,在一些图纸中我插入细节并去爆炸它来编辑它,测试和昏暗的样式是不正确的。(变大等)
我有一个例程我尝试使用,但它总是显示在样式名称下的维度样式管理器中为
(command "-dimstyle" "Variables" "DETL" "DIMADEC" "4" "DIMASZ" "0.1" "DIMAUNIT" "1" "DIMCEN" "0.00" "DIMCLRT" "256" "DIMDEC" "2" "DIMEXE" "0.09" "DIMGAP" "0.04" "DIMTAD" "1" "DIMTDEC"
"2" "DIMTIH" "OFF" "DIMTOH" "OFF" "DIMTXSTY" "DETL" "DIMTXT" "0.07" "-dimstyle" "apply" "all" "")
但是,如果我不使用例程,并手动编辑维度样式管理器中的每个字段。然后爆炸细节,一切正常调整。
长话短说。我在一些图纸中使用相同的细节,并将其爆炸以进行编辑,一切正常。我在其他图纸中使用相同的细节,当我将其爆炸以进行编辑时,它不会正确显示,我必须编辑所有字段。
任何帮助都会很棒!





**** Hidden Message *****

Roy_043 发表于 2018-1-4 06:04:18

该问题可能与冲突的标注样式有关。如果将块源图形与显示问题的目标图形进行比较,您会发现它们的标注样式名称相同,但设置不同。在IMO看来,如果尺寸在插入图形文件时自动更新,将会更容易理解,也更符合逻辑。但这并没有发生。正如您已经发现的,分解块将触发更新。更改标注样式设置也是如此。

mstg007 发表于 2018-1-4 07:17:31

明白了。所以在这种情况下,我拥有的例程将适用于此应用程序。
我想我可以问这个,现在我只有转换绘图中所有内容的基本例程。使其成为选择集有多难?(我可以在哪里窗口我想要应用更新的正确样式的详细信息)?

Roy_043 发表于 2018-1-4 18:24:20

我很难理解你想说什么。与你暗示的相反,你不是noob(你在2004年加入这个论坛),所以请澄清。
同时,这里有一些代码将触发这些嵌套维度的更新。这两个函数(UpdateDimBlks和UpdateDimBlksAlt)应该具有相同的效果。
(defun c:UpdateDimBlks ( / doc elst old)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vla-endundomark doc)
(vla-startundomark doc)
(vlax-for dim (vla-get-dimstyles (vla-get-activedocument (vlax-get-acad-object)))
    (setq elst (entget (vlax-vla-object->ename dim)))
    (setq old (assoc 40 elst))
    (entmod (subst (cons 40 (* 1.0001 (cdr old))) old elst)) ; Temporarily change the DIMSCALE.
    (entmod (subst old (cons 40 (* 1.0001 (cdr old))) elst))
)
(vla-regen doc acallviewports)
(vla-endundomark doc)
(princ)
)

(defun c:UpdateDimBlksAlt ( / doc)
(setq doc (vla-get-activedocument (vlax-get-acad-object)))
(vla-endundomark doc)
(vla-startundomark doc)
(vlax-for blk (vla-get-blocks doc)
    (if
      (and
      (= :vlax-false (vla-get-isxref blk))                     ; Skip xrefs.
      (not (wcmatch (strcase (vla-get-name blk)) "`*D*,`*T*")) ; Skip anonymous dimension and table blocks.
      )
      (vlax-for obj blk
      (if (vlax-property-available-p obj 'textstyle)   ; AcDbDim* and AcDbFcf (Tolerance).
          (entmod (entget (vlax-vla-object->ename obj))) ; Vla-update has no effect.
      )
      )
    )
)
(vla-regen doc acallviewports)
(vla-endundomark doc)
(princ)
)

mstg007 发表于 2018-1-8 07:41:32

嘿,谢谢你的信息。显然,我只是重新阅读了我所问的问题。不知道我为什么问这个...哈哈。
页: [1]
查看完整版本: 标注样式替代