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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
求助mentor二次开发如何应用在vb6中呢?4 I+ m# ~$ [9 C, e8 v4 ^

该用户从未签到

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

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

安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。, c! p8 e& v- v9 |

! @% e5 `0 M4 O1 g/ sPublic Class Form15 j& s/ H& t0 J1 Z/ B) x3 H
    ' Expedition Automation Globals6 m6 P4 I' e. Z/ H, o7 w
    Public pcbApp As MGCPCB.Application" m6 V3 @$ H" S& i
    Public pcbDoc As MGCPCB.Document
) v# s  {/ o+ f4 @1 h- K" t) l; \7 t) q: t/ n, S; N2 V+ p# [
    Public Sub MGCPCB_Connect()
* ^5 b7 t6 m9 m/ j. o, f        ' connects to MGCPCB
4 F: `; {# b7 K  y0 H5 W7 l8 D        Dim retVal As Short7 @5 A" s" M- O
( ]; b, S8 @3 |8 U" g
        On Error GoTo OnErrorGetObject" e  E2 i/ g7 H9 P! ^, ?) R
        pcbApp = GetObject(, "MGCPCB.Application")
9 `1 H$ _3 B, s& ^* ^/ v        pcbDoc = pcbApp.ActiveDocument
- G2 [  x2 S* ?# F. S, J& g& b9 ~3 k! M
        ' make sure the doc is licensed
0 D( y' S; z7 I; m% `6 S        retVal = licenseDoc(pcbDoc)
* `( h. W0 \% V( c, r: |8 B* `, v! v% n' i
        If (retVal <> 1) Then pcbDoc = Nothing% H  z4 \( w. c; O# K! {( Z

$ T% g9 |7 |9 \        Exit Sub
# Q- i( g, J3 y  h  u5 E5 n' K+ d$ {: t8 M5 B
OnErrorGetObject:( \0 w' ^9 @" m. F2 Z+ y3 ^1 [( n
        MsgBox("MGCPCB needs to be running!", , "Automation Demonstration")
9 X- a+ Q/ o5 j5 h# C8 i8 N  V    End Sub5 R6 N" k: S3 X6 O) j- M

* ?  L! Z9 D: w) [/ D# u    Public Sub MGCPCB_Disconnect()
& [8 I- C3 o, w: a+ q) o        ' Disconnects from MGCPCB.% N# B9 n( Z& z0 p# k/ {" q
        pcbDoc = Nothing
& p- q; A, f6 m) W$ f        ' Disconnect from MGCPCB server
4 t- p% s) ~$ _) D+ S        pcbApp = Nothing1 P: j+ `1 `' ]
    End Sub8 s% s: l" c" Q& _

- U8 J2 q: Q  p- F( O* X+ d
0 F& Z6 i8 W. Y0 _' r- e# u    Public Function licenseDoc(ByRef docObj As MGCPCB.Document) As Short) W) ]6 E( e  C; [+ J0 Z1 ^
        ' =======================================================================- D; A' @* h1 a) Y" W& R
        ' Retrieve a licence for the document0 W( R2 Z% O+ V! h/ I5 |; v4 a
        ' =======================================================================" U  N- [& V. D
        On Error GoTo exit_with_error1 I9 d3 m$ f' E0 B/ z" \  w( d
        Dim retState As Short8 h2 E. j! [) M8 c

; q/ |4 e3 c/ a, T( h1 k, C        Dim licenseServer As Object
8 [- E' F# d& A3 j! z) f        Dim key As Integer
8 C0 e' S: h$ e2 R" ?        Dim licenseToken As Integer
/ \# L2 N/ R  R- G8 f: v: |3 ?        Dim outErrMess As String, L; I' n; f5 ?* J
1 [" S2 C2 ^* l+ Q. X, c5 |0 `/ F
        If (docObj Is Nothing) Then GoTo end_of_function0 M0 d4 |- A4 p

: P8 p$ D; H2 C$ H        ' Ask the document for a key& b$ m+ e- @. g$ ^8 v$ Y5 c& ]
        key = docObj.Validate(0)! z4 C  F& A  v) j
. @# _4 O; `) K/ u+ w4 R
        ' Get license server- s2 w; a7 T. f5 y. [; B9 L
        On Error GoTo err_create_serverobj9 O& [2 F7 R/ m; I- p
        licenseServer = CreateObject("MGCPCBAutomationLicensing.Application")
+ a- q$ e4 b; B        If (licenseServer Is Nothing) Then GoTo err_create_serverobj$ q+ h$ p9 ]% N* d
        On Error GoTo exit_with_error
" n1 n0 ]) e* I/ }
$ Z, L3 c; [+ x6 G, a9 E* g3 G4 y3 V6 S% m4 g2 X/ ]: O
        ' Ask the license server for the license token
5 Y  S& ^* n& ]: d: u% O        licenseToken = licenseServer.GetToken(key)
( B1 \; |3 p1 z  U7 a, @7 [% I* G  ]$ B3 z. t, T# z
' f! y  G4 k. k2 Y9 W8 E
        ' Validate the document with the license token0 @" Z( D5 o* Q* ^$ X
        On Error GoTo err_validate3 O2 D# C. S: }& }
        Dim lRetval As Integer
  ^) g1 }9 X6 f0 S+ t  C+ d9 i  p6 q        lRetval = docObj.Validate(licenseToken)
1 j+ [5 X0 j& _; {/ _+ T+ g7 d4 |4 {( V
        On Error GoTo exit_with_error' |+ ]9 a( Z/ i$ ^- F, a
! h+ W7 g/ f+ c) L
        retState = 1
. f7 D. g* e5 J7 O" |
. c  H# v% R- g* `: d/ ]end_of_function:
$ {: @, T3 N1 H( j3 V) g        ' release licence server2 ~1 z, v" S/ y  J" k
        licenseServer = Nothing
4 K: X: c2 w' R+ D% E1 V, ^- x, |        licenseDoc = retState
  ]$ T! q% T, B& N4 |& j6 |  T. k7 l; i6 j5 T
, T# w- W0 Q. o* j  `7 ~        Exit Function
" n0 ^1 u& ^, l! j- l6 b
' Y- s) {: x* ^3 J- fshow_error:
3 E( D5 y' k7 o        Dim ioptions As Integer
! h6 f9 J# W( {3 e        ioptions = MsgBoxStyle.DefaultButton1 + MsgBoxStyle.ApplicationModal + MsgBoxStyle.Critical + MsgBoxStyle.OkOnly
0 q1 e9 ~7 [0 `- ^( I9 F& r, e        MsgBox(outErrMess, ioptions, "Retrieving license for document")
/ L- Q; Z6 G5 z0 E6 e' @        GoTo end_of_function7 t4 D% }  ~- C

: Q" J6 f2 k$ P) N1 Rexit_with_error:
7 }  W. G4 S4 t3 Z& @        outErrMess = "** Error ** " & ErrorToString()
4 B1 G4 ?8 R( p        retState = -1
6 y7 A6 X! t# |7 G9 R        GoTo show_error8 U  z9 \2 l9 n& v3 N/ w
0 b4 x6 }  R: E' e3 _
err_create_serverobj:1 ^: I- V  V8 n1 f. u' A; ~
        outErrMess = "** Error ** Could not create license server object"$ Z( U8 v1 x( b4 @
        retState = -2
( s: X1 }7 n9 H3 t) N' |2 ]        GoTo show_error
8 o% ^0 O  ]3 k$ n7 S" p; @7 L# {
err_validate:
  x3 i. e; V5 t8 l) m4 R        outErrMess = "** Error ** Failed to validate document object"
# e: o3 X2 M! U        outErrMess = outErrMess & vbCrLf & "    License token : " & Trim(Str(licenseToken)): f8 G* b+ y2 d
        outErrMess = outErrMess & vbCrLf & "    Document key  : " & Trim(Str(key))
  _! e+ G) A6 \! t- F        retState = -3
0 ^, C8 \3 C5 {! b" `# i' Q* d+ Z        GoTo show_error
5 k8 D( E0 ]: b# g9 I  C9 h. t8 Z" ]- q/ b; W
    End Function
1 s9 _" [* C3 m& O7 Q0 f5 k1 D" c  @- `
    ' your code

点评

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

该用户从未签到

推荐
 楼主| 发表于 2019-4-3 09:26 | 只看该作者
zmg2007 发表于 2019-4-2 22:03* r# ^/ D" t4 x3 [; u
安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。( s/ a6 G) x) G. q' F# A

  t* }+ Z+ a, j7 j/ vPublic Class F ...

) w, x- Y" b7 Q$ \- Q, G6 P; E看不太懂啊,能不能具体分享一下怎么弄啊,谢谢了!: y% C9 a9 \; B( B3 W# e5 s, ^4 X
  • TA的每日心情
    开心
    2023-12-15 15:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2023-12-20 13:00 | 只看该作者
    zmg2007 发表于 2019-4-5 20:39
    * [2 E6 j/ Y+ U8 A8 W一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。

    ; [. m/ V. ?$ g+ ]/ `9 v我是基于C3编程,有这块的指导么,VB的代码和C#有些比较大区别$ _; _, Y3 f+ k6 H

    该用户从未签到

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

    点评

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

    该用户从未签到

    3#
     楼主| 发表于 2019-4-1 17:13 | 只看该作者
    lines 发表于 2019-4-1 16:59
    / V# R9 i8 ~! ?+ f1 `: N4 P应该要链接mentor的函数库

    . C7 M1 w  K; @/ }& c: I% Q那数据库哪里有啊?是啥样子的
    ; D& D  l. |; E  A6 i9 O6 _' n9 \5 m( _/ s$ l) I0 {6 V

    点评

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

    该用户从未签到

    4#
    发表于 2019-4-2 09:00 | 只看该作者
    罗斯 发表于 2019-4-1 17:13
    % Z# z! G. \+ a3 N, ^; M; M% ?那数据库哪里有啊?是啥样子的
    6 l4 d( r# a: h! ~
    @老吴PCB 如何引用?

    点评

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

    该用户从未签到

    5#
    发表于 2019-4-2 10:11 | 只看该作者
    lines 发表于 2019-4-2 09:00. |. y0 j& {: ~7 N$ m! A) t) S
    @老吴PCB 如何引用?
    & g9 Z" G$ C% D% [
    大侠,如果我不进来看,真不知道你@我了& o* |& S; g) F  G

    点评

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

    该用户从未签到

    6#
    发表于 2019-4-2 10:26 | 只看该作者
    老吴PCB 发表于 2019-4-2 10:112 Z7 ^1 D: c8 X6 |1 f
    大侠,如果我不进来看,真不知道你@我了
    ! c) v* B0 G; }7 h3 B
    知道你随时会现身的
    / j% ^8 Y- [6 }2 Z, M: T
  • TA的每日心情
    奋斗
    2019-11-20 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    7#
    发表于 2019-4-2 17:08 | 只看该作者
    在安装目录下一般都会有案例可供参考,不过呢,VB6中开发可能不一定有自带的Automation开发起来方便,我个人的想法,仅供参考。
    ' U9 m& U; e  t- x. t, X
  • TA的每日心情
    奋斗
    2019-11-20 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    9#
    发表于 2019-4-3 08:09 | 只看该作者
    zmg2007 发表于 2019-4-2 22:03
    7 j9 ]9 K, U3 g' q5 [: s9 _6 N安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。% B- X- C/ w) u
    " h9 e4 F; v$ u# u# u3 a
    Public Class F ...
    ! {  b5 H: M) C
    敏刚威武& E: p" a. f" S! F

    该用户从未签到

    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! _/ G4 {' C5 y( R! P
    一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。

    , t* |; w% n" y) K$ I; {$ ^  u感谢分享,用vb6没法看代码吧?* Y" \. j! A3 y$ ~9 C

    该用户从未签到

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-8-1 03:03 , Processed in 0.156250 second(s), 37 queries , Gzip On.

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

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

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