基于autocad文字沿曲线自动生成器的开发与研究信息管理与信息系统专业论文终稿内容摘要:

实现文字的排列方式,文字块的插入点以及文字的生成。 生成器用户界面:用于用户输入文字内容,文字高度,文字字体,文字的排列方式。 系统流程图 根据系统设计的具体情况,:文字曲线生成器输入文字,选择文字高度,字体文字对齐方式文字沿曲线对齐文字沿水平对齐选择曲线生成文字退 出 系统流程图文字沿曲线自动生成器的实现有三种方法:(1)把选择的曲线通过AutoCAD的定数等分命令,均匀在曲线上生成点,在通过选择集获取曲线上的点,通过计算机获取点的坐标。 再把输入的文字一个一个的分开,一个一个的在点的坐标生成单行文字。 (2)把输入的文字的第一个字做成一个块,在通过autoCAD的定数等分命令,使块沿曲线排列,在把文字图块砸开成为文字对象,然后逐个修改文字就可以了。 (3)把输入的文字一个字一个字做成块,在把选择的曲线通过AutoCAD的定数等分命令,均匀在曲线上生成点,再通过选择集获取曲线上的点,通过计算机获取点的坐标。 在把块一个一个的输入到坐标点。 本系统采用的是第二种方法,第二种比第一种和第三种方法易于实现,代码简单,效率快速。 5 详细设计(1)在AutoCAD2004中,打开[VBA管理器]对话框,创建一个新工程,保存在适当的位置。 在VBA集成开发环境中,选择[插入/模块]菜单项,在工程中添加一个标准模块。 : 插入模块 (2)选择[插入/用户窗体]菜单项,在程序中添加一个窗体UserForm1,标示为“基于AutoCAD文字沿曲线自动生成器”,在窗体UserForm1放入一个较大的TextBox,在里面写入“在这里输入你要进行曲线排列的文字。 ” ,然后放入一个Frame1标示为选择条件,在选择条件Frame1框内依次放入3个Label,从上到下从左到右分别标示为字号、子体、文字对齐方式,与 3个Label依次对应放入1个 TextBox和2个ComboBox,再放入二个OptionButton。 用于设置文字的字体,文字的高度,文字在曲线的位置。 二个OptionButton用于选择文字是沿水平对齐还是择。 最后添加二个CommandButton,用于选择曲线并生成文字,还有一个用于退出生成器。 : 原始窗体(3)创建模块,输入代码。 (4)在确定按钮中添加用于文字沿曲线生成器的代码(5)创建下拉菜单和快捷菜单6 VBA编程及测试 编程思路输入文字到到窗口处,在选择文字的字体,高度,排列方式。 把输入的文字的第一个字做成一个块,在通过autoCAD的定数等分命令,选择曲线,使块沿曲线排列,在把文字图块砸开成为文字对象,然后逐个修改文字。 窗体运行示例图具体窗体的运行有如下几种情况,可以实现以下几种情况的曲线文字。 在AutoCAD随意画几条曲线,: AutoCAD窗口在AutoCAD中运行文字沿曲线生成器,: 运行窗体文字沿曲线生成器,主要可以输入文字的高度、字体和曲线的排列上的有文字沿水平对齐和文字沿曲线对齐选择,在文字对齐法式中可以选择文字在点左边,右边还是中间和选择文字在曲线的上面或者曲线上或者曲线的下面,文字在点左边,右边还是中间。 下面运行六种实例:第一种实例:选择文字沿曲线对齐,文字对齐方式为居左居下,: 生成曲线文字第二种实例:选择文字沿曲线对齐,文字对齐方式为居左居中,: 生成曲线文字第三种实例:选择文字沿曲线对齐,文字对齐方式为居左居上,: 生成曲线文字第四种实例:选择文字沿水平对齐,文字对齐方式为居左居下,: 生成曲线文字第五种实例:选择文字沿水平对齐,文字对齐方式为居左居中,:第六种实例:选择文字沿水平对齐,文字对齐方式为居左居上,: 生成曲线文字 编程思路 窗体程序源代码Private Sub AcadDocument_EndCommand(ByVal CommandName As String)On Error GoTo errhand‘定义文本文字,定义块Dim Blk1 As AcadBlockReference, BlkCol As Collection, Mt As AcadMTextSet BlkCol = New Collection‘把第一个文字做成块,在做文字个数的块,在循环把所有输入的文字做一个一个的放入块中i = 1If CommandMsg = SplineTXT And CommandName VBARUN Then 39。 MsgBox CommandName For j = 0 To 1 bl = (j).ObjectName If bl = AcDbBlockReference Then Set Blk1 = (j) If LCase() = splinetxt Then ( 1).TextString = {\f amp。 amp。 |b0|i0|c134|p2。 amp。 Mid(, i, 1) amp。 } i = i + 1 Blk1 End If End If Next CommandMsg = For j = 1 To ‘删除块 BlkCol(j).DeleteNext39。 删除文字块(SplineTXT).DeleteEnd Iferrhand:‘判断文字个数,如果文字个数等于0就出现错误If 0 Then Resume NextEnd IfEnd Sub‘加载模块SplineTxTPrivate Sub CommandButton1_Click()SplineTXTEnd Sub‘关闭窗体,退出程序Private Sub CommandButton2_Click()Unload MeEnd SubPrivate Sub TextBox1_Change()End SubPrivate Sub TextBox3_Change() = TrueEnd Sub‘输入文字对齐的方式的种类Private Sub UserForm_Initialize()Dim hWnd1 As LongWith ComboBox2 .AddItem 居左居上 .AddItem 居中居上 .AddItem 居右居上 .AddItem 居左居中 .AddItem 居中居中 .AddItem 居右居中 .AddItem 居左居下 .AddItem 居中居下 .AddItem 居右居下End With Dim hDC As Long hWnd1 = FindWindow(ThunderXFrame, ) EnumFontFamilies GetDC(hWnd1), vbNullString, AddressOf EnumFontFamProc, ByVal 0amp。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。