bbkcylh
发表于 2016-4-27 21:58:27
本帖最后由 bbkcylh 于 2016-4-27 21:59 编辑
1、你是要求取最小和最大的X、Y坐标,所以Z可以不管它。
2、要的最终坐标结果就是一个4个值:minX,maxX,minY,maxY,所以,没必要定义10000的数组,再说,要是点数超过10000呢?这种情况,即使定义,也是定义动态数组来存储更合适。
3、打开文件,然后就读取第一行数据,也就是坐标,存储到4个变量中,然后依次读取每一行数据,并与之前数据比较大小。最终得到4个数值。(怎么比较,就不用细说了吧)
4、X、Y的最大最小值有了,画格网,没啥难度了吧
馨馨
发表于 2016-4-27 22:31:06
bbkcylh 发表于 2016-4-27 21:58 static/image/common/back.gif
1、你是要求取最小和最大的X、Y坐标,所以Z可以不管它。
2、要的最终坐标结果就是一个4个值:minX,maxX,m ...
10000是随便设的,我原始数据是TXT文件里面有很多坐标,才设的
我是画网格这块不太会,我已经设置了每个格网的尺寸了,
需要定义一个循环吗,
bbkcylh
发表于 2016-4-28 05:50:29
馨馨 发表于 2016-4-27 22:31 static/image/common/back.gif
10000是随便设的,我原始数据是TXT文件里面有很多坐标,才设的
我是画网格这块不太会,我已经设置了每个 ...
画网格,可以认为就是画线。你都有X、Y的极值了,然后算出每个线的端点坐标,画线就行了。线画好了,不就有网格了么
浪迹天涯追月
发表于 2016-4-28 08:47:38
馨馨 发表于 2016-4-27 18:42 static/image/common/back.gif
这是我自己写的代码,想要做一个规则格网,不知道怎么才能画出方格,求指导
呵呵,人家是看你基础不会略着急,说那些话激励你的。有些东西得多看例子自己体会的,别人给你代码自己提高也不会太大的,遇到问题一步步调试,看看哪个环节出问题了。比如昨天的xmax ymax 你明显只是两个两个的在比较,永远取不出最大值最小值的,因为if else 基本语法错了,逻辑也错了。而AddLightWeightPolyline 这个方法看了vba帮助,你就应该知道points应该是二维坐标。对于程序来说,你给的就是六个坐标,而不是四个角点坐标。大家都很忙,也没有你的文本数据,告诉你方法了,程序得自己慢慢调试,那样提升快。加油吧,这程序压根不难。
馨馨
发表于 2016-4-28 08:50:30
浪迹天涯追月 发表于 2016-4-28 08:47 static/image/common/back.gif
呵呵,人家是看你基础不会略着急,说那些话激励你的。有些东西得多看例子自己体会的,别人给你代码自己提 ...
嗯呢,因为我也是很着急做出来,所以情绪有些低落,麻烦大家了,谢谢
vbcad
发表于 2016-4-28 11:53:47
绘制矩形的子程序是错误的,点坐标应该是二维的,不是三维的。
LightweightPolyline 对象:变体为 OCS 坐标系统的二维点数组。
Polyline 对象:变体为三维点数组, X 和 Y 坐标为 OCS 坐标系统; Z 坐标忽略。
'绘制矩形的子程序(经过验证,2006版CAD)
Sub box(x1, y1, x2, y2)
Dim plineObj As AcadLWPolyline
Dim points(0 To 7) As Double
'dim M as integer'行数
'dim N as integer '列数
' 定义多段线的点
points(0) = x1: points(1) = y1
points(2) = x2: points(3) = y1
points(4) = x2: points(5) = y2
points(6) = x1: points(7) = y2
'在模型空间中创建一个多段线对象
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
plineObj.Closed = True
End Sub
馨馨
发表于 2016-4-28 12:21:18
vbcad 发表于 2016-4-28 11:53 static/image/common/back.gif
绘制矩形的子程序是错误的,点坐标应该是二维的,不是三维的。
LightweightPolyline 对象:变体为 OCS 坐标 ...
非常谢谢,我是刚学的编程,很多不明白的地方,给你们添麻烦了
hzk611
发表于 2016-5-26 01:02:44