QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
9天前
查看: 4247|回复: 16
收起左侧

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

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

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

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

x
我自己写的VB定义坐标,Z轴差了0。3呀,还望会VB的各位帮帮忙呀。不胜感激。 未命名.JPG 3 y2 y: r6 H8 x- N

5 @3 x9 S3 z0 v0 y# K
8 T1 W& f) y, J1 h4 a我是这样写的。
, J. }' W9 q3 K
. _4 n3 g0 b! O' ]Dim XMAX, XMIN, YMAX, YMIN, ZMAX As Long
' i; _0 T; w/ \0 A* J# S2 v4 ~+ h3 S
PowerMILL31.Connect  o/ U* W, w3 T8 q3 c" b9 c* k+ ?
% p- l6 M+ D; m4 Y) @; P7 a
PowerMILL31.Execute ("Form BLOCK")/ F6 L6 v: S' i. u4 C/ M
" V+ ?# g( Z" ~. q( i2 }3 f8 }
PowerMILL31.Execute ("EDIT BLOCK ALL UNLOCK")
3 ^% g1 ?8 [" ^5 l2 Y, J2 I5 X" T: u7 ?$ f! }5 t+ e/ c) w' S" t# L
PowerMILL31.Execute ("EDIT BLOCK TOLERANCE 0.1")8 C9 b. U' |* M. n8 a5 U
" O! b1 o  P1 A  Y
PowerMILL31.Execute ("EDIT BLOCK RESETLIMIT 0.")
* h8 m* b6 ^" L" E" j9 [3 w. z0 H: a+ x: b6 V
PowerMILL31.Execute ("EDIT BLOCK RESET")$ k: x5 i( O. q  B* F
1 B5 r5 X: I) f7 T) ~7 ^' H
PowerMILL31.Execute ("BLOCK ACCEPT")
1 U# t  F( C* ?: c, `9 O7 c4 N+ ^
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")
! T' E5 B4 K# q! y, D( h
8 B! Q, D+ I. F7 KXMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxX")
0 q& W. k9 C. t. N* e) X
1 }* c! {7 l. B6 u/ D' V3 n7 RXMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinX")# R3 v1 r+ v* B  E! s3 Z/ ]7 i

! ^; g. t& Y3 fYMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxY")% L3 m- N; E1 L. M3 N5 E
; m  }& a" p) c# O2 @
YMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinY")7 k6 b7 S; V% k/ s9 a. Y1 `" L
2 M! H9 x6 a. n
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))
2 P( c. l. l6 ]9 w$ o( r& j, ^' D* ^
PowerMILL31.Disconnect2 [$ n$ x; W/ W

7 m; i* `1 S6 Y' ?End Sub
  Y- t5 K" ~9 Q  d( Z8 i% p% p  N, g& w0 }8 R) J
Private Sub Form_Load()2 T9 Y1 d3 D& m. A: `
) }! G# _0 z0 C( S9 Q7 P( P: s
PowerMILL31.Connect psStartPowerMILL3 {  L! _/ b+ ^4 P# |9 U

4 ~  d- y. h( i" kEnd Sub
发表于 2009-1-1 11:02:59 | 显示全部楼层 来自: 中国浙江杭州
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))/ |% V7 I( l4 J& e0 [3 u* U0 W* o

2 m0 z1 _: y3 ?/ S$ _3 ~1 G
: \# a1 Z0 [0 g5 j' f这个不是自动建立坐标的命令啊0 q6 l! o( Q# n1 a/ T+ \: ?4 b+ T

% w! V6 z( R' Z9 M! n! V4 o/ Y  D
- l& R; n7 t  y+ [. z& ~要使用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
/ L9 j- C% A# }5 b9 A: \7 n& N你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界 ...

, l. g5 o2 W- S6 G0 Z; P' }: Z! [. Z! Q0 d& l; F! W% h

' ~" D! F9 v; ~) Z  N这个功能JIM会,你问他
发表于 2009-1-1 21:43:50 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif
6 E" N$ Y# Q/ d1 H( v# {还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

* z6 l; S- |4 w& Q
; @4 J) U9 T. l4 Q- L1 o1 G" d. {/ T/ Y' m2 W% i, `! Q3 w/ N

: ^: a+ g. m& t, n" V* g这种情况,我没碰到过
发表于 2009-1-2 07:29:00 | 显示全部楼层 来自: 中国广东深圳
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif- @$ S( Y7 L* ~/ P' b8 A( O
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

  J9 Q. I/ Q5 h/ _5 z兄弟要的应该是“窗口总在最前端”的代码,论坛上我记的吉米好像发过,你找下,然后加进去试试
 楼主| 发表于 2009-1-2 18:12:03 | 显示全部楼层 来自: 中国山东烟台
我的意思就是窗口总在最前端。谢谢老刘同志的提醒。
发表于 2009-1-3 08:48:52 | 显示全部楼层 来自: 中国浙江杭州
dcam_window_ontop hwnd
! p+ F* U% G* W) k+ |) S+ s% X6 J# J
; E2 z( o6 w! \  D( H
3 R& }, Y# j4 D% ^# c5 q模组编程中,用我上面这个代码就可以实现窗体总在最前面(放在定时器事件下)
3 P- I0 Q/ \, j/ q5 Z( {
5 e- G( W8 `/ a0 @6 k" M
/ `# ]$ p7 T" O3 e* T模组代码如下
3 T0 D4 Q6 j, E% l3 `Public Sub dcam_window_ontop( hwnd As Long )& X8 n. K+ v% h! N- y6 x  C
  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE- r) `1 W6 U- |
End Sub
+ `# W6 i  G/ {% }# F% n- m7 U- a0 G- C! Q: y$ `6 V
[ 本帖最后由 hh749 于 2009-1-3 08:52 编辑 ]
 楼主| 发表于 2009-1-4 10:23:51 | 显示全部楼层 来自: 中国山东烟台
谢谢老大。。。
 楼主| 发表于 2009-1-4 17:05:09 | 显示全部楼层 来自: 中国山东烟台
我把Z轴设在最高点。是这样编的,可是移不到位呀。。还请帮助解决。
+ a8 t6 s2 ?6 M1 \- l* |
; P9 J+ i$ R- V0 B6 j' Q& \. A+ ^! tDim ZMAX As Long
- |' t! @8 F. E; ?  ZPowerMILL31.Connect
3 N) ^& I% j0 B) S  ?ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ"), r" P4 j* W2 v7 }9 K
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEZ   " + CStr(-ZMAX))
. R1 F# h2 F7 v* ?: Q2 qPowerMILL31.Execute ("TRANSFORM MODEL ALL")% A! h$ l0 t1 U8 i" h% {
PowerMILL31.Disconnect
3 e% Y* b7 q+ H' s" L0 g/ E1 r: p& r* W+ t+ _+ E5 a
Z轴不在最高点呀,有时候还高出最高点。是什么原因,是不是因为long是长整形数值呀。。。
 楼主| 发表于 2009-1-4 18:54:33 | 显示全部楼层 来自: 中国山东烟台
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。. u$ J9 v3 i( u% t

$ V4 L6 g+ L5 j" P还请问老大,怎样模组编程呀。
发表于 2009-1-4 20:36:00 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-4 18:54 发表 http://www.3dportal.cn/discuz/images/common/back.gif+ L' `" W- \" F' W+ i  O: [# }
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。: R4 l" p- F/ H! Z6 E
+ l; y. D+ L, N2 y9 R' I
还请问老大,怎样模组编程呀。
' c. L3 @/ @+ s
- h6 Y5 H( x% n" ]' {

) R8 `% B5 y3 G# u; I2 @. b/ m0 {6 M/ Q5 H; I4 |4 L$ m3 u0 r* Z+ J
模组编程请看本版快教程
5 M9 \8 e- X+ N6 KPowerMILL二次开发 高级篇(一) 摆脱PowerSolutionOLE.ocx的噩梦
) Q& V; t& b: {3 w) H, a: p+ B1 B' I$ ]+ [/ d: \; b* v5 N
这里是讲模组编程的,如果你不知道模组,那我建议你再去好好学习下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 )

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