下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上Cad画二次抛物线如y=ax2+bx+c 第一步 确认cad中有VBA module如果没有请下载,即CAD中“工具”“宏”“visual basic编辑器”,点thisdrawing第二步 打开cadalt+F11打开VBA窗口添加模块复制以下 Sub pwx() '定义几个点 Dim pntO(2) As Double Dim pntA(2) As Double Dim pntB(2) As Double Dim pntC(2) As Double Dim pntD(2) As DoubleDim pntE(2) As Double '设抛物线方程
2、为:y=ax²+bx+c Dim a As Double Dim b As Double Dim c As Double '设抛物线的宽度为l Dim l As Double Dim p As Double Dim Co As Acad3DSolid Dim Se AsAcadRegion Dim Pa As Acad3DFace Dim PntAsAcadPoint Dim Sp() As AcadObject a = InputBox("请输入y=a*x*x+b*x+c中对应的a:", "抛物线方程参数") If a = 0 The
3、n MsgBox "a=0, 不是抛物线": End b = InputBox("请输入y=a*x*x+b*x+c中对应的b:", "抛物线方程参数") c = InputBox("请输入y=a*x*x+b*x+c中对应的c:", "抛物线方程参数") l = InputBox("请输入所要画的抛物线宽度l:", "抛物线宽度") l = l / 2 '计算x²=2py中的p p = 1 / Abs(a) '定义O点 pntO(0
4、) = 0 pntO(1) = 0 pntO(2) = 0 '定义A点 pntA(0) = 0 pntA(1) = 0 pntA(2) = l * Sqr(3) / 2 '画圆锥 Set Co = ThisDrawing.ModelSpace.AddCone(pntO, l, l * Sqr(3) '移动圆锥,使底部圆在xy平面上 Co.MovepntO, pntA If l > p / 2 Then '定义A点 pntA(0) = 0 pntA(1) = p / 2 pntA(2) = (l - p / 2) * Sqr(3) '定义B点 pnt
5、B(0) = 0 pntB(1) = -l + p pntB(2) = 0 '定义C点 pntC(0) = 1 pntC(1) = -l + p pntC(2) = 0 '画剥面线 Set Se = Co.SectionSolid(pntA, pntB, pntC) '剥面线旋转到xy平面 Se.Rotate3D pntB, pntC, -60 * 4 * Atn(1) / 180'定义D点 pntD(0) = 0 pntD(1) = -l pntD(2) = 0 '定义E点 pntE(0) = 1 pntE(1) = 0 pntE(2) = 0
6、9;移动剥面线,使顶点在(0,0,0)位置 Se.MovepntO, pntD '当a>0时,翻转曲线 If a > 0 Then Se.Rotate3D pntO, pntE, 180 * 4 * Atn(1) / 180 '重新设E点 pntE(0) = -b / (2 * a) pntE(1) = (4 * a * c - b 2) / (4 * a) pntE(2) = 0 '移抛物线 Se.MovepntO, pntE '炸开剥面线 Sp = Se.Explode '删除辅助内容 Co.Delete Se.Delete Sp(1).
7、Delete Else MsgBox "输入的l太小,不适合剥圆锥" End If End Sub 第三步 菜单栏里点击运行命令输入参数abc以及抛物线宽度即可得到 一次出差到一个项目工地去,看到他们对着电脑上设计单位给的CAD图在一个点一个点的的找坐标值.方法是用鼠标点上一个点,记下(X,Y)后再输到EXCEL中,怕一个人出错,得两个人来操作. 后来有人发现了一个好办法,说不用笔来记(X,Y)了,直接用复制和粘贴的办法来做,这确实是一大进步呀.我问他们这一晚上能找多少点呀, 回答说做不了多少还老出错. 我说这样吧我给你编一个小程序用吧. 一晚过后第二天他们拿程序一用都说真
8、是省大劲了,又准又快呀.在CAD中 选 工具-宏-visual basic编辑器, 点thisdrawing 把下面的程序写进去, 然后点运行即可.Attribute VB_Name = "模块1"Sub abc()Dim x, y As DoubleDim ReturnPoint As VariantDim i As IntegerDim high As SingleDim Ptext, Fname As StringDim textObj As AcadTextDim pointObj As AcadPointDim layerObj As AcadLayerx = 0
9、: y = 0: i = 1: high = 9Fname = InputBox("选取结束时,请回到第一点!请给出文件名。")If Fname = "" Then Fname = "PointsDate"Fname = "c:abc" & Fname & ".txt"Set layerObj = ThisDrawing.Layers.Add("PointsData")ReturnPoint = ThisDrawing.Utility.GetPointPtex
10、t = i & ":(" & Round(ReturnPoint(0), 2) & "," & Round(ReturnPoint(1), 2) & ")"Set textObj = ThisDrawing.ModelSpace.AddText(Ptext, ReturnPoint, high)Set pointObj = ThisDrawing.ModelSpace.AddPoint(ReturnPoint)pointObj.Layer = "PointsData"textObj.Layer = "PointsData"pointObj.color = acRedOpen Fname For Output As
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版房地产买卖合同担保及产权转移范本3篇
- 2025版农业科技股份收购与农产品品牌合作合同3篇
- 2025年高标准住宅小区水电安装及售后服务合同2篇
- 2025年销售薪资与销售团队激励合同3篇
- 桶装水销售合同中的质量纠纷处理2025年度3篇
- 2025版事业单位职工食堂职工餐饮满意度调查与分析承包合同3篇
- 2025版司机雇佣服务质量监督与考核合同3篇
- 2025版标准二手车鉴定评估师服务合同3篇
- 二零二五版门头广告位招商与运营管理合同4篇
- 2025版个人小额教育贷款抵押担保协议3篇
- 油气行业人才需求预测-洞察分析
- 《数据采集技术》课件-Scrapy 框架的基本操作
- 高一化学《活泼的金属单质-钠》分层练习含答案解析
- 华为集团干部管理
- 图书馆前台接待工作总结
- 卫生院药品管理制度
- 理论力学智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 2024老年人静脉血栓栓塞症防治中国专家共识(完整版)
- 四年级上册脱式计算100题及答案
- 上海市12校2023-2024学年高考生物一模试卷含解析
- 储能电站火灾应急预案演练
评论
0/150
提交评论