首页 > 其他分享 >AutoCAD VBA 两点角度计算

AutoCAD VBA 两点角度计算

时间:2024-09-17 16:02:55浏览次数:1  
标签:VBA ang End sp Else 180 p1 两点 AutoCAD

计算角度利用反正切注意斜率存在的条件,X不能为0,先要剔除再坐标中上的情况,在分类讨论计算实际的角度,范围0~2PI

 p0 = pl.Coordinate(0)
        p1 = pl.Coordinate(1)
        Dim v As Variant, lth As Double
        v = Array(p1(0) - p0(0), p1(1) - p0(1))
        Dim ang As Double, sp(0 To 2) As Double
        ang = Atn(v(1) / v(0)) * 180# / (4 * Math.Atn(1))
        If v(0) = 0# Then
            If v(1) > 0 Then ang = 90 Else ang = 270 'y轴
        Else
            If v(1) = 0# Then
                If v(0) > 0 Then ang = 0# Else ang = 180 'x轴
            Else
                If v(0) > 0 Then
                    If v(1) > 0 Then
                        ang = ang '第1象限
                    Else
                        ang = ang + 360 '第4象限
                    End If
                Else
                     If v(1) > 0 Then
                        ang = ang + 180 '第2象限
                    Else
                        ang = ang + 180 '第3象限
                    End If
                End If
            End If
        End If
       
        sp(0) = p1(0): sp(1) = p1(1): sp(2) = 0#
        With ThisDrawing.ModelSpace.AddText(ang, sp, 20)
            .Rotation = ang * (4 * Math.Atn(1)) / 180#
            .color = 3
        End With

 

标签:VBA,ang,End,sp,Else,180,p1,两点,AutoCAD
From: https://www.cnblogs.com/NanShengBlogs/p/18417241

相关文章

  • VBA_NZ系列工具NZ02:VBA读取PDF使用说明
    我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织成自己的程序呢?VBA可否能组织一个大型的程序呢?如何让VBA形成一个工具,拿来就用呢?在......
  • AutoCAD C# 判断多边形与点的位置关系
    书上说,射线法和叉乘法感觉都不完整 下面我分享我写的基于AutoCADBREP算法 vared=acApp.Application.DocumentManager.MdiActiveDocument.Editor;varpeo=newPromptEntityOptions("SelectaPolyLine:");peo.SetRejectMessage("OnlyPolyLine");peo.AddAll......
  • YZ系列工具之YZ07:VBA对工作簿事件的监听
    我给VBA下的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套+一部VBA手册,教程分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用;手册是为方便编程人员查......
  • 如何学习VBA_3.2.10:人机对话的实现
    我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的劳动效率,而且可以提高数据处理的准确度。我推出的VBA系列教程共九套和一部VBA汉英手册,现在已经全部完成,希望大家利用、学习。如果您只是一般的职场VBA需求,可以打包选择7.1.3.9教程+汉英手册,第7套教程是......
  • VBA即用型代码手册:工作表的复制,移动
    我给VBA下的定义:VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率,而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。作为我的学员要利用我的积木编程思想,积木编程最重要的是积木如何搭建及拥有积木。在九套教程中我给出了大量的积......
  • 已知两圆的圆心半径,求交点坐标——CAD VBA 解决
    如下图,dwg图中若干图形,运行代码后提示选择两个圆,然后判断两个圆位置关系和相交点坐标:本例难点在于通过几何知识求出交点坐标。几何背景假设有两个圆:-圆1:圆心(O_1(x_1,y_1)),半径(r_1)-圆2:圆心(O_2(x_2,y_2)),半径(r_2)圆心(O_1)和(O_2)之间的......
  • VBA高级应用30例应用3在Excel中的ListObject对象:循环列出当前工作表中的表
    《VBA高级应用30例》(版权10178985),是我推出的第十套教程,教程是专门针对高级学员在学习VBA过程中提高路途上的案例展开,这套教程案例与理论结合,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中分发VBA程序,写好的程序可以升级。本套教程共三册三......
  • VBA之Word应用第三章第一节:文档集合Documents 对象
    《VBA之Word应用》(版权10178982),是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到WordVBA的妙处。这套教程是专门针对WORDVBA的教程,是VBA中的稀缺资源,我给这套教程分归为......
  • VBA之Excel应用第三章第一节:对象的层次结构
    《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家......
  • 【VBA基础教程篇】Excel-VBA Debug调试相关操作
    Excel-VBADebug调试相关操作在工作窗口,上方菜单栏中,有一个专门的额菜单:Debug菜单,里面有debug相关操作。除此之外你也需要一些辅助窗口来帮助你更好的进行调试,1.Immediatewindow(立即窗口):类似其他IDE的console控制台。显示快捷键:Ctrl+G,也可以点击菜单栏View->Immediatewin......