明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 890|回复: 7

[讨论] entmake垂直标注文字方向和颜色不对,如何修改entmake,使之达到和command一样的效果。

[复制链接]
发表于 2024-1-24 09:37:42 | 显示全部楼层 |阅读模式
3明经币
(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)

附件: 您需要 登录 才可以下载或查看,没有账号?注册

最佳答案

查看完整内容

要么交换13、14组,要么改50组+ PI试试?
发表于 2024-1-24 09:37:43 | 显示全部楼层
ziyouwzb 发表于 2024-1-24 11:27
指定标注样式后,颜色是OK了,但是文字方向还是反的,请问有什么办法把文字方向修正过来吗?

要么交换13、14组,要么改50组+ PI试试?
回复

使用道具 举报

发表于 2024-1-24 10:32:15 来自手机 | 显示全部楼层
指定标注样式
回复

使用道具 举报

发表于 2024-1-24 11:06:10 | 显示全部楼层
    ; 改为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.0  dxy '(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)
                )
            )
        )
    )

评分

参与人数 1明经币 +1 收起 理由
ziyouwzb + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2024-1-24 11:27:54 | 显示全部楼层

指定标注样式后,颜色是OK了,但是文字方向还是反的,请问有什么办法把文字方向修正过来吗?
回复

使用道具 举报

 楼主| 发表于 2024-1-24 11:37:45 | 显示全部楼层
yshf 发表于 2024-1-24 11:06
; 改为ActiveX方式即可满足要求
    (if (setq pt1 (getpoint "\n 起点pt1:"))
        (if (setq pt ...

试了下代码,确实可以达到目的,文字方向也OK了,但我还是想知道entmake文字反向的原因,
水平标注entmake和command文字方向一样,垂直标注就不一样,查了半天资料也没搞清楚。
最好能直接修改entmake解决问题。
回复

使用道具 举报

发表于 2024-1-24 11:55:10 | 显示全部楼层
本帖最后由 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)---一般别用,貌似会出现文件出现版本无法识别的问题

评分

参与人数 1明经币 +1 收起 理由
ziyouwzb + 1 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2024-1-24 12:31:21 | 显示全部楼层
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")
)
)
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 23:14 , Processed in 0.149727 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表