查看: 2265|回复: 8
收起左侧

[Tribon] 类似CAD的tribon功能 测量距离

[复制链接]
发表于 2012-11-13 20:42 | 显示全部楼层 |阅读模式 来自: 中国广东清远
送给大家学习下。
import kcs_ui
import kcs_util
import kcs_draft
import KcsTransformation2D
import KcsPoint2D
import math
import KcsStat_point2D_req
import KcsCursorType
def run(*args):
    while 1:#如果不点击完成或者按回车键或者ESC键,进入循环。
        sp = KcsPoint2D.Point2D()#起点
        ep = KcsPoint2D.Point2D()#终点
        stp=KcsStat_point2D_req.Stat_point2D_req()
        stp.SetDefMode("ModeAuto")#2D选点模式,自动捕捉点
        transf = KcsTransformation2D.Transformation2D()
        res1,sp= kcs_ui.point2D_req("指定第一点",sp,stp)
        if res1==kcs_util.operation_complete() or res1==kcs_util.cancel() :#点击完成或者按回车键或者ESC键,退出循环。
            return 1#退出
        else:
            res2,ep = kcs_ui.point2D_req("指定第二点",ep,stp)
            if res2==kcs_util.operation_complete()or res2==kcs_util.cancel():#点击完成或者按回车键或者ESC键,退出循环。
                return 1#退出
            else:
               
                try:
                    handle = kcs_draft.view_identify(sp)#点选视图句柄
                    kcs_draft.element_transformation_get(handle, transf)#视图句柄获取transf
                    scale = transf.GetScale() #获取视图比例因子
                    dx=(ep.X-sp.X)/scale[0]#计算水平间距
                    dy=(ep.Y-sp.Y)/scale[0]#计算垂直间距
                    l=math.sqrt(dx*dx+dy*dy)#两点距离
                    if dx==0:#垂直情况不能用反三角计算,给出垂直判定。
                        a=90.0#水平倾角
                    else:
                        a=abs(math.atan(dy/dx)*180/3.14159265)#计算水平倾角
                    kcs_ui.message_noconfirm("*"*120) #分割线
                    kcs_ui.message_noconfirm(("水平增量:=%10.0f;垂直增量=%10.0f;水平倾角=%10.0f;距离=%10.0f,视图比例=%10.0f"%(dx,dy,a,l,1/scale[0])) )
                    #显示内容
                    kcs_ui.message_noconfirm("*"*120) #分割线
                except:
                    kcs_ui.message_noconfirm(kcs_draft.error)
回复

使用道具 举报

龙船学院
发表于 2012-11-13 21:28 | 显示全部楼层 来自: 中国江苏南京
怎么运行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-13 21:41 | 显示全部楼层 来自: 中国广东清远
程者为王 发表于 2012-11-13 21:28
怎么运行?

如果这完整的代码给你,你都不会变成的自己的,不用运用的话,我只能遗憾了。
回复 支持 反对

使用道具 举报

发表于 2012-11-13 22:27 来自手机 | 显示全部楼层 来自: 中国江苏无锡
林妹妹又研究出新东西了,恭喜
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-11-13 22:38 | 显示全部楼层 来自: 中国广东清远
ASTROBOY 发表于 2012-11-13 22:27
林妹妹又研究出新东西了,恭喜

这都是半年前的东西。
我有很多。
不能随便发出去的。
捡些简单的发出来给大家学习。
回复 支持 反对

使用道具 举报

发表于 2012-11-14 12:50 | 显示全部楼层 来自: 中国江苏扬州
运行不了
回复 支持 反对

使用道具 举报

发表于 2012-11-14 13:02 | 显示全部楼层 来自: 中国江苏泰州
测试完成,效果不错,谢谢楼主分享代码,有机会我们交流一下
回复 支持 反对

使用道具 举报

发表于 2012-11-15 15:57 来自手机 | 显示全部楼层 来自: 中国江苏无锡
林黛玉 发表于 2012-11-13 22:38
这都是半年前的东西。
我有很多。
不能随便发出去的。

林妹妹你就再放点惊喜出来吧!
回复 支持 反对

使用道具 举报

发表于 2012-11-24 18:02 | 显示全部楼层 来自: 新加坡
林妹妹,好样的
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|标签|免责声明|龙船社区

GMT+8, 2024-11-14 14:53

Powered by Imarine

Copyright © 2006, 龙船社区

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