明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2391|回复: 8

关于获取角度默认值的问题

[复制链接]
发表于 2003-8-31 11:02:00 | 显示全部楼层 |阅读模式
我正在开发一个程序,其中有一节程序要获取角度标注的默认值,我有通过
ActiveX技术来获取数值,但是极不稳定,不能获取正确的角度值,后来用(Assoc 42 a)
的方法来获取,后来发现有时候获取来的值是(42 . -1.0),因此也不能获取正确的角度值,请各位出谋划策,谢谢!
发表于 2003-9-1 12:40:00 | 显示全部楼层
通过ActiveX技术来获取数值,但是极不稳定!!!

把程序貼上來看看!
发表于 2003-9-2 08:10:00 | 显示全部楼层
(defun C:TT ()
  (/ (*        180
        (vla-get-measurement
          (vlax-ename->vla-object (car (entsel "\n选角度标注: ")))
        )
     )
     pi
  )
)
 楼主| 发表于 2003-9-5 10:41:00 | 显示全部楼层
这个图上的角度无法通过编程获取默认角度值

本帖子中包含更多资源

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

x
 楼主| 发表于 2003-9-5 10:42:00 | 显示全部楼层
此上图中的角度标注的默认值既无法用(assoc 42 (entget a))的方法来获取,
也无法用(vla-get-measurement (vlax-ename->vla-object (car (entsel "\n选角度标注: "))))
的方法获取,许多图形都有这个问题。
如果通过计算四个引线点形成的角度的方法(vlax-safearray->list (vlax-variant-value (vla-get-ExtLine1StartPoint a)))
来计算角度值的话又经常会出错。
大家看看还有什么好的办法可以正确地稳定地获取角度默认值。
发表于 2003-9-5 10:54:00 | 显示全部楼层
没问题啊,看下面组码,(42 . 0.418879),换算一下,正好是24度啊,而且我试了用ActiveX方法,也返回正确值,不知你是怎么试的,
((-1 . <图元名: 7ea6c380>) (0 . "DIMENSION") (330 . <图元名: 7ea67cd8>) (5 .
"698") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "LYM") (100 .
"AcDbDimension") (2 . "*D6") (10 382.019 279.46 0.0) (11 386.007 277.912 0.0)
(12 0.0 0.0 0.0) (70 . 34) (1 . "<>%%p30{\\f??|b0|i0|c0|p54;'}") (71 . 5) (72 .
1) (41 . 1.0) (42 . 0.418879) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210
0.0 0.0 1.0) (3 . "STANDARD$2") (100 . "AcDb2LineAngularDimension") (13 381.734
278.12 0.0) (14 383.608 277.286 0.0) (15 384.219 279.46 0.0) (16 385.881
277.408 0.0) (40 . 0.0) (50 . 0.0))
 楼主| 发表于 2003-9-6 09:11:00 | 显示全部楼层
这就真是怪了
我的电脑试出来的是
((-1 . <图元名: 7ea6c380>) (0 . "DIMENSION") (330 . <图元名: 7ea67cd8>) (5 .
"698") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "LYM") (100 .
"AcDbDimension") (2 . "*D6") (10 382.019 279.46 0.0) (11 386.007 277.912 0.0)
(12 0.0 0.0 0.0) (70 . 34) (1 . "<>%%p30{\\f??|b0|i0|c0|p54;'}") (71 . 5) (72 .
1) (41 . 1.0) (42 . -1.0) (52 . 0.0) (53 . 0.0) (54 . 0.0) (51 . 0.0) (210
0.0 0.0 1.0) (3 . "STANDARD$2") (100 . "AcDb2LineAngularDimension") (13 381.734
278.12 0.0) (14 383.608 277.286 0.0) (15 384.219 279.46 0.0) (16 385.881
277.408 0.0) (40 . 0.0) (50 . 0.0))
其中的42的对应值是-1.0,我有的文件的角度标注会返回正确的值,但是有的返回的就是-1.0,
不仅是角度标注如此,就连线性标注都会这样。
对于Active X,系统的反应是measurement没有打开,返回错误。
难道是我们公司三台电脑装的AutoCAD2004和AutoCAD2000都有问题不成?
我的这种问题通常是出现在一些被存储过一段时间,而后再被打开的文件里.如果是在当前文件中标的角度那么计算则不会出问题.
发表于 2003-9-6 11:39:00 | 显示全部楼层
还真没遇到过,
不过我用你的组码生成的对象,返回依然是正确的数值。
用你的组码中的四个点计算出来的角度是正确的,你可以试试这种方法
 楼主| 发表于 2003-9-14 10:22:00 | 显示全部楼层
谢谢,我再试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 22:51 , Processed in 0.188967 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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