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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
求助mentor二次开发如何应用在vb6中呢?3 z* y) P/ x, D3 y

该用户从未签到

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

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

安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。  b' [9 b! Z9 Z% K0 H3 o# v0 ]) l
1 S7 e$ m# m8 I* u( W
Public Class Form1) V* J. d' a& m; W% l
    ' Expedition Automation Globals/ X  P7 `3 v# L3 V6 [
    Public pcbApp As MGCPCB.Application
4 J& p; y0 k% h' D" L7 u$ W    Public pcbDoc As MGCPCB.Document/ F8 l! \8 m/ V9 g; D

/ ?8 m( Z7 R/ U3 ]- F    Public Sub MGCPCB_Connect()
0 G7 R- L5 S3 H/ `" D8 i( t" d9 ^        ' connects to MGCPCB# P3 r( B9 n, ?+ b
        Dim retVal As Short" y1 K$ i) @  G
; s; y; x; ^! F
        On Error GoTo OnErrorGetObject
. l2 d+ c3 J+ R1 [, x/ c6 D* W        pcbApp = GetObject(, "MGCPCB.Application"); P! r, [6 Y( h$ D0 ^
        pcbDoc = pcbApp.ActiveDocument
# E, U1 r2 u6 ]$ _* D7 p# v
( u3 t/ n* q% b# \  y        ' make sure the doc is licensed) `6 `# P/ H* ~8 t
        retVal = licenseDoc(pcbDoc)
+ f) R* r5 c" s; I% I& Y  p& L: ~3 U' u* f. A' z$ Q
        If (retVal <> 1) Then pcbDoc = Nothing
5 T) g$ q  s3 x2 h5 D; C
$ V: n8 ]/ I: F7 w; ~2 j        Exit Sub# s* T2 L, A& p

' L" k& N0 Z- q0 zOnErrorGetObject:
; P4 `9 d- `; _- P9 ]        MsgBox("MGCPCB needs to be running!", , "Automation Demonstration")
7 b. v0 l, S5 G+ w0 S; c$ e9 U    End Sub3 M4 P0 d2 L# c" w* l- E$ E

0 F8 n* u- m2 @: D6 ^    Public Sub MGCPCB_Disconnect()
: ?# @: S' l( _. \9 c) _. }# ]& R/ ?        ' Disconnects from MGCPCB.1 h/ J( y3 m" u- C: C1 w6 O
        pcbDoc = Nothing8 k( [# Y5 i) y0 \7 ]
        ' Disconnect from MGCPCB server
: G$ A" m( [2 {- C        pcbApp = Nothing
2 B3 S4 ~9 P) _: Z, D. p' Z* K    End Sub6 y: I: Y3 i& M) M' W6 [& o

' \$ Y7 r/ h& l& g# S7 x- q% c0 i( A
    Public Function licenseDoc(ByRef docObj As MGCPCB.Document) As Short6 s/ B+ ]: u' W. j6 B9 ^" g2 B
        ' =======================================================================
  `2 Y! z8 A% K. c0 }" j* W        ' Retrieve a licence for the document
6 I1 Q/ C( A% X7 ^5 s: Y% o9 q: X! {        ' =======================================================================
7 v9 Y$ a' ?) n9 B4 e  i* y        On Error GoTo exit_with_error6 w# x. @% g4 M
        Dim retState As Short7 B$ j2 g. M7 l7 c) C- e$ ]1 X

( H' k7 v6 [% _* y9 k% N        Dim licenseServer As Object9 [# [, s* k/ {0 ~0 k0 i) e, z
        Dim key As Integer) v  m  i9 r/ `( L% u1 |
        Dim licenseToken As Integer  s1 K2 D/ m- y* Y3 S0 N. q# Z
        Dim outErrMess As String
  M5 I7 t, \& `) s. b: c5 }( s3 r- N7 f6 y$ u4 F0 X0 B" ?
        If (docObj Is Nothing) Then GoTo end_of_function$ H% M2 F2 d& l5 v1 X
3 f" W% e$ |9 K5 ]* x
        ' Ask the document for a key
6 j# T. J# F" f# Y        key = docObj.Validate(0)
3 i$ ?! r2 f# M" X7 n  ]( L1 }3 n9 C# Q, ~; B7 i
        ' Get license server5 H& y' s0 Y2 ~- x* n7 }! e; ~" l
        On Error GoTo err_create_serverobj
) J. p# R/ |8 T* d$ L1 Z. Y* Y        licenseServer = CreateObject("MGCPCBAutomationLicensing.Application")
9 h( S- @! \$ K  Z" ~        If (licenseServer Is Nothing) Then GoTo err_create_serverobj
& v) O8 \1 N7 D$ v( R) z        On Error GoTo exit_with_error' N" U% u: q0 E( r! O
3 }* p+ }2 `. P$ t- Z

; d% W3 j0 v: s" s6 n! b        ' Ask the license server for the license token
' ^6 G/ @$ {" L6 k$ @        licenseToken = licenseServer.GetToken(key)8 F$ @+ m# I' K' \" f
, w  J# s  ]) Z2 C

* r. ^& |! x  U6 ?. P+ {        ' Validate the document with the license token
9 M, M. b' x1 h' }: L2 Z( r        On Error GoTo err_validate
7 @2 b! o! f2 A+ b. C0 G+ \7 J        Dim lRetval As Integer8 Q5 ?& N9 [8 d+ K4 L  O
        lRetval = docObj.Validate(licenseToken)1 {" _4 c3 ~. e' l( u, S: W! s

6 N4 ~% `2 w1 P* j, X9 n8 U        On Error GoTo exit_with_error
& Q5 d$ G0 l. u/ o# L3 w
8 h6 f6 O7 G, f3 i" \0 w' f        retState = 1
) U$ N& k3 a! f/ k
9 J- }2 G& H. y$ n8 ^1 D8 H0 qend_of_function:7 H, Z5 m3 z6 d. |$ l9 z
        ' release licence server
& b8 f, J1 W* n        licenseServer = Nothing
6 s( }6 z) P5 i7 K( \+ {9 P% g        licenseDoc = retState
, i- f+ y7 J4 |
; h( V9 V. w- z  c! E+ d2 a        Exit Function, g: F# m5 ?/ g- r4 \/ a. G

3 Z+ e! r6 N( ishow_error:7 M! }! @4 P" n- N
        Dim ioptions As Integer
8 [% @0 e& J. `6 k7 w1 P        ioptions = MsgBoxStyle.DefaultButton1 + MsgBoxStyle.ApplicationModal + MsgBoxStyle.Critical + MsgBoxStyle.OkOnly
+ N; _' c0 T% [$ _0 h8 k! ~        MsgBox(outErrMess, ioptions, "Retrieving license for document")) o" A6 x" t$ S3 L( k3 x/ T
        GoTo end_of_function
( K& v" N9 X. K! ~1 F0 k* ^& n/ L5 ^* j3 p  S' a* m& J- d
exit_with_error:. b8 Z% ]' W& U0 e
        outErrMess = "** Error ** " & ErrorToString()
* z# r' w0 u/ S' L        retState = -1& [# r; |# r" B% u# U
        GoTo show_error
6 y3 L1 E9 X  U6 f5 G
, H$ s5 g3 c3 W( qerr_create_serverobj:" p0 [4 Z- P4 E0 x/ k8 n) ^
        outErrMess = "** Error ** Could not create license server object"$ D) V% \' s& M9 f0 @
        retState = -2
0 f+ ?' d3 |: x# p        GoTo show_error* M  L6 p% |/ p5 T  ]

9 r' a9 p! _0 @- Perr_validate:5 V# X( Q& r4 q$ _1 W+ O. e' b, g
        outErrMess = "** Error ** Failed to validate document object"
. O: T+ i4 U5 n$ @        outErrMess = outErrMess & vbCrLf & "    License token : " & Trim(Str(licenseToken))$ D* P1 R1 [, }' q0 L# c' M$ K. p
        outErrMess = outErrMess & vbCrLf & "    Document key  : " & Trim(Str(key))
5 j8 P: k+ i! D+ k8 s        retState = -3
& k; _  x2 V6 |. Z        GoTo show_error
/ R, s1 Q0 c- }, G0 q! `/ I) d; o1 k4 ]$ j$ g
    End Function' k' ]; ^" V0 V4 X4 C5 S  N

- e7 p3 f- M: C( W5 y" G: x, t    ' your code

点评

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

该用户从未签到

推荐
 楼主| 发表于 2019-4-3 09:26 | 只看该作者
zmg2007 发表于 2019-4-2 22:03
0 y( C( d4 Y/ b3 S8 f安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。! P$ n0 d. z5 e/ p  r: P7 Z

! X& I+ j: s& Z: QPublic Class F ...

& T3 v" `: A. q看不太懂啊,能不能具体分享一下怎么弄啊,谢谢了!
3 n1 Z' @( p, |& q
  • TA的每日心情
    开心
    2023-12-15 15:16
  • 签到天数: 1 天

    [LV.1]初来乍到

    推荐
    发表于 2023-12-20 13:00 | 只看该作者
    zmg2007 发表于 2019-4-5 20:394 [2 ?$ n* {# m( g5 M
    一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。

    9 K( q7 G% U8 K我是基于C3编程,有这块的指导么,VB的代码和C#有些比较大区别
    / l* }* I' n# z. v) Y- t  u  g

    该用户从未签到

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

    点评

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

    该用户从未签到

    6#
     楼主| 发表于 2019-4-1 17:13 | 只看该作者
    lines 发表于 2019-4-1 16:59' @' j9 \  o' Z
    应该要链接mentor的函数库

    ( y1 n7 W0 ]% }' ~6 D那数据库哪里有啊?是啥样子的
    5 a" f0 f$ _* Y% ?, V$ A, M% Y8 t7 p; e1 g

    点评

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

    该用户从未签到

    7#
    发表于 2019-4-2 09:00 | 只看该作者
    罗斯 发表于 2019-4-1 17:13, v! S3 O& w+ C" O5 Z% c3 _0 z
    那数据库哪里有啊?是啥样子的

    ! C( _  o8 D. ~% Z@老吴PCB 如何引用?

    点评

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

    该用户从未签到

    8#
    发表于 2019-4-2 10:11 | 只看该作者
    lines 发表于 2019-4-2 09:00
      `$ D; m/ v  m* v@老吴PCB 如何引用?

    3 y9 R+ |% w8 @, b& ~& S大侠,如果我不进来看,真不知道你@我了: W* ?% {( }- S' w3 b5 M+ z

    点评

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

    该用户从未签到

    9#
    发表于 2019-4-2 10:26 | 只看该作者
    老吴PCB 发表于 2019-4-2 10:11
    ; J* j9 g) G( ]大侠,如果我不进来看,真不知道你@我了
    2 G3 T# z" D1 `! v5 J2 j) B, _/ B' k
    知道你随时会现身的
    / D( }/ f) m0 b# X1 {) x% M
  • TA的每日心情
    奋斗
    2019-11-20 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    10#
    发表于 2019-4-2 17:08 | 只看该作者
    在安装目录下一般都会有案例可供参考,不过呢,VB6中开发可能不一定有自带的Automation开发起来方便,我个人的想法,仅供参考。, {2 ]! C" H2 p" z" u. o: _, [
  • TA的每日心情
    奋斗
    2019-11-20 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    11#
    发表于 2019-4-3 08:09 | 只看该作者
    zmg2007 发表于 2019-4-2 22:03- e, L* ]0 B" |- J: ]
    安装mentor,在VB里添加COM库:MGCPCB和license就可以编写了。下面是个例子,你摸索下。+ [6 B" {. V$ N  Z" I- p
    5 \# |, S; e* y+ [
    Public Class F ...
    # {* c0 a; d* ^5 X6 V2 ^2 g  }
    敏刚威武
    ' U! `3 @1 V4 C

    该用户从未签到

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

    CompInfoList.zip

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

    点评

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

    该用户从未签到

    13#
    发表于 2019-4-8 14:12 | 只看该作者
    zmg2007 发表于 2019-4-5 20:39
    1 @/ ]5 k. ^+ C8 J' I一个出器件信息的例子,你看下,用VS2017(Visual Studio)可以打开查看源码。

    9 ?3 r; I! q5 K& W1 b; x感谢分享,用vb6没法看代码吧?; J; Y; {/ H) E2 p% {  W# _8 o

    该用户从未签到

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

    该用户从未签到

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

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-7-4 04:23 , Processed in 0.093750 second(s), 29 queries , Gzip On.

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

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

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