QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
我自己写的VB定义坐标,Z轴差了0。3呀,还望会VB的各位帮帮忙呀。不胜感激。 未命名.JPG ; Q; T; r4 h5 b

& H+ l5 e, ?% ?) K* Q, F
) k5 a: Z" h4 b' E& x" u我是这样写的。
1 ]3 N! ]- _+ M
( J3 n7 V- y" VDim XMAX, XMIN, YMAX, YMIN, ZMAX As Long
  Q. o0 G- Y. R0 P; r: S8 {1 }7 C5 |1 t+ `4 I- R$ U
PowerMILL31.Connect/ |+ B5 O9 U2 w3 y! I

8 I/ Y8 k! c2 l7 b$ a" tPowerMILL31.Execute ("Form BLOCK")
& {+ _$ {' m1 Y3 Y3 V7 F, ~
( A# O3 m- @3 |7 ?0 F; U. w; {; pPowerMILL31.Execute ("EDIT BLOCK ALL UNLOCK")
  Q5 J+ _: k$ i6 J9 ]9 I6 t/ r
. d/ M0 n5 Y  y. SPowerMILL31.Execute ("EDIT BLOCK TOLERANCE 0.1")
. J- r" k* M$ R% w0 u) a) h$ }+ h& _$ h3 y2 K
PowerMILL31.Execute ("EDIT BLOCK RESETLIMIT 0.")
: }1 r. Q* ^+ ?2 U9 Y; S' _5 J$ F0 j# H4 I/ e3 j
PowerMILL31.Execute ("EDIT BLOCK RESET")
: _5 v& E7 t$ Y7 _, P4 k* c$ e: b" O1 f. Q$ \
PowerMILL31.Execute ("BLOCK ACCEPT")
4 m3 F. E( o& G& Q+ F: G" R# z; A
ZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")
; N$ g, c* U, Q" U7 |9 S6 n5 @& x1 m
) ?1 ^" l8 K; b" N1 kXMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxX")
! U' F  \" B+ P7 P7 v6 L1 ^
/ h+ o/ i* J7 Q2 s! ZXMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinX")
6 v* g% i- x$ g& H; I! i) _) I6 p( _  I! n
YMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxY")
( S8 x# j* N# |; C$ T+ D' q( ~" y; f  V/ c
YMIN = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MinY")
& ]4 f$ T# p0 R6 H7 {0 o' d9 w/ @9 a1 V8 q: d6 q
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2)))
( p9 O1 Y/ ~8 ~/ u2 r$ @2 J: R6 q9 k
PowerMILL31.Disconnect$ w# W- R  j2 q4 _) X$ K% t* `* l9 l

0 z  a7 @: O# m' L% _End Sub
2 N7 N' ^: B# X+ L- e
( [, E3 t* O/ \! e/ w  c3 UPrivate Sub Form_Load()
* m" I/ k! Z, Z' H. H: A
7 c) c. a- R2 g. i% VPowerMILL31.Connect psStartPowerMILL+ X8 B8 A- x$ ], E9 @
. c7 j0 @1 ^4 I9 x
End Sub
发表于 2009-1-1 11:02:59 | 显示全部楼层 来自: 中国浙江杭州
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEX  " + CStr(-(XMAX - (XMAX - XMIN) / 2))), g3 r2 Z9 K+ D+ ~) A- `4 d# a
) G1 y1 M9 o( a/ ]

- R% J7 }/ ^9 z3 R8 E) ^! [3 t这个不是自动建立坐标的命令啊. t6 M6 N( m6 V

, H1 A# U0 _: b6 J' g- f) v  B, z1 a7 I8 p( ~1 c; _! ~7 W4 L
要使用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.gif6 J7 H" Q2 M3 o# l6 }
你好,我是想在没有建立工作坐标的情况上,把世界坐标移到最高点。你说要使用那个自动建立坐标的命令,应该是自己先产生一个坐标。然后再自动居中,对吗。  可是我的想法是,在没有建立用户坐标的情况下,自动把世界 ...

/ i$ |7 W" u0 s7 t1 I, ?3 \, O
( X! |+ C5 }0 l. ^$ [
" D2 a) W: O1 }+ b这个功能JIM会,你问他
发表于 2009-1-1 21:43:50 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif
$ M- X- j* u3 D  N8 n: j还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...

; p; x. ]2 l/ {; Q$ B4 U% ^& |1 k$ m, V
$ T) Z. e: T$ T% Y7 \% Y

$ {$ d. h* c2 N- F/ ^8 G0 W% {这种情况,我没碰到过
发表于 2009-1-2 07:29:00 | 显示全部楼层 来自: 中国广东深圳
原帖由 dazhi518 于 2009-1-1 17:28 发表 http://www.3dportal.cn/discuz/images/common/back.gif/ c0 ]* Y0 f0 V# v2 p3 k6 f
还有一个问题,就是,我启动自己编的程序之后,比如我点一下“X分中,Y分中,Z最顶部”坐标定好后,我再去点击powermill去查看工件,那个坐标器就藏到powermill后面了,之有再把powermill最小化才能看到。如果我想点 ...
1 H$ |( ?( [8 J
兄弟要的应该是“窗口总在最前端”的代码,论坛上我记的吉米好像发过,你找下,然后加进去试试
 楼主| 发表于 2009-1-2 18:12:03 | 显示全部楼层 来自: 中国山东烟台
我的意思就是窗口总在最前端。谢谢老刘同志的提醒。
发表于 2009-1-3 08:48:52 | 显示全部楼层 来自: 中国浙江杭州
dcam_window_ontop hwnd
. ]4 s, ?; e% f9 e8 B# z3 }
  ^1 G* f7 o* z$ h+ T/ h( \
( [5 ?- F' D. t( m7 t/ M0 v模组编程中,用我上面这个代码就可以实现窗体总在最前面(放在定时器事件下)$ U( ]% C; j' j
6 l$ z, m, @) H

( \' H- Z3 x+ Q9 G, m模组代码如下
1 Y. M( P2 a8 d- e& X4 B2 R' sPublic Sub dcam_window_ontop( hwnd As Long ). z3 R4 o: J8 U( [! D
  SetWindowPos hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE4 F, Y% ?8 o$ ]+ I9 h
End Sub
  o  q* g/ j. y. g# Y. S% _) v3 \2 W
[ 本帖最后由 hh749 于 2009-1-3 08:52 编辑 ]
 楼主| 发表于 2009-1-4 10:23:51 | 显示全部楼层 来自: 中国山东烟台
谢谢老大。。。
 楼主| 发表于 2009-1-4 17:05:09 | 显示全部楼层 来自: 中国山东烟台
我把Z轴设在最高点。是这样编的,可是移不到位呀。。还请帮助解决。
/ }! _9 S7 E+ ?  `4 e+ h0 q7 ~0 t- F5 C
Dim ZMAX As Long
; c8 P" I: G$ J4 h4 X% `6 ~  w3 t1 ZPowerMILL31.Connect
5 f& m% V' s5 u5 x4 rZMAX = PowerMILL31.ExecuteEx("PRINT FORMVALUE RoughBlock.LimitFrame.MaxZ")+ d" D. g3 n/ Y4 Y
PowerMILL31.Execute ("TRANSFORM RESET TRANSFORM TYPE MOVE TRANSFORM MOVEZ   " + CStr(-ZMAX))
4 {, l% h' X2 G" L0 s0 rPowerMILL31.Execute ("TRANSFORM MODEL ALL")7 C0 \( J% o. N) W. {
PowerMILL31.Disconnect
# ]9 G7 }% `! Q" q
# n7 t) J( q9 a8 ^3 M: K/ nZ轴不在最高点呀,有时候还高出最高点。是什么原因,是不是因为long是长整形数值呀。。。
 楼主| 发表于 2009-1-4 18:54:33 | 显示全部楼层 来自: 中国山东烟台
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。3 W0 H1 f: ]; R' C( Q
9 E+ ]2 X7 ~! o' D; }
还请问老大,怎样模组编程呀。
发表于 2009-1-4 20:36:00 | 显示全部楼层 来自: 中国浙江杭州
原帖由 dazhi518 于 2009-1-4 18:54 发表 http://www.3dportal.cn/discuz/images/common/back.gif/ j  F: t6 d* k# u. M
Z轴移不到位的问题,本人已经自己解决了,原来是变量高错了。我试了一下把long(长整型)改为double(双精度型)。然后就OK了。
" q. U; L6 m5 x1 F! x' m$ l/ X( o! A7 z; i0 |& z1 \
还请问老大,怎样模组编程呀。
% c' \& U2 `) D" f  D
7 Q$ c" Y2 W: S. S9 M

$ S$ g# x3 |8 N1 g! |4 y/ L" T, c5 l
模组编程请看本版快教程
( G6 s9 w/ w' l) j6 }4 c( E# n) YPowerMILL二次开发 高级篇(一) 摆脱PowerSolutionOLE.ocx的噩梦 ( K, z' ]7 O4 h3 r# @" l3 o: @- y
6 ^4 t' M$ D! d7 q9 R
这里是讲模组编程的,如果你不知道模组,那我建议你再去好好学习下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 )

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