CADVBA代码Word格式.docx
- 文档编号:1172584
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:11
- 大小:19.25KB
CADVBA代码Word格式.docx
《CADVBA代码Word格式.docx》由会员分享,可在线阅读,更多相关《CADVBA代码Word格式.docx(11页珍藏版)》请在冰点文库上搜索。
1.VBA写的宏,可否编译成象ARX一样的程序,经加载后,在命令行打入命令后就可运行
2.VB中可以生成可执行文件,而在VBA中却不行
5.有时文字是从别的图中复制-粘贴的,如果不打破的话,能否直接得到文字内容.
8
GetSubEntity方法
6.想必河伯对Excel/ActiveX有研究,能否请教如何获得Excel文件最后一行的信息?
可以用CurrentRegion属性计算最后一行
7.如何调用vba命令对多义线进行fit(拟合)处理
9
8.块属性值编辑
9.如何用程序控制对象捕捉
10
10.如何从VBA到VB?
11.IntersectWith方法
12.绘制多边形并显示多边形顶点坐标
13.PrivateSubAcadDocument_BeginDoubleClick(ByValpPointAsVariant)
11
14.现有Handpoint=acadApp.ActiveDocument.Utility.GetPoint(,"
请输入套料的插入点"
)
12
希望用户在捕捉点或输入点坐标动作时,如何避免用户因其他操作如缩放、PAN引起的系统报错
15.在VBA中如何传送一个参数给Vlisp?
17.我想知道vb中的那个函数或者对象的方法可以代替在cad中按esc键取消命令
18点击菜单项就在该菜单上打对号是怎么实现的?
13
20请问版主,如何实时获得当前光标的X,y,z坐标值,如同状态栏上显示坐标值
21可以设置图块中的块属性值,如内
22我的选择集中有Block和PLine,我想能使用该函数
14
23我的机器里装有cad14和cad2000,用vb写了一个程序调用cad,如何让程序每次都调用cad2000呢?
24我只是想判断一下
25SendCommand"
_Line"
没有返回值,怎么知道是否添加了line
15
26为什么修改文字的对方正式后辩证文字会移回到零点?
27删除块前,应先删除块的引用,怎样查找块的引用?
(VBA)
28使用ADO的方法如何存取ACCESS数据库?
30如何将类似"
.5"
数值改为"
0.5"
显示
16
31请问,如何将图上所有的数字(成千上万个数值)减去同一个常数?
17
34把选择的对象放大几倍,VBA怎么实现?
20
35怎样提取图形的视图左下角、右上角和图形左下角,右上角的坐标?
1.
怎么查找某一个group是否存在?
-
21
3.在编程中,我遇到以下问题:
5.Sheets("
检测报告"
).Select
22
6.请问如何让form.hide后form.show时能保持form先前移动后的位置?
9怎样计算一个多边形的中心点?
23
10如何返回在命令行中输入的字符,是指在没有按下回车和空格下
24
11当我插入块时,鼠标的click_point为两个图块的公共插入点,即同时插入两个块
12如何把168.235642度分解成度,分,秒?
我没有办法判别小数点?
13.请问在VBA中怎么使一个选择集只选中模型空间中可见图元?
25
14.windows安装了几个打印机,如何用vb指定打印机。
谢谢
26
16请教,VBA中的下拉列表控件的数据是怎么和数据库内的数据邦定的?
我查了好些东东都不能搞定,那位仁兄可以相告,谢谢。
17请问高手,在VB中如何将如0.00000053的数字,变成形如5.3E-7字样的科学记数法
27
18.在vba中有IsNumberic()函数检测变量是不是数值,但我需要一个能检验
所输的变量是不是字符charactor的函数,或能实现此功能的办法.
19在ADDMText中,换行符\p怎么使用啊?
20请大家帮我解一个数学问题
22.如何得到ObjectDBX及其帮助?
28
24.哪位大侠知道,怎么取得任意图形的中心点坐标!
25测量坐标与屏幕坐标的转换
26VBA回车响应的问题
29
27.是根据VBA教材的代码改的批量裁剪程序
28.我用sendcommand的_trim命令,经常剪不断,怎么办?
31
29关于split()函数的问题
32
31如何在VB中开关非当前层?
34
一、基本操作
变量可以不填可不填,在前面加入optional如optionalAasstring
1、块操作
Setblocksobj=ThisDrawing.Blocks.Add(基点,块名)
1.2、把选择集加入块中的方法
ThisDrawing.CopyObjects(选择集,块)
ThisDrawing.ModelSpace.InsertBlock(插入点,块名,X轴比例,Y轴比例,Z轴比例,旋转角度)
1.4、画块属性方法
ThisDrawing.ModelSpace.AddAttribute(文字高度,模式,提示字符,插入点,显示字符,默认值)
一共有五种模式,在输入时会有提示,其中最常用的是“acAttributeModeNormal”普通模式
1.定义一个空块
2.在块中画一段弧(球服衣领)
3.画多段线,镜像画出球衣
4.画块属性,由于块属性默认的对齐方式是左对齐,而球员号码应该居中,所以必须把块的对齐属性改为居中。
但是当这个属性更改时块属性对齐点会自动归零,所以不得不再次更改对齐点属性
5.把多段线和属性复制到块中
6.提示用户点选球员位置和姓名
7.插入块,修改球衣号码属性、球员姓名属性
Subteam()
DimplayerlayAsAcadLayer'
定义球员图层
DimplayerblockAsAcadBlock'
定义块变量
Dimarcc(0To2)AsDouble'
圆弧圆心
DimLinep1(0To2)AsDouble'
线条端点1
Dimlinep2(0To2)AsDouble'
线条端点2
Dimpline(0To20)AsDouble'
定义队服右侧多段线7个顶点
Dimbasep(0To2)AsDouble'
块基点
Dimplayernumberpoint(0To2)AsDouble'
块属性插入点
DimmytxtAsAcadTextStyle'
定义mytxt变量为文本样式
DimblockRefAsAcadBlockReference'
定义块属性变量
DimAttr3AsVariant'
插入块属性变量
Setplayerblock=ThisDrawing.Blocks.Add(basep,"
球员"
)'
定义一个"
的块
arcc(0)=0
arcc
(1)=430
Callplayerblock.AddArc(arcc,50,ThisDrawing.Utility.AngleToReal(180,0),0)'
画弧并加入块中
pLine(0)=0
pline
(1)=20
pline(3)=100
pline(4)=20
pline(6)=100
pline(7)=250
pline(9)=125
pline(10)=207
pline(12)=212
pline(13)=257
pline(15)=112
pline(16)=430
pline(18)=50
pline(19)=430
Setline1=ThisDrawing.ModelSpace.AddPolyline(pline)'
画队服右侧多段线
linep2
(1)=1'
镜像轴第二点位于Y轴上任一点
Setline2=line1.Mirror(linep1,linep2)'
镜像获得另一半多段线
Dimp(0To2)AsDouble'
定义坐标变量
Setmytxt=ThisDrawing.TextStyles.Add("
mytxt"
添加mytxt样式
mytxt.fontFile="
c:
\windows\fonts\simfang.ttf"
'
设置字体文件为仿宋体
ThisDrawing.ActiveTextStyle=mytxt'
将当前文字样式设置为mytxt
playernumberpoint(0)=0'
块属性位置
playernumberpoint
(1)=200
Setattr1=ThisDrawing.ModelSpace.AddAttribute(100,acAttributeModeNormal,"
号码"
playernumberpoint,"
X"
0)'
画块属性
attr1.Alignment=7'
居中
attr1.TextAlignmentPoint=playernumberpoint'
重定义对齐点
Setattr2=ThisDrawing.ModelSpace.AddAttribute(100,acAttributeModeNormal,"
姓名"
?
"
attr2.Alignment=7'
DimobjCollection(0To3)AsObject'
创建选择集
SetobjCollection(0)=Line1'
线条1加入选择集
SetobjCollection
(1)=line2'
线条2加入选择集
SetobjCollection
(2)=attr1'
属性1加入选择集
SetobjCollection(3)=attr2'
属性2加入选择集
CallThisDrawing.CopyObjects(objCollection,playerblock)'
把选择集加入块中
ForEachelementInobjCollection'
在选择集中进行循环
element.Delete'
删除线条和属性(此操作并不影响已创建的块)
Next
Setplayerlay=ThisDrawing.Layers.Add("
新建图层
playerlay.color=2'
为黄色
ThisDrawing.ActiveLayer=playerlay'
将当前图层设置为球员图层;
Dimp1AsVariant'
块插入点位置
Fori=1To11'
插入块
pstring=CStr(i)&
"
号球员位置:
p1=ThisDrawing.Utility.GetPoint(,pstring)'
点选球员位置坐标
nstring=ThisDrawing.Utility.GetString(30,"
球员姓名:
)
SetblockRef=ThisDrawing.ModelSpace.InsertBlock(p1,"
1,1,1,0)'
Attr3=blockRef.GetAttributes'
获取块属性
Attr3(0).TextString=CStr(i)'
赋值球员号码
Attr3
(1).TextString=nstring'
赋值球员姓名
Next-
EndSub
SetmBlock=ThisDrawing.Blocks.Add(insertPt,tmpName),其中mBlock是AcadBlock对象,insertPt是插入点的坐标(相对与块),tmpName是块的名称。
块和块的实例是两个概念。
块只能有一个,但是这个块的实例却可以有很多个。
使用上述方法得到的是块,而不是块的实例。
你能够在CAD菜单栏“插入-块”所打开的对话框中看到名字为tmpName的块,但是CAD图形中并没有块的图形。
CallThisDrawing.ModelSpace.InsertBlock(Text_P,"
图框B"
1,1,1,0)
'
(座标,X轴扩,Y轴扩,Z轴扩,旋转)
插入块。
(单段线)
Set
ln
=
ThisDrawing.ModelSpace.AddLine(startPt(),
EndPt())
3、画多段线
Dimp(0To49)AsDouble'
定义点坐标
Setmyl=ThisDrawing.ModelSpace.AddLightWeightPolyline(p)'
画多段线
myl.Color=co'
设置颜色属性
myl.ConstantWidth=2'
设置多段线宽度属性
3.1、修改出线点的位置
SetLine2=Line1.Mirror(CC_XYZ,CC_Mir_XYZ)'
交叉线2镜像
修改出线点的位置
a=Line2.Coordinates
a
(1)=a
(1)-(Phase_Number-1-i)*Spacing
Line2.Coordinates=a
4、画圆
拓展程序(将上述画圆的程序拓展为每画一个圆设定为一种颜色)
Subc100()
Dimcc(0To2)AsDouble'
声明坐标变量
cc(0)=1000'
定义圆心座标
cc
(1)=1000
cc
(2)=0
DimmylAsObject'
定义引用曲线对象变量
co=15'
定义颜色
Fori=1To1000Step10'
开始循环
Setmyl=ThisDrawing.ModelSpace.AddCircle(cc,i*10)'
画圆,cc数组为圆心X、Y、Z值
myl.color=co'
co=co+1'
改变颜色,供下次定义曲线颜色
Nexti
5、获取鼠标指定的坐标点
ThisDrawing.Utility.GetPoint(,"
输入点:
获取点坐标
6、旋转
NewFilterEnt.Rotate
PT,
JiaoDu
更新对象
PT(基点)对你
JiaoDu孤度
NewFilterEnt.Update
文字旋转
SetMy_Text=ThisDrawing.ModelSpace.AddText(Text,Text_XYZ,Text_Hegin)
My_Text.Alignment=acAlignmentCenter
中心对齐文字acAlignmentMiddleCenter
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CADVBA 代码