QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我自己写的VB定义坐标,Z轴差了0。3呀,还望会VB的各位帮帮忙呀。不胜感激。 未命名.JPG " T8 t3 }, I2 A! E  N

# _/ C1 P% _1 T) `# B2 P( p4 f! E' X4 X: M
我是这样写的。
( l0 |; l: [5 J/ t- g* q. j. N) k' n
Dim XMAX, XMIN, YMAX, YMIN, ZMAX As Long# f* r1 {/ ~& L0 i+ \
0 @3 b$ q( a/ a# |+ v' D- U
PowerMILL31.Connect, N) v; z* X) X4 I
. r# _& N! w( Z" T/ r, O
PowerMILL31.Execute ("Form BLOCK")
5 {8 m2 y7 \1 k( e3 D+ a; c7 i
( i( B$ N* F8 P3 |$ X( fPowerMILL31.Execute ("EDIT BLOCK ALL UNLOCK")& h! W8 m. b3 V( u

8 A) t+ X) N9 D2 VPowerMILL31.Execute ("EDIT BLOCK TOLERANCE 0.1")4 g( N8 }- @! X. R7 S
2 z' H. p9 R0 b3 n4 b
PowerMILL31.Execute ("EDIT BLOCK RESETLIMIT 0.")
4 v2 f3 y4 l. U1 i; K$ M
% K* g- m7 @' a% ?* aPowerMILL31.Execute ("EDIT BLOCK RESET")
6 N' l& H/ W$ ^, ^. K, S
" @8 I/ b8 @5 ]# a5 \/ S3 bPowerMILL31.Execute ("BLOCK ACCEPT"): R6 |6 \, t& B4 a& ?
/ e4 t: i; r" m6 Y$ v9 h, O4 O) q
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")
) a* `* O' g* I5 D8 H/ h2 P- c% S5 x: P9 c$ K, h: j; y6 e4 J
XMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxX")
# L9 Q* C/ A* E
% p. s7 B$ N% P8 }XMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinX")0 y* y/ a& \2 C3 K

) u& ?: ]/ L' fYMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxY")! S: Z1 z; [' b
" ^5 u# l& D6 f2 K& T1 h, E
YMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinY")# [% y  c7 ]; n/ K

  Z) S# r7 X+ e/ WPowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))
5 x2 c9 C9 v- d. y% I+ F5 w) D4 n0 E4 H* o
PowerMILL31.Disconnect
5 P7 v. \9 G: `5 O- d- D) w% u6 r  p- Y$ u# P
End Sub( \: z( _- v. T* [8 j
; {; k+ Q3 C/ `1 i+ u
Private Sub Form_Load()
% N2 S% A* }! \9 o1 t
/ ^8 ^  n. w/ Y) iPowerMILL31.Connect psStartPowerMILL; \! C$ G3 W9 N- i
& e$ V# B* y5 J
End Sub
发表于 2009-1-1 11:02:59 | 显示全部楼层 来自: 中国浙江杭州
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))
9 Z( |: n% g5 n) @8 M1 x( `% @% j
. C) [+ {+ o% ]: L9 d2 P/ p  Z7 a/ p( o* c, y, m" o
这个不是自动建立坐标的命令啊# M* W# s& W8 N8 ]9 Q4 ~9 H

3 _5 i! t  ~! K) G& V) n
5 `8 I% M0 T; E! b- }5 t要使用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
9 b% \+ e9 @# i  U9 }2 T  e你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界 ...

$ j3 _0 P; E+ b( q% o
  v* ~  P8 W' y  d5 Y# b5 o. w$ ]/ D+ L# r0 Q9 \& H8 n
这个功能JIM会,你问他
发表于 2009-1-1 21:43:50 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif3 j, ?0 j# q  y1 b/ k' P" L) F
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

0 Y! i3 N) r  e% w
6 l: i* I1 a" B
% B: b! T. y' g
; `! y. ~1 r; e这种情况,我没碰到过
发表于 2009-1-2 07:29:00 | 显示全部楼层 来自: 中国广东深圳
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif
, p6 t4 y( _! b9 a1 A还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

' n: o& q* m2 M0 l8 y; i2 m兄弟要的应该是“窗口总在最前端”的代码,论坛上我记的吉米好像发过,你找下,然后加进去试试
 楼主| 发表于 2009-1-2 18:12:03 | 显示全部楼层 来自: 中国山东烟台
我的意思就是窗口总在最前端。谢谢老刘同志的提醒。
发表于 2009-1-3 08:48:52 | 显示全部楼层 来自: 中国浙江杭州
dcam_window_ontop hwnd$ O* @: k4 ?8 g; K. S2 A5 x

1 t; m0 L) v7 {, X' z+ J) m1 ~- v6 Z9 E! G, t8 I! L0 E  ?; @
模组编程中,用我上面这个代码就可以实现窗体总在最前面(放在定时器事件下)+ w" i+ J. ^2 R% U* b  {/ f

7 t9 _) j0 ]0 H0 @+ o6 s+ Z
: N* W) |2 t' D7 V& G1 P模组代码如下1 O, a7 D8 _- r7 n& c! r! i5 M
Public Sub dcam_window_ontop( hwnd As Long ); k2 S- Y6 t7 t! ]- }
  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE6 V( N5 X: `) n4 |. ^% d
End Sub6 `" \# B; H  @# z4 L2 ^) Y
+ F& r7 I6 q, m: }
[ 本帖最后由 hh749 于 2009-1-3 08:52 编辑 ]
 楼主| 发表于 2009-1-4 10:23:51 | 显示全部楼层 来自: 中国山东烟台
谢谢老大。。。
 楼主| 发表于 2009-1-4 17:05:09 | 显示全部楼层 来自: 中国山东烟台
我把Z轴设在最高点。是这样编的,可是移不到位呀。。还请帮助解决。
8 G3 X5 m" h" ~3 K6 H: [7 w5 k7 G9 k; [6 O( I
Dim ZMAX As Long
8 G4 ?, `& w3 ?' a7 G  ZPowerMILL31.Connect, v% u: F; _1 F9 p, L
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")
( C8 g6 P# x9 C% ^$ k6 g" bPowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEZ   " + CStr(-ZMAX)), k: r* F$ X  W0 P, v/ O! ^
PowerMILL31.Execute ("TRANSFORM MODEL ALL")) T. _# L* ]1 l% g* ]! J! q  R9 a, g
PowerMILL31.Disconnect
& \) D0 Z" m% h! t
- R+ ^: N  M# ]$ n0 oZ轴不在最高点呀,有时候还高出最高点。是什么原因,是不是因为long是长整形数值呀。。。
 楼主| 发表于 2009-1-4 18:54:33 | 显示全部楼层 来自: 中国山东烟台
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。( ^4 a7 O4 H1 B0 L! e

, f1 @& w+ u* Y1 V, x& U还请问老大,怎样模组编程呀。
发表于 2009-1-4 20:36:00 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-4 18:54 发表 http://www.3dportal.cn/discuz/images/common/back.gif9 d# W! s3 p' ]  I9 M, t, x2 ^7 o
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。( N2 B& F; c+ Z. \0 F. {" S
, P  N# v! B& |9 o+ M) z: r
还请问老大,怎样模组编程呀。

: e0 Q* B4 @( @2 T
# ?, f' Q, `9 {' U
- M6 `1 R  i# A) ?4 X! J: a4 Q! [6 p
模组编程请看本版快教程
9 }0 R; `7 ~4 H1 x0 CPowerMILL二次开发 高级篇(一) 摆脱PowerSolutionOLE.ocx的噩梦
# o- l4 _8 u, w/ L- O9 F% `% I  V3 l# l' y
这里是讲模组编程的,如果你不知道模组,那我建议你再去好好学习下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 )

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