[求助] up!!!!请VBA高手帮我看看这个程序该怎样修改
本帖最后由 作者 于 2003-1-13 18:42:56 编辑我想刀具能连续切削,却不能继续下去。烦请高手帮我看看
up
明总又忙哪儿去啦???再帮我一下!
问题出在这里
axispt(0) = daoju3d.Centroid(0) + 10axispt(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了。
明总:那该怎样修改呢??告诉我好吗?
明总:那该怎样修改呢??告诉我好吗?其实你取质心也只是为了在移动对象时有一个参考点,任取一个参考点就是了
速度慢是在获取复杂对象的质心时非常慢。所以用质心做为参考点是不可取的。
你可把0点(原点)做为参考点,然后在移动对象时注意参考点也要随着移动。
这样你应该可以开始改程序吧,如还不清楚,到时我再把改过的程序贴上来。
感谢明总,改过以后速度是快啦许多!不过。。。。。
不过我还有另外一层意思,就是我想刀具切削加工的时候能如同真实情况一样工作,即刀具碰到的齿轮胚才能切削,未遇到的就不切削,可是原程序却和实际差别太大。我修改时无法确定刀具每次旋转以后的实体位置(用中心点不行,因为旋转不影响中心点),这就影响到布尔运算啦。还望明总再次帮忙!
我将我已改过的程序上传。
如想按真实情况,则这样改
For k = 2 * height To -2 * height Step -height / 2pointa(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
嘿嘿!明总这样改法有点瞒天过海的味道,呵呵!
改完后的程序:刀具加工齿轮胚最终还是要chilun.Boolean acSubtraction, daojucopy ,就不能是一刀一刀的切割下来吗??不用这句chilun.Boolean acSubtraction, daojucopy的话,程序用该怎样修改呢?
不过话说回来!明总毕竟是总版主,这样修改我也非常感谢。如能再进一步修正,那对明总更是如滔滔江水一样景仰!呵呵
程序加粗的部分就是一刀刀切下来的
由于你的刀带槽,所以一刀一刀切过之后不太象齿轮槽,所以最后再来一道。如果真的要仿真的话,则必须建立一个专用于的虚拟切刀,用于差集计算,而看得见的刀只是用于形象。这两个刀同时移动,形象刀带旋转,而虚拟刀不旋转,差集计算时用虚拟刀来计算。这样就可以仿真了。
页:
[1]
2