青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

青华模具培训学院
查看: 2919|回复: 11

[疑难] 我在做一个标准件螺钉的二次开发事件,我们老师要求我们用部件族编程做

[复制链接]
发表于 2011-6-24 11:50 | 显示全部楼层 |阅读模式
我在做一个标准件螺钉的二次开发事件,我们老师要求我们用部件族编程做,我不会啊~9 S' h7 n; e" T: K0 G( v9 B* u3 R
目前,我才做到生成部件族,表格生成了。
, w6 C, a; i; g' _7 y% g* k之后,用VISUAL STUDIO2005新建项目,接下来就不知道怎么做了,因为部件族里面的数据是内部数据,我只会用ODBC链接外部数据库。6 l- S" n: c$ t# n: d
内部数据库,根本就不会啊,跪求解答。
发表于 2011-6-24 12:08 | 显示全部楼层
dingyixia xiongde
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 12:11 | 显示全部楼层
回复 2# 如意郎君
% X7 n9 \5 o. o9 n7 J' s+ H9 I! j6 l) L1 }, j5 O, I. e$ `' N
) U1 f' ~$ e& i1 J8 O
    大哥,你会不?兄弟我很急瓦~
回复 支持 反对

使用道具 举报

发表于 2011-6-24 12:20 | 显示全部楼层
二次开发软件不会啊,请路过的高手出招!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 12:33 | 显示全部楼层
各位路过的大哥,大神,跪求帮忙啊,这个真的是伤不起啊,今天就要求交的,实在没办法咯~
回复 支持 反对

使用道具 举报

发表于 2011-6-24 13:17 | 显示全部楼层
有表格了就是读取表格数据了!
$ A, j# M! d4 I- L. g- D9 g  e7 Z' b/ M赋值读取的数据给模板文件!驱动表达式生成模型!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 14:29 | 显示全部楼层
回复 6# UG二次开发毕设 ! Q+ R7 a: i0 z6 Q9 [5 z) Q
驱动表达式,这我会额,我们要求二次开发把它弄出来,我就不知道这内部数据库怎么连接~: X) {: \2 U1 r+ A  _) L2 m
总而言之,先谢谢了……
回复 支持 反对

使用道具 举报

发表于 2011-6-24 19:55 | 显示全部楼层
回复  UG二次开发毕设 5 N$ K* b/ c% _6 L8 P  O6 H' N
驱动表达式,这我会额,我们要求二次开发把它弄出来,我就不知道这内部数据库怎么连 ...
4 ^  S% n, J# @2 y: b凌子涵 发表于 2011-6-24 14:29

& n# T9 B" q1 S0 h( h/ z- l
* X/ F4 n! L, z8 Z# o2 Z( \+ g& W谢我再多没毛用!; ]) z! q# I2 |  Q, U
程序又不是一句两句能写出来的!!
/ k! f7 m6 o% d0 _7 p3 m你用UIStyler只做菜单,连接MFC,然后MFC连接数据库!这样数据库的参数就传递给了UIStyler,读取控件值传递给模型表达式,就能驱动生成了!
回复 支持 反对

使用道具 举报

发表于 2011-6-24 19:57 | 显示全部楼层
MFC的DLL可以办到!但是你要在UG里运行的话最好是UIStyler结合上MFC,MFC调用ACCESS
/ \8 S0 h& }0 \8 \  A+ n下面是部分代码:(我这是一套的,代码很多也很杂,给你下面部分)0 t0 Y- ~: q/ t
BOOL Database_main::OnInitDialog()
) Q6 C7 m# p! G$ }" x0 x{' e7 n& V& B0 K( i
        CDialog::OnInitDialog();$ D7 o  O- `) \% |
        * \! e$ Q, M# Q
        // TODO: Add extra initialization here$ w0 Z% d  k/ V+ m
                try{        
8 R" L4 m( ^( j( `        m_pdatabase=new CDatabase();' R' D5 ]0 [7 U0 H
        m_pset=new CRecordset();
3 u; V5 ~, U1 X6 i7 \3 t    m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);$ o, I( f0 ~$ x/ t3 B/ ?
        m_pset->m_pDatabase=m_pdatabase;        
) I$ M- Q3 m6 W6 ~7 N. O- [$ n        }$ d1 e0 I9 y! L) Y  n/ x4 e
        catch(CDBException* e){* c9 K5 N0 W7 u" [2 S
                e->ReportError();: U9 ?& `8 M/ u
        e->Delete();
$ F$ @/ P5 G6 n- Q* t2 j! Y            delete m_pset;
7 a2 i0 Z+ M" V2 C( y                delete m_pdatabase;
; E+ ~9 v: I2 K$ R: r                return TRUE;}
, U# z/ t& W% j7 Z* \        DataShow("data");4 g! {+ S5 I! t- L# e; u+ h2 K5 a
        return TRUE;  // return TRUE unless you set the focus to a control) e0 n" Y! M+ O1 t2 g/ @: w9 F
                      // EXCEPTION: OCX Property Pages should return FALSE$ c4 @# |! f* [
}& |8 s- j0 L5 c3 p

/ {( A. ~) r5 P0 T+ lvoid Database_main::OnOK() / V4 o5 v$ b: q% J. Z# ~3 {  V4 M
{
. L2 W2 z% e5 A4 P5 Y9 f        // TODO: Add extra validation here$ F4 [( f: |9 k
   UINT uSelectedCount=m_list_control.GetSelectedCount();; _% \# k, h- z1 M2 D
int nItemSel=0;$ ?+ o1 P# ]8 s+ q  D" q5 F. [
        nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);
0 k$ k0 l0 H% p1 ~; \) h9 U                for(int j=0;j<nFieldCount;j++)$ \+ A2 H( J* b# T4 u9 ~; K
                    str[j]=m_list_control.GetItemText(nItemSel,j);& m1 j% k; |/ D5 X% `
        }
& O" T. B- p" F4 k0 B
9 Y; K, z! C$ c+ L
: h; ~! E6 ^8 d: X
8 B+ c3 N, Q) ]0 l" S, M        " \3 l, F& \- j, g8 D
        CDialog::OnOK();3 W+ I; f8 \- S
}
5 U7 `" k% F- }3 _+ d) |! f- a1 k3 s/ b! V
void Database_main::ClearList()
/ w7 G7 W/ c, a; _1 W! e* a  K{6 u( M8 b( n+ T2 @" E$ @
        //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);" [5 v: V. \& u! `3 N+ V" i
        //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
# s0 h0 v- r8 S& |        m_list_control.DeleteAllItems();! J9 ^2 m" q( z0 d6 V" V
        while(m_list_control.DeleteColumn(0));( ^* s2 G: ?! C) R' M% A& N. u
    UpdateWindow();
' i& \( ?. |1 C8 K; H  E}# r  K: ^* z8 w, C/ A( Q* x+ D
////////////////////////////////////////////////////////////////////////////////////
$ M- {2 o4 e; I# Ovoid Database_main:ataShow(CString table_name)7 `  L3 `$ g& }& r9 f8 Q
{% R" ?  }6 T# a7 h8 T) U' X
    ClearList();
3 V$ x  V$ B& `0 H, ]7 ]    CString strSQL;* _+ H- f4 T- ]" p
        strSQL="select * from "+table_name;+ B5 \& ?( y. b% C3 v
        ShowInformation(strSQL);* _$ _! W% l% {. k5 C- x
}
+ F' u! p3 B; E( x6 u: N
/ e6 U; u, J8 t9 K' q4 YBOOL Database_main::ShowInformation(CString strSQL)
; a+ S/ o5 ^, n7 r3 r& s{
( I- l2 j8 x- ]$ r0 X$ g    if(!m_pdatabase->IsOpen()) return FALSE;
! I$ `6 M4 `' {9 R        if(!m_pset) return FALSE;
) y* e+ Q2 @; ?% R        try{
% n" i4 o( K9 k( m' ^) j                BeginWaitCursor();
: B$ K& g6 C) h2 F                if(m_pset->IsOpen()) m_pset->Close();
  Q1 s& b! ~! ^1 ?7 O                m_pset->Open(CRecordset::dynaset,strSQL);  O5 @* h4 H' P" i1 K
                if(!m_pset->IsEOF())% P; X0 t' T1 y$ m
                {m_pset->MoveLast();
3 _7 U- I9 o1 Z                m_pset->MoveFirst();}  w, K5 B. F3 X+ U+ U
                nFieldCount=m_pset->GetODBCFieldCount();
2 }' |0 S/ ^. H: i& s                CODBCFieldInfo fieldinfo;4 _: C4 C( i: }7 X# f/ P, m
                for(int n=0;n<nFieldCount;n++){. y2 v* A6 a2 |* z& t
                        m_pset->GetODBCFieldInfo(n,fieldinfo);0 _8 O* ^+ h# m' }' Z
                        int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;
: u9 J  H' Z& q. M& |                        m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);" j2 U# @$ ]) q& R( n* g( s& |
                }% u; e3 u& K0 `2 }/ A
                CString strValue;6 i# F) K1 J/ K3 ?8 N4 Q4 ]
                m_pset->MoveFirst();
0 B) W+ W( q' b" n                int nCount=0;) ?2 d; L; I  I) ?5 a+ b5 s
                while(!m_pset->IsEOF()){1 v" N5 i$ K. G3 c7 h
                        m_list_control.InsertItem(nCount,strValue);
3 k  f% D& J, A7 {. f4 ?6 b/ v! f9 t. p                        for(int j=0;j<nFieldCount;j++){
: R4 ^5 K' P4 e7 Q5 ~                                m_pset->GetFieldValue(j,strValue);4 a$ v; L1 w1 X3 o
                                m_list_control.SetItemText(nCount,j,strValue);
- \  V4 ^) y& ?, X                        }
, }  t! I6 \- m* m! @, H! v                        m_pset->MoveNext();
! G8 V: ]5 O" t2 U% k5 t. ]/ T- s- |- p; O                        nCount++;
) y/ k) Z% z1 o' h; L* e2 y                }
4 {3 u# T: _( |+ \( F% V+ I: F                EndWaitCursor();
; @7 J- f9 v3 a7 t7 x        }
. o* j1 ~& T7 {        catch(CDBException *e){8 h2 F3 I3 N+ c3 o7 f
                e->Delete();
. p& N: R% _. M) X        EndWaitCursor();
( u: r% G( t4 X  r5 f, |                return FALSE;* ~. e2 Q0 x5 J# {' K6 i) E
        }
0 R5 `1 i# k1 m- e4 r1 G        return TRUE;
- X; c3 F; R" v+ z/ F}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-25 12:17 | 显示全部楼层
回复 9# UG二次开发毕设 ; Z; E1 L/ x7 y- u) w* ?0 `
你一套的?那能不能麻烦你打包发给我看看哦,我再理解理解,我qq是279355053,万分感谢额。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|关于我们|sitemap|小黑屋|Archiver|手机版|UG网-UG技术论坛-青华数控模具培训学校 ( 粤ICP备15108561号 )

GMT+8, 2025-6-29 15:35 , Processed in 0.081069 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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