QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我自己写的VB定义坐标,Z轴差了0。3呀,还望会VB的各位帮帮忙呀。不胜感激。 未命名.JPG ' Y  H( i% b* n. a9 E' Q7 v
, c7 Z" X( o" r7 u& r3 r
( T5 }( ], W; `; H7 \# A5 w' b
我是这样写的。% U9 ?1 k8 Y$ s" b7 Z

; z1 ~% R& `- V1 r4 FDim XMAX, XMIN, YMAX, YMIN, ZMAX As Long
" R  V1 G/ w9 f4 Y; H8 E
! s0 ^8 \2 W& f5 @! O- BPowerMILL31.Connect
0 A8 i1 z. ~/ Q$ ~# |+ O# i8 r. I; s* ^
PowerMILL31.Execute ("Form BLOCK")7 f% H7 K8 v8 u0 ^1 F( B: w5 ?

& k+ H7 m0 H. t- X5 rPowerMILL31.Execute ("EDIT BLOCK ALL UNLOCK")& B* t" G' W+ G% G5 w  Z

2 U" ?1 n/ q( T$ H' p. B) }1 e( _PowerMILL31.Execute ("EDIT BLOCK TOLERANCE 0.1")
/ k. r: a9 F6 q: S+ m" W& U! i$ h% D# A  b: w* S& U
PowerMILL31.Execute ("EDIT BLOCK RESETLIMIT 0.")
9 W- f9 {5 j+ J, d+ M  u
# \4 m+ ^+ C" h  _  M6 UPowerMILL31.Execute ("EDIT BLOCK RESET")& U/ R. X& X& g+ w9 g9 Q, r

- o- Q" Y5 X3 E* i: bPowerMILL31.Execute ("BLOCK ACCEPT")
# Y' C% A3 d3 t+ _0 ]: F0 w9 J* ?0 K$ c; p  |, |8 W
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ"), W' l. f$ B; @6 V
1 H# A, m' d9 i5 T3 T; r
XMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxX")
9 n+ a$ x* V) P$ k- t
, z. M+ @6 Z% X! U6 _8 C7 v5 lXMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinX"): R0 f, ~3 D" I- p8 {, r

% z: Q) D% N5 s# Q$ {( b: Z: L& j& KYMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxY")
) d5 u$ J; N1 {  v1 }5 x; v: l# p% V0 _5 d; X
YMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinY")
  [3 Y; F) _" ~0 @0 N. k4 x& w
5 }+ z# J6 c! {0 \PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))- L4 P5 _  {: F2 C& Z

; y  I, B" g. A5 v% c" Q: M; sPowerMILL31.Disconnect
: {8 _! K9 b/ c- g) `' y& a% E- I  B  ?/ ~
End Sub
2 `: W" [$ `4 b& C. h. H1 N6 B& ]: z/ v+ ]! @; o( c
Private Sub Form_Load()
( {/ W! A* @4 @9 M& O' E$ {
* f$ G' m& m# \4 u% r) X. SPowerMILL31.Connect psStartPowerMILL
# O# x) C' w( j3 x  I3 r% D; q6 |. c: {1 }
End Sub
发表于 2009-1-1 11:02:59 | 显示全部楼层 来自: 中国浙江杭州
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))
5 F' A# q5 x5 j4 G" x
& d) }! \& b0 F4 j/ ~. e0 f6 M- c) W* L& }/ Y
这个不是自动建立坐标的命令啊  S  S2 K8 Y' L: H0 {$ e6 h

' r( _3 j( `3 m' ?" @7 M* V* S% D4 Z" G* ?% I8 S. S
要使用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
1 H6 ?- y! E1 t$ G你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界 ...
7 @- o1 Q2 m" k2 X) W( s
% g9 t' |% n7 X2 u- v
( C1 \9 d! x1 R$ O  i# h
这个功能JIM会,你问他
发表于 2009-1-1 21:43:50 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif
& v7 k8 K- ]( Q! r4 q还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

8 O2 C8 U& J& M. j& k6 p' ?, D; |2 u* }# ]# h; j

) ~  D+ a/ e  M
# G( {& ~- I" F/ z这种情况,我没碰到过
发表于 2009-1-2 07:29:00 | 显示全部楼层 来自: 中国广东深圳
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif2 y! v" z- k/ O3 B& C0 ]2 {
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

( _/ I# }, m- T' p+ t# X, g" k兄弟要的应该是“窗口总在最前端”的代码,论坛上我记的吉米好像发过,你找下,然后加进去试试
 楼主| 发表于 2009-1-2 18:12:03 | 显示全部楼层 来自: 中国山东烟台
我的意思就是窗口总在最前端。谢谢老刘同志的提醒。
发表于 2009-1-3 08:48:52 | 显示全部楼层 来自: 中国浙江杭州
dcam_window_ontop hwnd& W. L) d% P" e
! F- j+ [  }5 s: H
$ m1 I( u( S2 B) W
模组编程中,用我上面这个代码就可以实现窗体总在最前面(放在定时器事件下)
$ P! {9 p  s; r% N: Q
; M/ U6 ^' i9 c9 H0 r0 R5 Y* W: [
模组代码如下
/ C) {/ J- a3 r' W: qPublic Sub dcam_window_ontop( hwnd As Long )
- [6 |! n9 G3 `) \0 P  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
6 H6 _" g4 l0 z! r5 @$ BEnd Sub
" N3 V8 U1 \5 v( d; K) X0 _% K: g& |6 T8 M, p* \* G# [8 c2 Y/ A
[ 本帖最后由 hh749 于 2009-1-3 08:52 编辑 ]
 楼主| 发表于 2009-1-4 10:23:51 | 显示全部楼层 来自: 中国山东烟台
谢谢老大。。。
 楼主| 发表于 2009-1-4 17:05:09 | 显示全部楼层 来自: 中国山东烟台
我把Z轴设在最高点。是这样编的,可是移不到位呀。。还请帮助解决。
1 q- L! w+ d1 b5 A; k/ X
# W& O0 K/ d  |. ]  GDim ZMAX As Long% v3 U. n/ `. G3 p/ [; G+ _
PowerMILL31.Connect
: ]' ]7 t% A& M6 ?: H5 S2 @ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")# r3 w: z+ ]0 e$ j; A$ _$ j" h
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEZ   " + CStr(-ZMAX))
8 u! c' }$ k2 u. U& X7 T5 gPowerMILL31.Execute ("TRANSFORM MODEL ALL")
* Q2 a( @. l( W4 U' ~" TPowerMILL31.Disconnect/ R0 z% ~7 N8 E0 A' T. q$ G- q, p

4 f( S7 y4 B9 q4 I% _Z轴不在最高点呀,有时候还高出最高点。是什么原因,是不是因为long是长整形数值呀。。。
 楼主| 发表于 2009-1-4 18:54:33 | 显示全部楼层 来自: 中国山东烟台
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。
6 _, h2 U" B  j; L) i. _
& H/ Q3 i* s3 n: U7 x还请问老大,怎样模组编程呀。
发表于 2009-1-4 20:36:00 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-4 18:54 发表 http://www.3dportal.cn/discuz/images/common/back.gif
' O5 v* i8 [7 N2 I& N) q- `  ?+ hZ轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。
: r5 Q' [4 N7 Z# ~, P
4 a/ |: D; g8 T$ h. B还请问老大,怎样模组编程呀。
) o3 @3 `6 [5 [! e" J  D/ l) Z

- Q3 t- r+ {5 _% ?7 m5 H) u+ j' I! W
$ k+ R4 ]6 q* `' W( \
% f% K0 w9 q+ C6 P9 K模组编程请看本版快教程1 _5 M% F7 z; _. I  ?8 M* S
PowerMILL二次开发 高级篇(一) 摆脱PowerSolutionOLE.ocx的噩梦 + F3 m9 g) v  K: s: U8 B

/ J1 d) ?2 W+ N: @; S! I这里是讲模组编程的,如果你不知道模组,那我建议你再去好好学习下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 )

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