用Cad画二次抛物线
更新时间:2024-03-14 00:25:01 阅读量: 综合文库 文档下载
Cad画二次抛物线如
第一步确认cad中有如果没有请下载,即CAD中“工具”→“宏”→“visual basic编辑器”,点thisdrawing 第二步打开打开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 Double Dim pntE(2) As Double
'设抛物线方程为:y=ax2+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 Then MsgBox \不是抛物线\
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 '计算x2=2py中的p p = 1 / Abs(a) '定义O点 pntO(0) = 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点 pntB(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
'移动剥面线,使顶点在(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).Delete
Else
MsgBox \输入的l太小,不适合剥圆锥\ End If
End Sub
第三步菜单栏里点击运行命令输入参数
以及抛物线宽度即可得到
CAD和Excel VBA高手请进 批量获取坐标点数据
一次出差到一个项目工地去,看到他们对着电脑上设计单位给的CAD图在一个点一个点的的找坐标值.方法是用鼠标点上一个点,记下(X,Y)后再输到EXCEL中,怕一个人出错,得两个人来操作. 后来有人发现了一个好办法,说不用笔来记(X,Y)了,直接用复制和粘贴的办法来做,这确实是一大进步呀.我问他们这一晚上能找多少点呀, 回答说做不了多少还老出错. 我说这样吧我给你编一个小程序用吧. 一晚过后第二天他们拿程序一用都说真是省大劲了,又准又快呀.
在CAD中 选 工具--宏--visual basic编辑器, 点thisdrawing 把下面的程序写进去, 然后点运行即可.
Attribute VB_Name = \模块1\Sub abc()
Dim x, y As Double
Dim ReturnPoint As Variant Dim i As Integer Dim high As Single
Dim Ptext, Fname As String Dim textObj As AcadText Dim pointObj As AcadPoint Dim layerObj As AcadLayer x = 0: y = 0: i = 1: high = 9
Fname = InputBox(\选取结束时,请回到第一点!请给出文件名。\If Fname = \Fname = \
Set layerObj = ThisDrawing.Layers.Add(\
ReturnPoint = ThisDrawing.Utility.GetPoint
Ptext = i & \Set textObj = ThisDrawing.ModelSpace.AddText(Ptext, ReturnPoint, high) Set pointObj = ThisDrawing.ModelSpace.AddPoint(ReturnPoint) pointObj.Layer = \textObj.Layer = \pointObj.color = acRed
Open Fname For Output As #1 '\Print #1, \
Print #1, i; Round(ReturnPoint(1), 2), Round(ReturnPoint(0), 2)
正在阅读:
用Cad画二次抛物线03-14
定义一个抽象基类Shape08-28
5、3反比例函数实际应用过关题12-31
二次沉淀池的详细介绍04-28
行政职业能力测验模拟预测试卷(二十六)05-28
国家开放大学河北00815《计算机应用基础》模块4PowerPoint2010电子演示文稿系统——客观题辅导答案09-01
大学生广泛交友弊大于利04-20
走过才明白作文700字05-02
政治学概论12-10
《望洞庭湖赠张丞相》教学设计11-13
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 抛物线
- Cad
- 六棱块铺设技术交底
- 新版《煤矿安全规程》的新变化
- 2016年个人述职述廉报告 范文
- 关于比特币,你了解多少?
- 柯布西耶的 Beistegui 香舍丽榭大街上的住宅 - 图文
- 教科版科学五年级下册《寻找时间的痕迹》教学设计(精品).doc
- 官寨乡中心幼儿园秋季学期《幼儿防止小学化倾向》方案+幼儿生活
- 统计学 期末复习
- 人教版八年级数学上册教案13-4第2课时课题学习最短路径问题(2)
- 辽宁省沈阳二中2016届高三上学期12月月考试题 物理 Word版有答案
- 如皋经济技术开发区安置房物业管理暂行办法
- 江苏省第十四批特级教师名单 - 图文
- 2016年专业技术人员在线培训答案《目标与时间管理》(最权威)
- 管理信息系统
- 关于调整提租补贴(房贴)、住房公积金和住房补贴的通知
- win7+ubuntu 13.04双系统安装方法 - 图文
- 12英语词汇学试卷
- JAVA,OpenLDAP使用心得
- 2019年中国市政工程建设及ppp模式行业深度调研与投资战略研究报
- 2014年秋季北师大版六年级数学上册第第二、四单元测试题