你好,
我试图修改一个直径维度,它有一个块引用,组成了它的图片,并将其转换为其本机视图。如果您能仔细检查所附的图纸,您可以看到从Revit导出的示例尺寸,我到目前为止所取得的成果和所需的结果并排显示。
使用以下代码,我成功地在维度“block”中循环,找到多行文字对象及其插入点。然后,我用手头的插入点修改“维度”的文本位置,但不知何故,文本的对齐方式发生了变化,我无法获得所需的方向。
我非常感谢您的帮助,使其尽可能接近原始视图。谢谢
- (defun c:fixdim()
- (setq dim (car(entsel)))
- (setq dim-obj (vlax-ename->vla-object dim))
- (setq dimtxtloc (get-dimblktxtloc dim))
- (setq s-array (vlax-make-safearray vlax-vbdouble '(0 . 2)))
- (vla-put-textposition dim-obj (vlax-safearray-fill s-array dimtxtloc))
- )
- (defun get-dimblktxtloc (dim-ename)
- (setq dim-entity (vl-catch-all-apply 'entget (list dim-ename)))
- (cond
- ((not (vl-catch-all-error-p dim-entity))
- (setq dim-blockname (cdr (assoc 2 dim-entity)))
- (setq blk-object (get-dimblkobj dim-blockname))
- (cond
- ((not (vl-catch-all-error-p blk-object))
- (vlax-for subobj blk-object
- (cond
- ((= (vla-get-objectname subobj) "AcDbMText")
- (setq blk-txtloc (safearray-value (vlax-variant-value (vla-get-insertionpoint subobj))))
- )
- )
- )
- )
- )
- )
- )
- blk-txtloc
- )
-
- (defun get-dimblkobj (blockname)
- (vl-catch-all-apply 'vla-item (list (vla-get-blocks (vla-get-ActiveDocument (vlax-get-acad-object))) blockname))
- )
-
尺寸图片。图纸 |