QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 4305|回复: 16
收起左侧

[已解决] 自动定坐标的出现问题了。

[复制链接]
发表于 2008-12-31 13:07:33 | 显示全部楼层 |阅读模式 来自: 中国山东烟台

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
我自己写的VB定义坐标,Z轴差了0。3呀,还望会VB的各位帮帮忙呀。不胜感激。 未命名.JPG - O' p, X* R, O( q( u4 \

% q( m  I1 e4 d$ s  x: Q  w3 x( z6 l  {  J9 n4 `2 \4 k! d/ F  @: i
我是这样写的。
! y5 K$ ?( j7 V" y' q: t! M/ i7 {8 \0 q* ]
Dim XMAX, XMIN, YMAX, YMIN, ZMAX As Long% B4 g' @; V0 [+ h4 c
/ s; `: {% z* a$ [9 A5 `2 D
PowerMILL31.Connect1 w7 B* |/ ?. x( e

. T3 u" n" t3 W" R" y; Q& IPowerMILL31.Execute ("Form BLOCK")
8 i6 ~, K* r6 t0 W# P+ H' i# `) e+ [5 @+ l2 F$ F3 O4 n
PowerMILL31.Execute ("EDIT BLOCK ALL UNLOCK")' m  V/ X8 ]$ S1 I4 R9 i( r( w
. n4 ~, \* s  z5 q
PowerMILL31.Execute ("EDIT BLOCK TOLERANCE 0.1")
, f, S- [5 _* J- g- o5 j
( j# J/ }1 x; M' VPowerMILL31.Execute ("EDIT BLOCK RESETLIMIT 0.")
( h/ l+ M$ R" g; F- H' L! O( j' K
/ j1 f6 C3 N2 [4 f* R7 tPowerMILL31.Execute ("EDIT BLOCK RESET")# A" b. i, S& I$ B2 ]

! ]/ ^6 ]0 ~& ]3 x( iPowerMILL31.Execute ("BLOCK ACCEPT")2 ?! [/ O- a$ l+ b6 \( _5 G

+ U1 n$ Z) s% l1 _+ n( f" ~% d2 HZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")# c+ I$ S) x; e  p: E$ n) \

" N, F2 G+ z2 H# S7 M! v$ vXMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxX")
7 Z$ Y: Q5 M' O) l- u, X6 e5 v
; l, v! A# h1 s7 s- yXMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinX")
% z5 w# k+ @3 |! u% A* ?% }5 H3 J/ m' j8 ~
YMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxY")0 N) E( L6 W4 H$ F

) S7 ~# G# ?7 S4 o* fYMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinY")
* r1 X3 q5 _, n* v5 }: y6 x
9 ^2 o& O/ n' v0 S+ f7 i( ^PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))+ C' [7 q9 Q: G, Q) u% e& C! {

! r' n9 y. H3 J9 o- RPowerMILL31.Disconnect
4 b& c% ~% F5 O" I" O! B9 }
3 W& A0 B, p; [7 `% w/ _6 ?End Sub
: ]  {0 W8 l6 n7 K- u, U# T, v4 k  U: G* E* ?3 D# W" ?$ v
Private Sub Form_Load()0 P. x' R$ A& l3 T" }
3 K5 r4 c+ l2 V# l
PowerMILL31.Connect psStartPowerMILL
- P; K- r( P6 G' j
' Q! z  x9 k! d( c+ E, K/ K: t* aEnd Sub
发表于 2009-1-1 11:02:59 | 显示全部楼层 来自: 中国浙江杭州
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))8 w) K) U" n9 B7 h) O. ~' g, x( c0 W
7 A4 e' ]3 r1 ]3 W& n1 f9 ~
& y$ r- q: C  {/ |5 E6 Y
这个不是自动建立坐标的命令啊$ g5 P- J! `; `2 w' A" _( y

+ u$ Y5 w  q+ c( ~4 h1 r' f- {
1 z+ h+ T$ |+ x. V要使用CREATE WORKPLANE命令,然后再对个轴坐标赋值
 楼主| 发表于 2009-1-1 11:22:08 | 显示全部楼层 来自: 中国山东烟台
你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界坐标居中,如果建立了用户坐标,就自动把用户坐标居中,而世界坐标不变。我该用哪个命令呀。谢谢。
 楼主| 发表于 2009-1-1 17:28:07 | 显示全部楼层 来自: 中国山东烟台
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点powermill的时候,坐标器还显示在powermill的窗体上,我该如何做。VB学的不太好,还请各位多多帮忙。不胜感激。
发表于 2009-1-1 21:43:11 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 11:22 发表 http://www.3dportal.cn/discuz/images/common/back.gif
0 ^( @! ^/ r2 ~* A) |* h你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界 ...
2 t7 S" X( N4 l8 z% V

$ o' Y! v) u2 S5 y& l( W+ [6 o5 x. R: E7 E" Y. E+ M
这个功能JIM会,你问他
发表于 2009-1-1 21:43:50 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif
- l" P5 I1 U* D; W  L还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...
& W% T4 T8 o% d/ ~, u- j# B
) k/ o/ Q( T6 u0 F

" L9 ]& Y; E( {+ e1 w5 O0 f5 p+ _  X# Y7 C6 E) P' x
这种情况,我没碰到过
发表于 2009-1-2 07:29:00 | 显示全部楼层 来自: 中国广东深圳
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif2 j+ S4 m9 M" Y
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

" `4 c# K' ]. S4 U# G+ v$ h! `兄弟要的应该是“窗口总在最前端”的代码,论坛上我记的吉米好像发过,你找下,然后加进去试试
 楼主| 发表于 2009-1-2 18:12:03 | 显示全部楼层 来自: 中国山东烟台
我的意思就是窗口总在最前端。谢谢老刘同志的提醒。
发表于 2009-1-3 08:48:52 | 显示全部楼层 来自: 中国浙江杭州
dcam_window_ontop hwnd7 m( [3 v0 C7 p( r' d, _  o

( S6 @* z2 j! `! L7 @" h; Z: G  A. ]) W) \. p4 _7 H* d
模组编程中,用我上面这个代码就可以实现窗体总在最前面(放在定时器事件下)! e# W; D4 a7 d4 z  x: Z& q

2 y$ W. J4 N9 |) }5 X" v5 M9 u4 Q- @9 g; ^$ g0 ?/ e+ _8 n; a* u
模组代码如下8 ^, x/ R) u& L
Public Sub dcam_window_ontop( hwnd As Long )
) L) \* @+ Z' @' e' ]+ v  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
  O/ R% G9 I. nEnd Sub
. ~" c( I) k: o8 I8 P1 f* A' V/ r. B0 O* L  O, Y, B4 R
[ 本帖最后由 hh749 于 2009-1-3 08:52 编辑 ]
 楼主| 发表于 2009-1-4 10:23:51 | 显示全部楼层 来自: 中国山东烟台
谢谢老大。。。
 楼主| 发表于 2009-1-4 17:05:09 | 显示全部楼层 来自: 中国山东烟台
我把Z轴设在最高点。是这样编的,可是移不到位呀。。还请帮助解决。) m. H. B8 k8 }) s( C. W+ S

" ]6 P# l( a/ E, ]Dim ZMAX As Long
$ Q" M+ Z9 A7 M2 i% d0 p9 k+ CPowerMILL31.Connect
5 b3 z; m; b% u6 n; U0 D$ P" JZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ"), D4 Q+ t- w+ l2 U
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEZ   " + CStr(-ZMAX))- w( f5 _6 D% z( ^/ D. G4 f
PowerMILL31.Execute ("TRANSFORM MODEL ALL")* J; s% A/ O( U; d# z9 s
PowerMILL31.Disconnect
, A  Q, g6 Y- D" r( C' ?5 [* x: B5 j6 e
Z轴不在最高点呀,有时候还高出最高点。是什么原因,是不是因为long是长整形数值呀。。。
 楼主| 发表于 2009-1-4 18:54:33 | 显示全部楼层 来自: 中国山东烟台
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。# [) [1 p+ t, _- U
' [! K. W: M; C/ H
还请问老大,怎样模组编程呀。
发表于 2009-1-4 20:36:00 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-4 18:54 发表 http://www.3dportal.cn/discuz/images/common/back.gif
3 w9 R5 _' f7 j5 g0 N* `8 ~7 qZ轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。
0 T  _) p2 _/ f! l5 y4 T
3 d( S' _8 U; s7 D' F还请问老大,怎样模组编程呀。

7 k% J0 T' f4 J; V* ^  m( L1 Q( z5 p% e8 {
7 ~$ @1 V5 A* K# Y

$ q& Z# i+ }" a# I% Q% l模组编程请看本版快教程
$ k) F" D$ S; K3 h: zPowerMILL二次开发 高级篇(一) 摆脱PowerSolutionOLE.ocx的噩梦
, E4 e  M) M2 k4 g. y" @) W. l4 ^5 H3 |9 Z8 c' Y3 d5 E
这里是讲模组编程的,如果你不知道模组,那我建议你再去好好学习下VB编程了
发表于 2010-6-19 04:22:29 | 显示全部楼层 来自: 中国广东深圳
整长是四舍五入的,最好不要用,要是遇到镶件是小数的,可能移不到中心。你这个代码最好在后面加个判断如果Y方向大于X方向。那么工件沿Z轴转90度
发表于 2010-6-19 05:06:25 | 显示全部楼层 来自: 中国广东江门
这个不是自动建立坐标的命令啊
发表于 2010-6-21 12:40:39 | 显示全部楼层 来自: 中国海南海口
把long改为Single就行了。就是整和小的问题了。。
发表于 2010-6-22 00:50:22 | 显示全部楼层 来自: 中国广东深圳
呵呵,以前学着看王大师的代码时,就发现这个问题了,铜公长宽一般都是整数还好,高度不是整数就出问题了
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表