青华模具培训学校

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2011-6-24 11:50 | 显示全部楼层 |阅读模式
我在做一个标准件螺钉的二次开发事件,我们老师要求我们用部件族编程做,我不会啊~* @* v* D4 x6 H1 E2 B, p
目前,我才做到生成部件族,表格生成了。8 [( y3 H1 U0 N8 l( j* o
之后,用VISUAL STUDIO2005新建项目,接下来就不知道怎么做了,因为部件族里面的数据是内部数据,我只会用ODBC链接外部数据库。
6 t6 m8 h) x/ X" k% x5 u内部数据库,根本就不会啊,跪求解答。
发表于 2011-6-24 12:08 | 显示全部楼层
dingyixia xiongde
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 12:11 | 显示全部楼层
回复 2# 如意郎君 - j$ b, E/ G7 V1 ?& @% v

7 b0 g, w5 s8 ?1 O( w! t$ H/ I: Z8 f  n' F0 ]6 [6 S& B( z
    大哥,你会不?兄弟我很急瓦~
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2011-6-24 13:17 | 显示全部楼层
有表格了就是读取表格数据了!
( e/ F# _5 f' {8 B$ d赋值读取的数据给模板文件!驱动表达式生成模型!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-24 14:29 | 显示全部楼层
回复 6# UG二次开发毕设 ( c* M+ J; u8 }% _: b5 B  d
驱动表达式,这我会额,我们要求二次开发把它弄出来,我就不知道这内部数据库怎么连接~& r7 u- U3 ?6 [3 g# j
总而言之,先谢谢了……
回复 支持 反对

使用道具 举报

发表于 2011-6-24 19:55 | 显示全部楼层
回复  UG二次开发毕设
1 B% g) ~/ u5 c! K驱动表达式,这我会额,我们要求二次开发把它弄出来,我就不知道这内部数据库怎么连 ...
. v3 E. K" B. {/ O, s  `凌子涵 发表于 2011-6-24 14:29

. S8 I! P7 n9 D7 |7 j+ |$ \. |
9 Z" b5 Y0 p2 h; V0 m谢我再多没毛用!
6 ]4 O& ?& z1 K5 K; n程序又不是一句两句能写出来的!!
4 O3 q4 |! G; I+ X) t0 }4 Z你用UIStyler只做菜单,连接MFC,然后MFC连接数据库!这样数据库的参数就传递给了UIStyler,读取控件值传递给模型表达式,就能驱动生成了!
回复 支持 反对

使用道具 举报

发表于 2011-6-24 19:57 | 显示全部楼层
MFC的DLL可以办到!但是你要在UG里运行的话最好是UIStyler结合上MFC,MFC调用ACCESS
( ^3 j+ j4 Y! c5 y- `下面是部分代码:(我这是一套的,代码很多也很杂,给你下面部分)# J7 b* G* }* ?5 I6 \, K
BOOL Database_main::OnInitDialog()
- e8 F& C; A0 B4 p1 ^* }0 K" s{" }( b  x, T$ l  v7 r! f
        CDialog::OnInitDialog();8 l, ]6 S( K6 J! d* `
        1 r$ S: l" f, v$ `& c" b
        // TODO: Add extra initialization here
; V! T  r+ s! f% [                try{        
& e9 L" y. g9 C; t        m_pdatabase=new CDatabase();8 X) y% I3 `  Z' ?
        m_pset=new CRecordset();
  R  K) Y4 D/ C0 Y    m_pdatabase->Open(_T("data"),FALSE,FALSE,_T("ODBC;DSN=data"),FALSE);
  L9 s8 D/ O+ q6 F        m_pset->m_pDatabase=m_pdatabase;        , d6 A: V; Z- y1 L0 e
        }
9 y, \! \; U8 m1 v, P0 @8 T. E        catch(CDBException* e){7 X! \+ d# l6 A( k# g5 u9 c
                e->ReportError();. E* l% f$ [; J% h
        e->Delete();
0 r4 M/ i9 ?1 F7 ]6 T            delete m_pset;7 z: m5 D% V/ z7 F) v/ o9 |
                delete m_pdatabase;
5 @9 E, ]9 y7 L. U                return TRUE;}
9 c8 x$ A& c1 f% t! O        DataShow("data");/ y. C9 j4 Q# {( N" ~! {# ^
        return TRUE;  // return TRUE unless you set the focus to a control
7 `; }+ H+ N' O- I; u6 Y4 t$ t* v                      // EXCEPTION: OCX Property Pages should return FALSE
" X. f+ ^, Q' ]7 C' E6 L, N. R. B}
8 c) Y' P, P# V- s; F% u; [& o; G. ~3 T! N0 m9 t3 V- P, S
void Database_main::OnOK() . l, e# x% Y2 r; f5 v1 Z1 }
{
9 o: u& K( @, h% G# N        // TODO: Add extra validation here
, y+ G; F" [. c  U* h   UINT uSelectedCount=m_list_control.GetSelectedCount();
4 @$ I! Z* l( F" q# Rint nItemSel=0;
: e3 W# R6 j6 l& o5 y        nItemSel=m_list_control.GetNextItem(nItemSel-1,LVNI_SELECTED);
: d. k, v1 L/ U! o2 ]                for(int j=0;j<nFieldCount;j++): [# f4 W, n+ i/ G; W9 k8 ^0 j
                    str[j]=m_list_control.GetItemText(nItemSel,j);# F2 m: N( D' Y( t9 B
        }
1 v3 K* D, t4 L- k8 y1 F& t4 Q* ]( p" ~5 e3 L" ~
9 \7 o) R6 W, D1 p: D
, p0 a1 r4 A$ r$ y
        3 ?$ o" z& \5 E
        CDialog::OnOK();
! S0 B& y8 a8 ~# e: c! B, C5 p}: f8 e2 S/ u' o% s

3 b4 B' h3 @4 A$ i) e% G' tvoid Database_main::ClearList()
' T+ ^( M- |2 Q{
# i' w& r% G7 |9 m        //m_list_control.SetExtendedStyle(LVS_EX_FULLROWSELECT);6 }" g3 l# ?# L' ]
        //m_list_control.SetExtendedStyle(LVS_EX_GRIDLINES);
- m& z' P8 O) e        m_list_control.DeleteAllItems();
8 @+ o1 H: ~: E" G, M8 ]3 ]        while(m_list_control.DeleteColumn(0));9 C* @0 c! R8 D
    UpdateWindow();; e% j% |3 {5 i" g2 |8 Z4 L
}
1 D/ \4 O+ O$ V5 J/ A% n9 t////////////////////////////////////////////////////////////////////////////////////8 m" M- q/ s7 i& Z  _( M: A, n
void Database_main:ataShow(CString table_name)
9 Q+ ^2 I. u' y2 Z7 q0 C# B{
, @" a. C6 G: d    ClearList();
' g/ S$ X( O) n# Z5 O1 q: W4 z5 d    CString strSQL;; T+ k$ d4 p1 ~2 Z" s# U1 G
        strSQL="select * from "+table_name;/ b( u- Q0 c( ^% b
        ShowInformation(strSQL);) `9 O& {3 v7 s; y# i3 i) F! U' i
}
  \+ v6 d6 N8 \7 F9 b5 }1 k- w/ d) X& I% M* J' E% r
BOOL Database_main::ShowInformation(CString strSQL)
* L7 f; M1 g3 K2 K2 X) V/ Q{1 r  U. q4 E/ Q# s  n8 C5 G5 u
    if(!m_pdatabase->IsOpen()) return FALSE;
) w+ G8 H: }$ o1 T0 C3 B: y3 ^        if(!m_pset) return FALSE;
5 `$ g% S0 O+ e" [3 N. Y& M        try{
) Q) l; s7 b3 B                BeginWaitCursor();& z& l3 t& A+ `/ T2 ~+ H" m
                if(m_pset->IsOpen()) m_pset->Close();
2 U# Y# G5 W/ o) M                m_pset->Open(CRecordset::dynaset,strSQL);* R8 L! r! V( V% u/ _5 k
                if(!m_pset->IsEOF()); r4 O3 J! N! ~8 p$ {- w4 r
                {m_pset->MoveLast();
  J( n: A) t; p. i                m_pset->MoveFirst();}/ P& Y# S2 U! r3 u- |, p: a4 R  [
                nFieldCount=m_pset->GetODBCFieldCount();; g% k& c0 [1 L$ U. m
                CODBCFieldInfo fieldinfo;
# ]' m0 k8 D; U5 q6 W  T                for(int n=0;n<nFieldCount;n++){- w6 e' X% V% b9 z3 ~
                        m_pset->GetODBCFieldInfo(n,fieldinfo);
4 \+ g( |; f/ ]) f! O- d! n( R* ~                        int nWidth=m_list_control.GetStringWidth(fieldinfo.m_strName)+35;
+ b- c$ \. P% E. K( K: M0 W                        m_list_control.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
; e. p5 x5 |3 M+ N/ l  l6 `- J* `                }
' c5 @: u3 u9 \* C, Q' L                CString strValue;
! s% x4 F& \% s% ], @0 k                m_pset->MoveFirst();
) g; }' S  z$ O! L% h& a. F. D                int nCount=0;9 _  c4 C; T5 w( T% p4 T  ?$ ~+ K
                while(!m_pset->IsEOF()){
0 C1 C# }5 V, F3 Z% O& @6 G                        m_list_control.InsertItem(nCount,strValue);9 q" ?" F& u8 P6 {
                        for(int j=0;j<nFieldCount;j++){
! s5 X0 K/ T2 Q+ Q% X1 g                                m_pset->GetFieldValue(j,strValue);
) K) n6 r$ M6 n$ M                                m_list_control.SetItemText(nCount,j,strValue);; o$ R5 X. D# \, [8 z, r4 `
                        }9 N, k3 L. G5 {4 d
                        m_pset->MoveNext();
, d. u; D) e- I, M2 c4 w& F. T! Z                        nCount++;. ^7 h9 b2 Y& R8 K- Z" m
                }; Z3 a$ d2 }# V! J3 F! [
                EndWaitCursor();
. ^1 t# i, _" m: X        }
' e2 ~) J( o3 }        catch(CDBException *e){
. ?8 ]2 l8 T/ \7 {) D. y                e->Delete();
1 k) n5 E! `& D9 \$ e) j; W1 ~8 U        EndWaitCursor();
( d1 z; @0 a0 E  N8 j+ g: R                return FALSE;$ e: ^0 d7 w2 Y, h2 L
        }
! \5 \# b( F. U# f/ s8 P* D        return TRUE;
! E5 [$ S4 r. G' G: G2 B- r+ E5 l}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-6-25 12:17 | 显示全部楼层
回复 9# UG二次开发毕设 5 M8 K1 ], M" I, H8 O* P
你一套的?那能不能麻烦你打包发给我看看哦,我再理解理解,我qq是279355053,万分感谢额。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-19 06:59 , Processed in 0.049620 second(s), 22 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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