该怎么办呢难哦 发表于 2003-1-13 18:42:00

[求助] up!!!!请VBA高手帮我看看这个程序该怎样修改

本帖最后由 作者 于 2003-1-13 18:42:56 编辑

我想刀具能连续切削,却不能继续下去。烦请高手帮我看看

该怎么办呢难哦 发表于 2003-1-14 17:35:00

up

该怎么办呢难哦 发表于 2003-1-15 13:07:00

明总又忙哪儿去啦???再帮我一下!

mccad 发表于 2003-1-16 14:15:00

问题出在这里

axispt(0) = daoju3d.Centroid(0) + 10
axispt(1) = daoju3d.Centroid(1)
axispt(2) = daoju3d.Centroid(2)
point1(0) = daoju3d.Centroid(0)
point1(1) = daoju3d.Centroid(1)
point1(2) = daoju3d.Centroid(2) + 2 * height
问题是取Centroid的速度太慢,看了它的坐标,去到E8了。

该怎么办呢难哦 发表于 2003-1-17 00:06:00

明总:那该怎样修改呢??告诉我好吗?

明总:那该怎样修改呢??告诉我好吗?

mccad 发表于 2003-1-17 16:48:00

其实你取质心也只是为了在移动对象时有一个参考点,任取一个参考点就是了

速度慢是在获取复杂对象的质心时非常慢。
所以用质心做为参考点是不可取的。
你可把0点(原点)做为参考点,然后在移动对象时注意参考点也要随着移动。
这样你应该可以开始改程序吧,如还不清楚,到时我再把改过的程序贴上来。

该怎么办呢难哦 发表于 2003-1-18 11:57:00

感谢明总,改过以后速度是快啦许多!不过。。。。。

不过我还有另外一层意思,就是我想刀具切削加工的时候能如同真实情况一样工作,即刀具碰到的齿轮胚才能切削,未遇到的就不切削,可是原程序却和实际差别太大。我修改时无法确定刀具每次旋转以后的实体位置(用中心点不行,因为旋转不影响中心点),这就影响到布尔运算啦。
还望明总再次帮忙!
我将我已改过的程序上传。

mccad 发表于 2003-1-21 17:25:00

如想按真实情况,则这样改

For k = 2 * height To -2 * height Step -height / 2
       pointa(2) = k
       daoju3d.Move pointb, pointa
       daoju3d.Update
       bxispt(2) = pointa(2)
       pointb(2) = pointa(2)
      
       daoju3d.Rotate3D pointa, bxispt, 360 / 30 * 3.14159 / 180
       daoju3d.Update
       Set daojucopy = daoju3d.Copy
       chilun.Boolean acSubtraction, daojucopy
       chilun.Update
    Next k
   
    Set daojucopy = daojubool.Copy
    chilun.Boolean acSubtraction, daojucopy
    chilun.Update

该怎么办呢难哦 发表于 2003-1-22 23:11:00

嘿嘿!明总这样改法有点瞒天过海的味道,呵呵!

改完后的程序:刀具加工齿轮胚最终还是要chilun.Boolean acSubtraction, daojucopy ,就不能是一刀一刀的切割下来吗??不用这句chilun.Boolean acSubtraction, daojucopy
的话,程序用该怎样修改呢?
   不过话说回来!明总毕竟是总版主,这样修改我也非常感谢。如能再进一步修正,那对明总更是如滔滔江水一样景仰!呵呵

mccad 发表于 2003-1-23 09:02:00

程序加粗的部分就是一刀刀切下来的

由于你的刀带槽,所以一刀一刀切过之后不太象齿轮槽,所以最后再来一道。
如果真的要仿真的话,则必须建立一个专用于的虚拟切刀,用于差集计算,而看得见的刀只是用于形象。这两个刀同时移动,形象刀带旋转,而虚拟刀不旋转,差集计算时用虚拟刀来计算。这样就可以仿真了。
页: [1] 2
查看完整版本: [求助] up!!!!请VBA高手帮我看看这个程序该怎样修改