找回密码
 注册
关于网站域名变更的通知
查看: 659521|回复: 18
打印 上一主题 下一主题

求助mentor二次开发如何应用在vb6中呢?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-4-1 16:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

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

x
求助mentor二次开发如何应用在vb6中呢?0 Q1 j: e9 d1 o8 W# U; s

该用户从未签到

推荐
发表于 2019-4-2 22:03 | 只看该作者

RE: 求助mentor二次开发如何应用在vb6中呢?

安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。7 @# }: f6 L2 y4 A& p- W

0 ^4 x$ s/ I: m3 C- }( nPublic Class Form1
( t! H" Z$ S% D" e. {7 }    ' Expedition Automation Globals( @, h9 }1 {2 g/ M* G& O: D
    Public pcbApp As MGCPCB.Application
5 r, s) o/ d4 x( Y% n8 O* x3 U    Public pcbDoc As MGCPCB.Document
2 P8 L$ @' {4 e! a6 f5 S
' e* M! E9 |# w$ [    Public Sub MGCPCB_Connect()
1 E. X" d3 e, T        ' connects to MGCPCB
* S- i3 z: B' q6 J  X/ C% f5 G8 z        Dim retVal As Short
/ J+ Z  M! W2 E* r# c3 U/ I4 M$ C, ]- |' \; W9 }5 ?" `/ R
        On Error GoTo OnErrorGetObject0 M/ s. x4 L/ ?. B
        pcbApp = GetObject(, "MGCPCB.Application")1 d  l- F2 T" o1 X* n
        pcbDoc = pcbApp.ActiveDocument
, ~! g8 y+ u9 }. [' P5 w
8 M* p1 j# q! @3 P. L, @        ' make sure the doc is licensed8 F1 n% c3 ?! v
        retVal = licenseDoc(pcbDoc)$ E# U7 U; x, O: b
; j7 {* Z' H0 H
        If (retVal <> 1) Then pcbDoc = Nothing
$ n+ B. u3 T( q+ Q. o( x& Y
+ h. s- ~9 A6 c" B        Exit Sub
& q3 s- X4 }; J/ E# M8 X: e/ a( F
; Z, J/ f7 P0 B) v9 V% J7 d, e( cOnErrorGetObject:
. x, V; b6 k6 {0 q) Y        MsgBox("MGCPCB needs to be running!", , "Automation Demonstration")
  b) ]0 r3 o6 i" g" @    End Sub
, q' L- ~% h+ Y
; a, ^' q$ P$ r! j    Public Sub MGCPCB_Disconnect()- z6 H7 K0 x" X0 v/ z" ~& z9 v
        ' Disconnects from MGCPCB.
+ Y6 S% a3 U2 N1 `) K$ `        pcbDoc = Nothing! |5 K. h1 s; v7 K
        ' Disconnect from MGCPCB server# E2 n- v9 P! V" f$ a
        pcbApp = Nothing5 p! ?2 k% T* L$ u4 f" R+ h% {6 l
    End Sub
' X8 h0 q% S! r/ u
6 w" H+ \$ k# V& T
2 Y& K$ b& |1 s    Public Function licenseDoc(ByRef docObj As MGCPCB.Document) As Short5 @: M, C  R3 ^4 t$ v) J4 T3 w0 Z
        ' =======================================================================
" z0 J; C% \7 t, D7 W        ' Retrieve a licence for the document) b4 ^0 c2 c& s! S' Y. e( K* s
        ' =======================================================================
$ R0 g" W$ W1 v( R0 d        On Error GoTo exit_with_error
0 D1 s' y& v5 W        Dim retState As Short5 C1 d" Z. p  B
( G8 u9 u) ^0 h1 `5 z6 M
        Dim licenseServer As Object
0 m0 N$ Q+ U* l/ a/ S' c1 a        Dim key As Integer
- I; `. M9 s; h" p4 p* ]2 q+ _        Dim licenseToken As Integer5 y! z. x6 N. E, A0 B* C+ k
        Dim outErrMess As String# t* C* t7 p- K# L
# x. o& k" q. V/ j
        If (docObj Is Nothing) Then GoTo end_of_function0 Y  @( W; K2 n

' c. N8 {) a" J+ U  O+ q        ' Ask the document for a key
6 k& t- v. a# f# n, ~! f- T        key = docObj.Validate(0)# {1 R8 Y' q. P6 l* x; E$ \

( D4 y2 R2 k7 ?. p  ^        ' Get license server
, v% d2 R3 X+ ]3 u) h6 O: o        On Error GoTo err_create_serverobj" A  w: {% ^- T/ r4 L
        licenseServer = CreateObject("MGCPCBAutomationLicensing.Application")
& I5 s% z! {7 D/ J        If (licenseServer Is Nothing) Then GoTo err_create_serverobj% i" _; y- w6 L) X) J; `
        On Error GoTo exit_with_error, P+ J. P2 E# K
. `) ^" M3 Y4 V' D; a
- M6 M/ @! e& D
        ' Ask the license server for the license token' a9 F3 q5 O6 F% ?+ m' m; Q
        licenseToken = licenseServer.GetToken(key)
  |  |' c4 S2 p8 S( a& o7 s& x2 V7 j. r) ~4 Q3 T: Q
7 m8 N4 `1 s2 e2 w% w0 q( `
        ' Validate the document with the license token
0 h- \0 X  g2 @! b5 e        On Error GoTo err_validate
, j& m& N- P+ N1 _        Dim lRetval As Integer( U+ `- U" R5 a, y9 F0 U! D
        lRetval = docObj.Validate(licenseToken)
1 ]+ l2 Y. U. [# {9 g. k0 v+ X  g* H) B- z5 I# N* m
        On Error GoTo exit_with_error
$ n  B( w6 @9 s8 `- t" ]
, Z! U. }, i7 ?) M        retState = 1% u1 m$ T' T0 O# z
7 D* u  F: p! j: W% n" B
end_of_function:
' A6 X  G& b* G9 q9 e        ' release licence server
+ T) J: S0 \( B8 @6 Q3 X) l        licenseServer = Nothing
3 w9 A/ Q! x% q" c2 b9 ^        licenseDoc = retState
, B, S" [- m& n6 D4 u+ h$ J9 p( K9 L) E4 {- S4 K3 A
        Exit Function
; H$ d5 c3 C5 F, k; L% l7 U# O  \3 e3 i5 m0 ~+ k
show_error:
3 Q$ S2 E. j- S4 H# K9 m5 m        Dim ioptions As Integer
7 a' g! I4 B! q" ]        ioptions = MsgBoxStyle.DefaultButton1 + MsgBoxStyle.ApplicationModal + MsgBoxStyle.Critical + MsgBoxStyle.OkOnly
; R  I: u8 k0 f8 P# N: w        MsgBox(outErrMess, ioptions, "Retrieving license for document")
; c3 R# x+ q+ ^/ }; T6 ^4 m        GoTo end_of_function
' l& U( l- p1 ~$ |9 Z- G$ Z7 V$ R8 u4 O2 z/ t
exit_with_error:$ |# n' e' K2 N
        outErrMess = "** Error ** " & ErrorToString()
# I: Y8 q9 F. u5 v        retState = -19 d# I4 x- h, B( q7 T% `
        GoTo show_error% s# _+ l+ a% A% l1 J& P

! f5 @8 F0 d" b+ Y; G( G9 C9 Uerr_create_serverobj:
3 a, B6 ?6 p2 o( _. W        outErrMess = "** Error ** Could not create license server object"
, ^& x6 B. S* b3 n8 K        retState = -2
! S, a- N3 I. I0 M$ ?1 [2 Z- N7 L        GoTo show_error
; A, c5 q5 \+ n2 \4 D: v2 b! J4 g* A% ^; E2 R' C- b
err_validate:* Q% C. S% |. j( L
        outErrMess = "** Error ** Failed to validate document object"  ~) d# k9 [2 n$ N& g
        outErrMess = outErrMess & vbCrLf & "    License token : " & Trim(Str(licenseToken))! B4 I) d" ~8 A' U; U, Q2 S
        outErrMess = outErrMess & vbCrLf & "    Document key  : " & Trim(Str(key))
3 t* q9 Z( I; x5 T2 G$ e+ o8 S! s        retState = -3
" A8 F& Z: T0 N& D9 h+ t5 z        GoTo show_error! u( E# B0 B/ u% X

* H0 N3 N5 `8 f/ g5 o& e) S; j  A: c    End Function  |1 Z3 F# ^) e

. x4 |6 |3 f" {! E0 O    ' your code

点评

看不太懂啊,能不能具体分享一下怎么弄啊,谢谢了!  详情 回复 发表于 2019-4-3 09:26
敏刚威武  详情 回复 发表于 2019-4-3 08:09

该用户从未签到

推荐
 楼主| 发表于 2019-4-3 09:26 | 只看该作者
zmg2007 发表于 2019-4-2 22:03) `$ w, U2 L, K, _$ q' q# S
安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。  `/ k+ f0 l7 o, b8 ^
& P5 ]4 W: |6 e* @5 u
Public Class F ...

: l% O5 N' \( U9 p) v1 p2 H看不太懂啊,能不能具体分享一下怎么弄啊,谢谢了!8 d+ P2 F$ Q. K' g- D
  • TA的每日心情
    开心
    2023-12-15 15:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2023-12-20 13:00 | 只看该作者
    zmg2007 发表于 2019-4-5 20:39
    + D+ H5 _& r* W一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。
    ! ?3 i" `+ p0 {4 C' \2 G5 d
    我是基于C3编程,有这块的指导么,VB的代码和C#有些比较大区别/ k( O4 q! L$ h7 w  K# @

    该用户从未签到

    2#
    发表于 2019-4-1 16:59 | 只看该作者
    应该要链接mentor的函数库

    点评

    那数据库哪里有啊?是啥样子的  详情 回复 发表于 2019-4-1 17:13

    该用户从未签到

    3#
     楼主| 发表于 2019-4-1 17:13 | 只看该作者
    lines 发表于 2019-4-1 16:59
    5 r# l, j- ]5 ^5 Q应该要链接mentor的函数库

    ; k1 i# o: i9 M+ U. s, S那数据库哪里有啊?是啥样子的# E3 f2 @8 y* v) K
    + T9 p( V* x* U4 G9 g8 \) |) H

    点评

    @老吴PCB 如何引用?  详情 回复 发表于 2019-4-2 09:00

    该用户从未签到

    4#
    发表于 2019-4-2 09:00 | 只看该作者
    罗斯 发表于 2019-4-1 17:130 X# L. O, j; `/ `
    那数据库哪里有啊?是啥样子的
    " j: K7 Y/ k, I, ]  x3 |
    @老吴PCB 如何引用?

    点评

    大侠,如果我不进来看,真不知道你@我了  详情 回复 发表于 2019-4-2 10:11

    该用户从未签到

    5#
    发表于 2019-4-2 10:11 | 只看该作者
    lines 发表于 2019-4-2 09:00
    ; H" r% u2 D  s4 j4 N1 d@老吴PCB 如何引用?

    / E8 `4 [* W2 r  B! q4 s大侠,如果我不进来看,真不知道你@我了
    , ^4 E2 u* p% |( s

    点评

    知道你随时会现身的  详情 回复 发表于 2019-4-2 10:26

    该用户从未签到

    6#
    发表于 2019-4-2 10:26 | 只看该作者
    老吴PCB 发表于 2019-4-2 10:11- `& Y7 V: {& {; I: s
    大侠,如果我不进来看,真不知道你@我了
    8 t& q8 O+ Z4 k& M1 F" {" M
    知道你随时会现身的
    ; W5 Z( o' n  B9 r9 p
  • TA的每日心情
    奋斗
    2019-11-20 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
    发表于 2019-4-2 17:08 | 只看该作者
    在安装目录下一般都会有案例可供参考,不过呢,VB6中开发可能不一定有自带的Automation开发起来方便,我个人的想法,仅供参考。0 B4 C# B# H; ?/ @5 N9 ]
  • TA的每日心情
    奋斗
    2019-11-20 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    9#
    发表于 2019-4-3 08:09 | 只看该作者
    zmg2007 发表于 2019-4-2 22:03
    4 P  \7 e3 B; ~  |! \安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。6 S: K8 }% z& r7 k- O, |/ P$ f
    " M  C( x8 g! R  ~* j9 ~
    Public Class F ...
    % d. B' Z, }9 N2 Q: H' }
    敏刚威武# ^2 ?' w5 n1 {) k8 p: a

    该用户从未签到

    11#
    发表于 2019-4-5 20:39 | 只看该作者
    一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。

    CompInfoList.zip

    937.59 KB, 下载次数: 41, 下载积分: 威望 -5

    点评

    我是基于C3编程,有这块的指导么,VB的代码和C#有些比较大区别  详情 回复 发表于 2023-12-20 13:00
    感谢分享,用vb6没法看代码吧?  详情 回复 发表于 2019-4-8 14:12

    该用户从未签到

    12#
    发表于 2019-4-8 14:12 | 只看该作者
    zmg2007 发表于 2019-4-5 20:39
    ( x2 T9 ]5 w# \) D7 |0 o  _  g( B一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。

      m3 r# M2 p4 ~% Q2 s. s7 D感谢分享,用vb6没法看代码吧?
    0 p( v* ^- l1 J

    该用户从未签到

    14#
    发表于 2021-3-4 08:59 | 只看该作者
    2313413123123131321

    该用户从未签到

    15#
    发表于 2022-1-16 19:26 | 只看该作者
    xxxxxxxxxxxx学习学习,但不知道咋弄
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-21 12:55 , Processed in 0.140625 second(s), 29 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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