- 积分
- 529
- 明经币
- 个
- 注册时间
- 2003-10-19
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 作者 于 2004-2-6 15:11:22 编辑
首先感谢明经通道及各位网友! 我刚接触AutoCAD vba ,在做一个工程辅助设计的课题,拜读了站长及斑竹的大作(《精彩实例》),比着葫芦画瓢解决了许多实际问题, 尽管我在数据结构、程序设计方面也不是很精通,还是给了我很大信心,感谢! 由于时间紧迫,碰到一些问题来不及自己仔细琢磨,请教大家指点迷津,少走点弯路,先行谢过各位! [U]问题1、[/U]一组给出高程值的等高线(polyline,lwpolyline)如何生成一个剖切平面,以求该平面与该组等高线的交点? 怎样生成象xline那样的一个无限伸长的平面并且可以得到与polyline,lwpolyline相交的点图元?我试过addsolid ,add3dsolid,add3dface... 好象都不行呀。我的做法是建立选集把所有等高线的高程值设为0#,得到一系列点,然后以各点做垂直与xy平面的ray或xline,再与恢复高程值的 polyline,lwpolyline求交点,大家有更好的方法么? [U]问题2、[/U]请参阅以下代码:
’dgxselectionset是一个选集用来选取作为分析对象的等高线 ’dgxselect 是选集中的各条等高线 ’pmzkd 是各条等高线与一个生成的直线的交点阵列
While count1 > 0 ‘选取等高线选集中的各条等高线 Set dgxselect = dgxselectionset.Item(count1 - 1) Dim pmxkzd As Variant ’求得各条等高线与 pqx的交点 pmxkzd = dgxselect.IntersectWith(pqx, acExtendNone) Dim w As Integer Dim y As Integer Dim str As String y = 0 If VarType(pmxkzd) <> vbEmpty Then For w = LBound(pmxkzd) To UBound(pmxkzd)
str = "交点[" & z & "]的坐标为:" & pmxkzd(y) & "," & pmxkzd(y + 1) & "," & pmxkzd(y + 2) Dim pqpt() As AcadPoint Dim pmxpt(2) As Double pmxpt(0) = pmxkzd(y) pmxpt(1) = pmxkzd(y + 1) pmxpt(2) = pmxkzd(y + 2) ReDim pqpt(z) ‘生成数组存储交点 Set pqpt(z) = ThisDrawing.ModelSpace.AddPoint(pmxpt) pqpt(z).Color = acWhite pqpt(z).Update MsgBox str y = y + 3 w = w + 2 z = z + 1 Next End If dgxselect.Color = acBlue count1 = count1 - 1 Wend
dgxselectionset.Delete
[U]我的问题是:[/U]a,跳出循环后我如何取得程序中获得的所有的交点?(一般我能得到六、七十个交点,可是只能访问最后一个点,请大家帮我修改一下循环内部或其他处的程序) b,用什么方法复制这些点,并“粘贴”到另外一个dwg 图形中?copyobjects方法?还是用选集?还是建立组,用appenditems方法?还是建立块,用addpoint方法?哪个更合理?
[U]问题3、[/U]已知一系列点,如何根据他们及其他一些约束用插值、拟合的方法生成一定长度的一系列线段?大家有没有autocad vba相关的算法,程序代码提供一下? [U]问题4、[/U]用vba的程序代码怎样实现:新建一图形,在其上建立x、y坐标轴,并在坐标轴上标注类似刻度的尺度标注,是不是用addleader方法? [U]问题5、[/U]俯视图,左视图,西南等轴观测图等三维视图的viewport坐标值分别是多少? [U]问题6、[/U]我想建立access数据库与autocad连接,用datagrid、MHFlexgrid等控件显示数据,adodc控件控制,能否实现? [U]问题7、[/U]哪位顺便通俗地解释一下句柄,字典(dictionary),扩展数据xdata都是干什么用的? [U]问题8、[/U]在一曲线上(polyline,lwpolyline,spline)如何做任意一点的垂线,切线? 大家若有相关代码提供,不胜感激!谨领大家高见!
[glow=255,red,2]文字[/glow] |
|