第八讲 autoCAD二次开发

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2 创建和编辑二维图形对象
实例:创建文字 Sub txt() Dim mytxt As AcadTextStyle '定义mytxt变量为文本样式 Dim p(0 To 2) As Double '定义坐标变量 p(0) = 100: p(1) = 100: p(2) = 0 '坐标赋值 Set mytxt = ThisDrawing.TextStyles.Add("mytxt") '添加mytxt样式 mytxt.fontFile = "c:\windows\fonts\simfang.ttf" '设置字体文件为 仿宋体 mytxt.Height = 100 '字高 mytxt.Width = 0.8 '宽高比 mytxt.ObliqueAngle = ThisDrawing.Utility.AngleToReal(3, 0) '倾斜 角度(需转为弧度)
1概述
大部分的集合对象都是通过Document对象访问,对于每一个 集合对象,Document对象都有一个相应的特性。 如:通过定义变量访问集合对象 Dim objLayer As AcadLayer Dim layerCollection As AcadLayers
Set layerCollection = ThisDrawing.Layers Set objLayer = layerCollection.Add(“中心线”); objLayer.Name = “细实线”
2 创建和编辑二维图形对象
实例:绘制正弦曲线 Sub sinl() Dim p(0 To 719) As Double '定义点坐标 For i = 0 To 718 Step 2 '开始画多段线 p(i) = i * 2 * 3.1415926535897 / 360 '横坐标 p(i + 1) = 2 * Sin(p(i)) '纵坐标 Next i ThisDrawing.ModelSpace.AddLightWeightPolyline (p) '画多 段线 ZoomExtents '显示整个图形 End Sub
2 创建和编辑二维图形对象
7、用户交互 基本函数: GetAngle:提示用户输入一个角度值 GetDistance:提示用户输入一段距离 GetEntity:提示用户拾取一个实体 GetInteger:提示用户输入一个整数 GetPoint:提示用户输入一个点 GetReal:提示用户输入一个实数 GetString:提示用户输入一个字符串 Prompt:在命令窗口打印一个字符串
1概述
Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10)
Call语句的作用是调用其他过程或者方法。
ThisDrawing.ModelSpace是指当前CAD文档的模型空间
AddCircle是画圆方法
Addcicle方法需要两个参数:圆心和半径
CC就是圆心坐标,i*10就是圆的半径,本例中,这些圆的半径 分别是10、110、210、310……
说明: Dim a, b as Double Dim a as Double, b as Double
2 创建和编辑二维图形对象
2 圆和圆弧 • 方法:AddCircle 和AddArc • AddCircle (圆心,半径) • AddArc(圆心,半径,起始和终值角) • AddCircle(centerPoint,radius) • AddArc(centerPoint,radius,startAngle,endAngle)
Set objDim = ThisDrawing.ModelSpace.AddDimRotated(ExtLine1Point,
ExtLine2Point, dimLinePostion, rotationAngle) *.AddDimRadial(centerPoint,angle,radius)
创建对齐标注
Dim objDim As AcadDimAligned
Set objDim = ThisDrawing.ModelSpace.AddDimAligned(ExtLine1Point, ExtLine2Point, textPostion) 创建转角标注 Dim objDim As AcadDimRotated
Dim angle As Double angle = ThisDrawing.Utility.GetAngle(, vbNewLine & "输入一个角度 :") ThisDrawing.Utility.Prompt vbNewLine & "用户输入的角度是:" & angle Dim distance As Double distance = ThisDrawing.Utility.GetDistance(, vbNewLine & "输入距 离:") Dim point As Variant point = ThisDrawing.Utility.GetPoint(, vbNewLine & "拾取点:")
2 wk.baidu.com建和编辑二维图形对象
4、文字 单行文字和多行文字 单行文字:基本的图形对象,仅能由文字样式来控制 多行文字:由指定了文字样式的单行文字组成,通过 Explode命令可以分解为单行文字 创建单行文字: 方法:AddText 参数:文字字符串、插入点和文字的高度 创建多行文字: 方法:AddMText 参数:文字字符串、插入点、文字的高度
机械CAD软件开发实用技术教程
第八讲 AutoCAD二次开发
1概述
宏是在选择工具栏某个选项时执行特定操作的一系列命 令,可以只是完成任务的按键记录,也可以是复杂的命 令。
集合对象是一种预定义的对象,包括相似对象的所有实例 (或是相似对象所有实例的上级对象) 重要的集合对象: Documents:当前AutoCAD任务中打开的所有文档 ModelSpace:模型空间中的所有图形对象 Blocks:图形中所有的块 Group:图形中的所有编组 Layers:图形中的所有图层 Linetypes:图形中的所有线型 SelectionSets:图形中所有的选择集 TextStyles:图形中所有的文字
2 创建和编辑二维图形对象
3、多线段 可包含多个直线或圆弧段,特别适合表示一些连续的 线 类:AcadLWPolyline 方法:AddLightWeightPolyline 常用属性: ConstantWidth:修改整条多段线的宽度 SetWidth:修改多段线某一直线或圆弧段的起点、 终点宽度 Length:返回整条多段线的长度 Coordinate:返回多段线某个顶点的坐标 Coordinates:返回多段线所有顶点的坐标数组
For i = 1 To 1000 Step 10 „开始循环 …… Next i ‟结束循环 i也是一个变量 step后面的数值是每次循环时增加的数值,也可以用负值 例如:For i =1000 To 1 Step -10 很多情况下,后面可以不加step 10 如:For i=1 to 100,它的作用是每循环一次i值就增加1
1概述
实例 Sub Circles() Dim cc(0 To 2) As Double '声明坐标变量 cc(0) = 1000 '定义圆心座标 cc(1) = 1000 cc(2) = 0 For i = 1 To 1000 Step 10 „开始循环 Call ThisDrawing.ModelSpace.AddCircle(cc, i * 10) '画圆 Next i End Sub
Dim startPoint(0 To 2) As Double, endPoint(0 To 2) As Double startPoint(0) = 0, startPoint(1) = 0, startPoint(2) = 0 endPoint(0) = 100, endPoint(1) = 100, endPoint(2) = 0
2 创建和编辑二维图形对象
1、直线 • 类:AcadLine • 类:ModelSpace Dim line As AcadLine Set line = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) 修改 AddLine 创建
2 创建和编辑二维图形对象
3 对象特性
图层、颜色、线型和线宽等特性的总称 1、图层 基本操作:新建、删除、打开和关闭 位置:Document对象的Layers集合中 1)新建图层 ThisDrawing.Layers.Add(name) 2)图层编辑 利用Item方法访问 Dim layer As AcadLayer Set layer = ThisDrawing.Layers.Item(name) 3)打开图层 layer.LayerOn = True
2 创建和编辑二维图形对象
6、尺寸标注 基本类型:线性标注、半径标注、角度标注 线性标注包括对齐标注、转角标注和坐标标注 基本方法: AddDim3PointAngular:使用三个点创建角度标注 AddDimAligned:创建对齐标注 AddDimAngular:标注圆、圆弧或两条直线的夹角 AddDimArc :标注弧长 AddDimDiametric:标注直径 AddDimOrdinate:创建点的坐标标注 AddDimRadial:标注半径 AddDimRotated:创建转角标注
2 创建和编辑二维图形对象
ThisDrawing.ActiveTextStyle = mytxt '将当前文字样式设置为mytxt Set txtobj = ThisDrawing.ModelSpace.AddMText(p, 1400, "{做到老 ,学到老}\P" & "此心自光明正大,过人远矣") txtobj.LineSpacingFactor = 2 '指定行间距 txtobj.AttachmentPoint = 3 '右对齐(1为左对齐,2为居中) End Sub
2 创建和编辑二维图形对象
5、填充 根据一组闭合的曲线作为边界创建各种填充对象 方法:AddHatch 基本步骤: 1)创建一个Hatch对象 2)指定外部环(闭合曲线) 3)指定内部环 4)执行Evaluate方法计算和显示填充对象
2 创建和编辑二维图形对象
‘创建填充对象 Dim hatch as AcadHatch Set hatch=ThisDrawing.ModelSpace.AddHatch(pattenType,pa ttenName,associativity,acHatchObject) „添加填充外边界 Hatch.AppenOuterLoop ents Hatch.Evaluate ThisDrawing.Regen True‟刷新图形 Set AddHatch = hatch
1概述
说明: Sub Circles() …… End Sub Circles是宏的名称,也叫过程名称。 Dim cc(0 To 2) As Double „声明坐标变量 语法:Dim变量名 As 数据类型
Double Integer Long Boolean
1概述
cc(0) = 1000 „定义圆心座标 cc(1) = 1000 cc(2) = 0 它们的作用是给CC变量的每一个元素赋值,其顺序是X、Y、Z坐标
3 对象特性
4)关闭图层 layer.LayerOn = False 5)删除图层 layer.Delete 6)设定图层为当前图层 ThisDrawing.ActiveLayer = ThisDrawing.Layers.Item(name)
Dim line As AcadLine Set line = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint) '修改直线的起点 startPoint(1) = 100 line.startPoint = startPoint
2 创建和编辑二维图形对象
相关文档
最新文档