iCAx开思工具箱

标题: 基于VB的SW二次开发,从txt中输入点 [打印本页]

作者: pinkfly    时间: 2008-4-6 14:14
标题: 基于VB的SW二次开发,从txt中输入点
我要从txt中读取点云数据的三维坐标值,并输入到SolidWorks中绘成点,
其中txt格式为多行,每行三个数字值,分别表示x,y和z坐标;
比如text3的内容如下(共12行):
33.4391 -13.80677 -18.66343
33.1812 -13.80677 -18.89947
32.71694 -13.80677 -19.27025
32.47022 -13.80677 -19.45361
32.22339 -13.80677 -19.63
31.97611 -13.80677 -19.78291
31.72859 -13.80677 -19.9218
31.48109 -13.80677 -20.06222
31.23331 -13.80677 -20.18699
30.98543 -13.80677 -20.30678
30.73736 -13.80677 -20.41619
30.48906 -13.80677 -20.51301
作者: pinkfly    时间: 2008-4-6 14:19
我vb的编程是这样的:
Dim swApp As Object
Dim filename As Variant
Dim Part As Object

Sub main()

   Dim textline As Variant
   Set swApp = Application.SldWorks
   Set Part = swApp.ActiveDoc
   
   Dim x As Double
   Dim y As Double
   Dim z As Double
  
  '读取txt数据,并进入绘图模式
    Open "F:\study\sw-ercikaifa\test\test3.txt" For Input As #1
Part.InsertSketch2 True
'逐行得出字符串格式,分割行数据,拆分成三个数字
Do While Not EOF(1)
  Line Input #1, textline
    Dim point As Variant
    point = Split(textline, " ")
    x = Val(point(0)) / 1000
    y = Val(point(1)) / 1000
    z = Val(point(2)) / 1000
    Part.CreatePoint2 x, y, z
    Part.ClearSelection2 True
    Part.SetPickMode
Loop
Close #1
End Sub

运行时发现,最终只绘出5个点而不是12个点!
不知道出了什么问题。
小弟是个vb新手,调试时发现x,y,z的值实时也发生了变化;
但sw环境中却会出现跳一行才绘点的情况(即每两行只绘一个点),
为什么会出现漏点的情况呢?费解呀,亲娘来......
作者: pinkfly    时间: 2008-4-7 13:34
补充一下:
今天上午我换了一台电脑调试,
却发现可以实现,
回来后用自己机器却还是错误(漏点),
同一段代码,为什么在两台机器上会运行出不同的结果?
作者: pinkfly    时间: 2008-4-11 19:54
怎么没人回我呢?
我今天好像找到了个解决的办法,将
insertsketch2 true 改为insert3DSketch,问题暂时就没有了。
不知道以后还会不会出现这个问题。




欢迎光临 iCAx开思工具箱 (https://t.icax.org/) Powered by Discuz! X3.3