entmake垂直标注文字方向和颜色不对,如何修改entmake,使之达到和command一样的效果。
(setq pt1 (getpoint))(setq pt2 (getpoint))
(setq pt (getpoint))
(entmake (list '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 pt) '(70 . 32) '(1 . "") '(100 . "AcDbAlignedDimension")
(cons 13 pt1) (cons 14 pt2) '(50 . 1.5708) '(100 . "AcDbRotatedDimension")
)
)
(command "dimlinear" pt1 pt2 "v" pt)
ziyouwzb 发表于 2024-1-24 11:27
指定标注样式后,颜色是OK了,但是文字方向还是反的,请问有什么办法把文字方向修正过来吗?
要么交换13、14组,要么改50组+ PI试试? 指定标注样式 ; 改为ActiveX方式即可满足要求
(if (setq pt1 (getpoint "\n 起点pt1:"))
(if (setq pt2 (getpoint pt1 " →止点pt2:"))
(if (setq pt (getpoint " 放置点pt:"))
(progn
(if (equal (car pt1) (car pt2) 1e-3)
(setq angDim (* 0.5 pi)dxy '(3.0 0.0 0.0))
(setq angDim 0.0dxy '(0.0 3.0 0.0))
)
(setq pmid (mapcar '+ (list (car pt) (* 0.5 (+ (cadr pt1) (cadr pt2))) 0.0)
dxy
)
)
(setq DimObj (vla-AddDimRotated
(vla-get-ModelSpace
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
(vlax-3d-point pt1)
(vlax-3d-point pt2)
(vlax-3d-point pmid)
angDim
)
)
(vlax-put-property DimObj "Color" 1)
(command "dimlinear" pt1 pt2 "v" pt)
)
)
)
) wzg356 发表于 2024-1-24 10:32
指定标注样式
指定标注样式后,颜色是OK了,但是文字方向还是反的,请问有什么办法把文字方向修正过来吗? yshf 发表于 2024-1-24 11:06
; 改为ActiveX方式即可满足要求
(if (setq pt1 (getpoint "\n 起点pt1:"))
(if (setq pt ...
试了下代码,确实可以达到目的,文字方向也OK了,但我还是想知道entmake文字反向的原因,
水平标注entmake和command文字方向一样,垂直标注就不一样,查了半天资料也没搞清楚。
最好能直接修改entmake解决问题。 本帖最后由 wzg356 于 2024-1-24 12:00 编辑
ziyouwzb 发表于 2024-1-24 11:37
试了下代码,确实可以达到目的,文字方向也OK了,但我还是想知道entmake文字反向的原因,
水平标注entma ...(setq e(entmakex.....))
(Vlax-Put(Vlax-Ename->Vla-Object e) 'VerticalTextPosition 1))
((0 "垂向居中")(1 "垂向上方")(2 "垂向外部")(3 "垂向JIS")(4 "垂向下方"))
除非尺寸线不是水平的或尺寸界线内的文本被强制设为水平(DIMTIH = 1),否则将标注文字置于标线上方。尺寸线到最下行文字基线的距离是当前DIMGAP 值。日本工业标准方式标注文字(JIS)---一般别用,貌似会出现文件出现版本无法识别的问题
llsheng_73 发表于 2024-1-24 11:37
要么交换13、14组,要么改50组+ PI试试?
感谢大佬,确实是50组码精度问题。
经过修改成下面代码,完美解决。
(setq bzys (strcat (getvar "dimstyle") "$0"))
(setq dxf50 (* 0.5 pi))
(setq pt1 (getpoint))
(setq pt2 (getpoint))
(setq pt (getpoint))
(entmake (list '(0 . "DIMENSION") '(100 . "AcDbEntity") '(100 . "AcDbDimension") (cons 10 pt) '(70 . 32) '(1 . "") (cons 3 bzys) '(100 . "AcDbAlignedDimension")
(cons 13 pt1) (cons 14 pt2) (cons 50 dxf50) '(100 . "AcDbRotatedDimension")
)
)
页:
[1]