明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 879|回复: 7

[.net群] 2013-08-18 明经 AutoCAD.NetApi (2474812) 群聊记录:[image={B4E7D958-FF73-F11A-5DC6-19C3

 关闭 [复制链接]
发表于 2013-8-18 09:50:55 | 显示全部楼层 |阅读模式
[C#]有心人问道 09:50:55
[qqimg]201308/{B4E7D958-FF73-F11A-5DC6-19C3D0DE362B}.jpg[/qqimg]请问这是度分秒格式的吧?
[沪C#]无情剑客 09:52:27
[C#]有心人问道 09:54:28
十进制的度数
我现在才反应过来。
 楼主| 发表于 2013-8-18 11:41:34 | 显示全部楼层
[C#]有心人问道 11:41:34
222.65736315602359 为十近制度数,请问转为度分秒应该是多少?
[vb.net]PPYYFF 11:43:06
.65736315602359 /100*60
[C#]有心人问道 11:44:04
但是CAD里面是这么多[qqimg]201308/{60E3A4FC-F5EF-FF32-9A6C-499301D42A57}.jpg[/qqimg]
[vb.net]PPYYFF 11:44:14
.65736315602359*60
[vb.net]PPYYFF 11:44:44
然后小数部分再*60
[C#]有心人问道 11:44:50
我算出来为222  39   27
[沪C#]无情剑客 11:45:32
多了180,看看坐标系
[vb.net]PPYYFF 11:46:02
222度 39分26.50736秒
[C#]有心人问道 11:46:13
对,我算出来也是。
[沪C#]无情剑客 11:47:13
差180要看具体情况
[沪C#]无情剑客 11:47:44
只要不是数值不对,这种不对就代表计值起点不一样
或者有的不能超过180
[C#]有心人问道 11:50:18
但是我怎么知道在不同的情况下减多少呢?
[沪C#]无情剑客 11:50:58
你看用在什么情况啊
这个是CAD自身的,问谁都不知道

你这次是什么角度?
[C#]有心人问道 11:52:49
是这样的,我在写一个计算方位角的方法。方法有除了有起点坐标与终点坐标外,还有基准角与(逆时针或顺时针)两个参数。
[C#]有心人问道 11:53:20
我想把这个做成一个能和CAD相同的方法。
有些能测试正确,有些不行。
[沪C#]无情剑客 11:53:38
就是很少了一个180的这个
[C#]有心人问道 11:53:50
[qqimg]201308/{2A68D0B3-6432-F251-E8AC-97D4691AADA7}.jpg[/qqimg]
红线。
[C#]有心人问道 11:54:41
中间的十字丝不代表什么。
[沪C#]无情剑客 11:55:11
你的起点和终点反掉了
所有的角度都是从起点开始算的,常识
[C#]有心人问道 11:55:57
没有反啊。
[沪C#]无情剑客 11:56:02
你红线肯定是左下那个是起点
[C#]有心人问道 11:56:08
对。
我就是这样一个顺序算的。
[沪C#]无情剑客 11:56:19
右上的话就是222的那个
[vb.net]PPYYFF 11:58:42
起点和终点分别计算就查180度
[沪C#]无情剑客 12:02:11
[qqimg]201308/{1054564F-4941-86DB-8F96-1BD1EDEA2C56}.jpg[/qqimg]
 楼主| 发表于 2013-8-18 12:24:08 | 显示全部楼层
[C#]有心人问道 12:24:08
你这个考虑方向没有,无情?
[沪C#]无情剑客 12:24:31
这个是CAD的定义方向好不,不是我考虑的方向
CAD就是这么定义的
[沪C#]无情剑客 12:25:37
包括给了2点和半径怎么定义凸弧、优弧都是有一定规则的,不是想怎么算就怎么算的
 楼主| 发表于 2013-8-18 13:03:43 | 显示全部楼层
[C#]有心人问道 13:03:43
我再看看
先谢谢了。
 楼主| 发表于 2013-8-18 18:34:23 | 显示全部楼层
[C#] netcadGis 18:34:23
请问下 视图怎么与视口相关联?
 楼主| 发表于 2013-8-18 20:58:20 | 显示全部楼层
[vb.net]风水 20:58:20
对象比如线,块等,在autocad中右键跳出来的那些特性用什么 方式可以获得
[VB&c++]阿华 20:59:54
那叫属性
[vb.net]风水 21:00:34
找不到有properties这个东东
[VB&c++]阿华 21:00:42
不用找
[vb.net]风水 21:00:55
如何得到呢
[VB&c++]阿华 21:00:57
你在对象后面点个.就行了
[vb.net]风水 21:01:19
只有部分数据找得到
[VB&c++]阿华 21:05:04
你要找什么数据,找不到,具体的说一个
[vb.net]风水 21:05:43
我的要找块引用的位置,结果给出的都是(0,0,0)用的是position
[vb.net]风水 21:06:33
foreach (ObjectId id in btr)
                {
                    Entity ent = tr.GetObject(id, OpenMode.ForRead) as Entity;
                   
                    if (ent is BlockReference)
                    {
                        BlockReference brf = ent as BlockReference;
                        ResultBuffer rb = brf.XData;
[VB&c++]阿华 21:06:41
那是你的代码有错误
[vb.net]风水 21:06:47
xdata里也没有
[VB&c++]阿华 21:06:51
和特性面板没关系
[vb.net]风水 21:08:00
[qqimg]201308/{118A7561-E5B2-863A-B6C6-7F3ADC010E35}.jpg[/qqimg]
我直接用list命令返回的块位置也是0,0,0
[vb.net]风水 21:12:41
[qqimg]201308/{53779255-28B1-2229-CE4E-776E400E62C2}.jpg[/qqimg]
下面这个是我要的数据,可是通过.position得到的是上面的坐标
也就是0,0,0
 楼主| 发表于 2013-8-18 21:24:05 | 显示全部楼层
[浙C#]盐水白菜 21:24:05
不可能
CAD版本问题?
[vb.net]风水 21:24:31
2014版
[VB&c++]阿华 21:24:38
英文版没用过
14版权也没用过
[沪C#]无情剑客 21:25:05
说明原来做块的时候就是0啊,有什么奇怪的
[浙C#]盐水白菜 21:25:09
块参照插入的坐标是x,y
[vb.net]风水 21:25:40
原来坐标是0,我要得到现在插入点的坐标,用什么 得到呢
我也觉得显示的是做块时用到的坐标
[沪C#]无情剑客 21:26:10
你插入到了数据库没有呢?插入后肯定是实际值
[vb.net]风水 21:26:21
当然插入到块了
[沪C#]无情剑客 21:26:33
那你把文件发过来看下
就这2个块的文件
[vb.net]风水 21:27:11
[qqimg]201308/{D174D0D8-CF7E-A582-104F-CE9C04F57646}.jpg[/qqimg]
[浙C#]盐水白菜 21:27:35
你的插入块,在图上显示出正常吗?
[vb.net]风水 21:27:46
正常呀
[沪C#]无情剑客 21:27:59
没有图,都不知道你说的对不对
[vb.net]风水 21:28:09
这两个块坐标都是0,0,0
[沪C#]无情剑客 21:28:12
有些时候就是你自己操作的问题
[浙C#]盐水白菜 21:28:43
块有问题,要么!
[浙C#]盐水白菜 21:29:20
块的中心,
[沪C#]无情剑客 21:29:23
这种没图又老说问题问题的还是不要理会了
碰到过几次都说有问题,结果到头来是他自己的问题
[浙C#]盐水白菜 21:30:28
绝对是他自己的问题
[vb.net]风水 21:35:18
会不会是匿名块的问题
[沪C#]无情剑客 21:35:55
匿名块和该块的原始块是一样的,
只不过由于某些原因才变成匿名块
[vb.net]风水 21:39:38
我转成2010版你们看看
[沪C#]无情剑客 21:41:05
不用转,直接上图即可
[vb.net]风水 21:42:05
[qqimg]201308/{57967503-5FC7-D7F1-7706-5A5C6E4EDD47}.jpg[/qqimg]
原文件tt.dwg
[vb.net]风水 21:44:05
Entity ent = tr.GetObject(id, OpenMode.ForRead) as Entity;
                   
                    if (ent is BlockReference)
                    {
                        BlockReference brf = ent as BlockReference;
                        ResultBuffer rb = brf.XData;
                        oint2d pt2d = new oint2d(brf.Position.X, brf.Position.Y);
程序就是这个,结果得到的都是0,0
[沪C#]无情剑客 21:44:46
因为这个块原版就是0,0,0
原本的
[vb.net]风水 21:45:23
我这个图有好几个块呢,我遍历了每个块,返回的都是0,0
[qqimg]201308/{C1985ACA-4E7D-81C4-FA4E-B0E5321144C7}.jpg[/qqimg]和[qqimg]201308/{1E2CD1F0-2B74-D9D4-A804-685B25C35511}.jpg[/qqimg]
[沪C#]无情剑客 21:46:03
就是0,0,0,这种是临时生成的匿名块,原始块插入点就是0,0,0,没什么奇怪的
[浙C#]盐水白菜 21:46:25
俺用2008 还是不错的
[vb.net]风水 21:46:39
那我要得到现在的块的坐标如何得到呢
[浙C#]盐水白菜 21:47:05
转2007格式给我
[vb.net]风水 21:47:25
ok
稍等
[沪C#]无情剑客 21:47:37
本来就是0,0,0,当然还是0,0,0了
[浙C#]盐水白菜 21:47:45
看程序是没有问题
[沪C#]无情剑客 21:48:11
自动生成的,如果你原始块不给定原点不就是0,0,0么
匿名块原来没有原始块派生,那么肯定就是0,0,0了
[vb.net]风水 21:48:44
[沪C#]无情剑客 21:50:08
[qqimg]201308/{DDE757CB-F74E-AC92-CE83-87875C8C82F8}.jpg[/qqimg]看到没?模型空间里面的块原点就是在坐标原点0,0,0
[vb.net]风水 21:50:49
系统生成的。插入点都是0,0,0,可不可以用extend获得当前块真正位置
[沪C#]无情剑客 21:54:00
理论上可以
[沪C#]无情剑客 21:54:43
但是如果你的块里面在别的地方有了一个点或者一条线而你没有发现,那么你的extend值与你想要的东西就差远了
[vb.net]风水 21:55:46
块是别的系统生成的,我没法自己修改块定义
自己做的块就简单了
[vb.net]风水 21:59:07
谢谢大家
我自己再多试试
[沪C#]无情剑客 21:59:44
自己用个程序,炸了再重新做
[vb.net]风水 22:00:36
原来想过炸开再说
[vb.net]风水 22:01:08
可一个图上块太多了,估计速度会很慢
[沪C#]无情剑客 22:01:17
一般系统自己做的话,应该不会有多余的线和点的,你应该可以放心使用extend。
[vb.net]风水 22:02:07
恩,谢谢剑客
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-23 13:11 , Processed in 0.201739 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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