QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
7天前
查看: 4244|回复: 16
收起左侧

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

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

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

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

x
我自己写的VB定义坐标,Z轴差了0。3呀,还望会VB的各位帮帮忙呀。不胜感激。 未命名.JPG
; d6 k9 r& a: S# R9 c* }% `
9 ]' k9 N. Y4 {9 V# Q& S" q6 R9 Y
/ _, w! j7 \9 ]" s* ]我是这样写的。
4 N: l9 f3 c) f+ Z% w: Y, m3 P# M1 v* h  P' \6 t, x
Dim XMAX, XMIN, YMAX, YMIN, ZMAX As Long) G2 v* Q, ]+ _: s; {
2 Z( |2 k' Y0 {: t8 `+ h  N, ~
PowerMILL31.Connect
" A) i$ V2 G& k% l' o$ w; O
: ?/ g6 K# b. _6 h3 A# APowerMILL31.Execute ("Form BLOCK")9 W3 k9 x  Q- `  j! g$ F) ]) s
, M9 t6 o* A$ Y4 \0 y& }* Z
PowerMILL31.Execute ("EDIT BLOCK ALL UNLOCK")
/ q' }. @$ \! U" C5 f, `1 X! l3 K- g# T' ?
PowerMILL31.Execute ("EDIT BLOCK TOLERANCE 0.1")
' w2 T/ V+ \: L, S
' W0 I5 j/ w9 `' J; j1 lPowerMILL31.Execute ("EDIT BLOCK RESETLIMIT 0.")
% t, A% {2 r( u" s! }6 a0 ]1 I5 ^' Z# H% e" E* `5 r. t: \
PowerMILL31.Execute ("EDIT BLOCK RESET")
  a- S2 z' d( x7 A+ `0 K. I
! v% q' k1 t( E) o6 ^PowerMILL31.Execute ("BLOCK ACCEPT")9 o" y$ r1 E; w; A- p0 C
5 x' L! F' t+ B+ }( f3 `/ Y0 m
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")
( l' }0 n2 d6 f( `" s! `
% m! R8 _/ R8 w0 }! Y7 x( F% P/ E5 bXMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxX")
  Y& r' \, l- q0 D3 e% M$ s/ k
6 t8 J9 O# x! a1 D1 J  H- }XMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinX")
/ S" }6 b8 X2 Q( l
' H) \* j. E+ i% h6 {7 UYMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxY")
1 w8 Z2 ~# m# W1 [2 ^  r$ c3 [1 ^/ ~
YMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinY")
( g( {1 Y0 `. {; r' |9 ~6 P9 @' Q9 t' }3 l+ t
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))2 H: O* y6 t. v9 B

( d7 Z  E# B( Q- IPowerMILL31.Disconnect+ U) k1 ?# q7 A: M
. f9 S6 y9 x! N! k
End Sub2 S* ^: g: A+ p; J

% ~: o" m. g* N5 ^+ M* e# f; jPrivate Sub Form_Load()
* q, w0 L3 W, Q; @' ^) B6 H8 b3 @5 l( t( l! m- O6 i0 R
PowerMILL31.Connect psStartPowerMILL
; m8 O$ P* \% }" x. R2 x9 l0 g% R- k& S, ^0 {+ d6 a
End Sub
发表于 2009-1-1 11:02:59 | 显示全部楼层 来自: 中国浙江杭州
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))
1 ]( X% w/ ]1 [$ s2 R# i( t7 n0 n
) |0 R* W, ^, j+ r- p" T0 O4 S5 A% y4 C6 W, ^* y% Y
这个不是自动建立坐标的命令啊$ ]- V* w7 A6 A8 J

6 |0 R& u* ]2 U5 W$ P4 M; v! q  E) _" f, f6 l7 I
要使用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
  S4 G. p: v* q4 Z* K( K你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界 ...
, Z9 H0 V( W9 Y& U
( I: l% @# ~# O7 f! W0 g

8 P% L) ]8 Z7 N/ |这个功能JIM会,你问他
发表于 2009-1-1 21:43:50 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif
' @. D$ C; y8 p5 J0 N( C7 Y还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...
! F) q9 P+ ?3 g, V$ F

" ]/ }/ }6 m8 `4 Q  {, M8 ]9 y. ]
+ ~$ q, q( Z) r2 L9 Z& O# Y9 B0 D% f( z0 o. {
这种情况,我没碰到过
发表于 2009-1-2 07:29:00 | 显示全部楼层 来自: 中国广东深圳
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif  u" K5 o. Z% j# @' S; O  t
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...
1 U3 L: v. P4 {- V$ G6 }+ \
兄弟要的应该是“窗口总在最前端”的代码,论坛上我记的吉米好像发过,你找下,然后加进去试试
 楼主| 发表于 2009-1-2 18:12:03 | 显示全部楼层 来自: 中国山东烟台
我的意思就是窗口总在最前端。谢谢老刘同志的提醒。
发表于 2009-1-3 08:48:52 | 显示全部楼层 来自: 中国浙江杭州
dcam_window_ontop hwnd4 _- n( R8 t, M. N

1 w7 G  d9 l; n0 V8 r4 o# i; z8 u8 C+ Q) d# ]; Q- \; i6 c
模组编程中,用我上面这个代码就可以实现窗体总在最前面(放在定时器事件下)
$ o9 z, g$ y' l1 T" H$ h/ u7 M: G
& \9 g: A6 G8 O' b/ V* G" m! F
( j- i5 ~$ d4 M- i模组代码如下
5 s) S1 H' B0 `' ]2 gPublic Sub dcam_window_ontop( hwnd As Long )9 J: k+ ?, E1 ?- S, v! w, `  C4 E
  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
) q- k7 B( X/ o) WEnd Sub
$ Z. A" X5 ~$ \% J3 M3 Z
% j" Q4 P. [7 T+ N8 F2 E) v[ 本帖最后由 hh749 于 2009-1-3 08:52 编辑 ]
 楼主| 发表于 2009-1-4 10:23:51 | 显示全部楼层 来自: 中国山东烟台
谢谢老大。。。
 楼主| 发表于 2009-1-4 17:05:09 | 显示全部楼层 来自: 中国山东烟台
我把Z轴设在最高点。是这样编的,可是移不到位呀。。还请帮助解决。
; t# r# q  H; A% c2 ]7 a
  Z% v, }4 ]* B8 k, i: sDim ZMAX As Long
' l3 I! I1 o$ \; D- OPowerMILL31.Connect: g8 V8 J- g1 T
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")
/ D! U  L% [" O* Y0 i0 DPowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEZ   " + CStr(-ZMAX))8 X5 w+ v: R$ }- ^2 h1 R
PowerMILL31.Execute ("TRANSFORM MODEL ALL")8 L4 N1 H1 f- j/ d
PowerMILL31.Disconnect
8 u2 C# ~- |) G. ?, d8 M9 j8 ]5 v$ L4 S7 J
Z轴不在最高点呀,有时候还高出最高点。是什么原因,是不是因为long是长整形数值呀。。。
 楼主| 发表于 2009-1-4 18:54:33 | 显示全部楼层 来自: 中国山东烟台
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。; v* I# Z! O+ [- q1 `2 b
( _; J- B1 q8 M
还请问老大,怎样模组编程呀。
发表于 2009-1-4 20:36:00 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-4 18:54 发表 http://www.3dportal.cn/discuz/images/common/back.gif- w# l* u3 O2 J- H0 |( g7 g2 D
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。
( f' r& A. U. M1 R7 b/ y
* S! }( k9 P0 ^还请问老大,怎样模组编程呀。

4 ]: r3 A/ N: l- O) }+ m* D$ m+ ~- i" j: R8 c0 p
  D' a; @7 o- F$ Q

1 U! C& s, A& d5 `3 Y0 }+ p4 I模组编程请看本版快教程+ \. u/ E6 H; }2 s. w) E
PowerMILL二次开发 高级篇(一) 摆脱PowerSolutionOLE.ocx的噩梦
$ S9 z$ M  k7 r/ ~! P5 y& k
( P. U  q4 g: O) t& B) ?这里是讲模组编程的,如果你不知道模组,那我建议你再去好好学习下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 )

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