用三维绘图软件画完一个图形,保存成stl文件(ASCII格式的),如何在vb中把它导入进去呢?现在只是先把它读进去,使之每个x y z坐标都保存起来。

解决方案 »

  1.   

    弄3D图形通常是使用 3D 引擎,而 3D 引擎可以选择自己开发的和现成的。
    如果开发者对平面图形技术以及矢量处理技术都比较了解,同时对三维图形
    的投影、反射、贴图等理念都有比较深刻的理解,可以选择自行开发自己的
    3D 引擎作为处理对象,但因为这种图形运算要求运算效率,就VB来说,虽
    然可以很好的将其效果表现出来,但是在速度上还是远不如VC开发的东西,
    所以如果要自己写引擎,建议使用VC作为开发工具来写比较合适。至于这方面
    的技术,可以参考一下《Visual Basic 高级图形程序设计教程》一书,
    里面从基本的平面图形到矢量图形到三维图形技术都有很多说明。
    但如果选择现成的 3D 引擎,比较常见的是使用 Direct3D 和 OpenGL 作为
    程序的 3D 引擎,对于这种引擎的使用来说,可以直接下载他们的 SDK 来看,
    里面也有很多范例。就 Direct3D 加载用 3D 软件处理好的模型,可以使用
    SDK中的一个小程序转换成 .X 文件,按照 SDK 中的范例加载这个 .X 文件
    就可以了,当然,玩到熟悉以后,知道如何在 D3D 中自己建模、贴图、设置
    光源等等后,完全可以将其场景的信息保存成自己自定义的格式来处理,甚至
    可以自己写出 3D MAX 这样的程序,不过这都是要对 D3D 有一定了解后的事
    了,开始还是用 SDK 中现成的方法比较快捷方便。至于制作 .x 文件,在早
    先的 3D Max 5 的时候有插件,可以直接在 3D Max 5 中直接通过插件生成
    .x 文件,你可以到网上搜索一下应该能找到不少有关这方面的东西。
      

  2.   

    本来是画一个三维图用SolidWorks,保存成stl文件(ASCII格式),然后导入到vb中,利用OpenGL,在vb中显示出来。我做的工作先是把stl文件导入到vb中。
      

  3.   

    你是想把你所说得stl文件数据放到VB程序的资源里,
    然后不用读取文件直接从资源加载数据吧。
    如果是这样,你可以在VB的“外接程序”菜单中选择“外接程序管理器”菜单项,
    会弹出“外接程序管理器”窗口,然后选择“VB 6 资源管理器”项,然后将
    “在启动中加载”和“加载/卸载”的复选框设置为选择状态,然后确定
    这时,你会看到外接程序菜单下面多了一个像注册表一样的绿色方块图标按钮,
    这就是“VB资源管理器”,你点击一下这个按钮就可以调出“VB资源管理器”。
    然后点击“添加自定义资源”按钮,然后将你的文件选入其中,然后保存资源
    文件,这样你的资源就会跟随程序一起编译了。
    程序要使用资源数据时,可以通过LoadResData来调用出资源数据Dim FileByte() As Byte
    FileByte = LoadResData(101, "CUSTOM")这样资源就被读入到FileByte字节数组中了,如果你的是文本信息,
    也可以通过 StrConv 将字节数组转换为字符串来处理,如MsgBox StrConv(FileByte,vbUnicode)
      

  4.   

    这个stl文件是有SolidWorks绘图软件画完图保存的。文件里保存的都是一些点的坐标,和三角形的法向量。现在的问题是想吧里面的点的坐标读到vb中,以供OpenGL来画出图形。