版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、一直在用OCC作項目,但這方面的中文資料很少,看來OCC在中國還不是十分普及;后來,項目中使用OCC和DirectX結合使用,取得了很好的效果; 隨著OCC6.3版本的推出,Open CASCADE在速度方面已有了很大的改變。以下為一些OCC的基礎知識,愿與各位OCC愛好者共同學習;一:OCC中的基礎類:gp_Pnt在OCC中,gp_Pnt表示一個頂點,gp_Vec表示一個向量,可以用兩個頂點來生成一個向量。比如:gp_Pnt P1(0,0,0);
2、60; gp_Pnt P2(5,0,0); gp_Vec V1 (P1,P2);向量有一個方法.IsOpposite(),可以用來測試兩個向量的方向是相對還是平行;比如: &
3、#160; gp_Pnt P3(-5,0,2);gp_Vec V2 (P1,P3); &
4、#160; Standard_Boolean result =V1.IsOpposite(V2,Precision:Angular(); 另外向量還有一些重要方法:-Sta
5、ndard_Real Magnitude() const;計算向量的大小;-Standard_Real SquareMagnitude() const;計算向量的平方;-向量的加減乘除操作;-向量的單位化;-通過一個點,線,面得出其鏡像的向量;-向量的旋轉,平移,縮放;具體的函數(shù)名稱可以看OCC的頭文件說明; 有時需要決定一組空間點是位于一個點;一條直線,或一個平面,或一個空間:OCC中提供了相應的算法;比如:TColgp_Array1OfPnt array (1,5); / sizing array
6、 array.SetValue(1,gp_Pnt(0,0,1); array.SetValue(2,
7、gp_Pnt(1,2,2); array.SetValue(3,gp_Pnt(2,3,3);
8、60; array.SetValue(4,gp_Pnt(4,4,4);
9、160; array.SetValue(5,gp_Pnt(5,5,5); 1 / 45 &
10、#160; &
11、#160; GProp_PEquation PE (array,1.5 );
12、;
13、; if (PE.IsPoint() /是否是同一個點 gp_Lin L;
14、 if (PE.IsLinear() L = PE.Line(); /是否位于一條直線上;
15、0; if (PE.IsPlanar() /是否在一個平面內(nèi); if (PE.IsSpace() gp_Dir類:此類用來描述3D空間中的一個單位向量;常用方法:(1):IsEqual(const gp_Dir& Other,const Standard_Real AngularTolerance) const;兩個單位向量是否相
16、等;(2):IsNormal(const gp_Dir& Other,const Standard_Real AngularTolerance) const;兩個單位向量的夾角是否是PI/2;(3):IsOpposite(const gp_Dir& Other,const Standard_Real AngularTolerance) const;兩個單位向量是否方向相反;(4):IsParallel(const gp_Dir& Other,const Standard_Real AngularTolerance) const;兩個單位向量夾角O或PI;(5):Angl
17、e(const gp_Dir& Other) const;求兩個向量之間的夾角;(6):void CrossCross(const gp_Dir& V1,const gp_Dir& V2) ;計算三個向量之間的叉積;(7):Standard_Real Dot(const gp_Dir& Other) const;計算點積;(8):Standard_Real DotCross(const gp_Dir& V1,const gp_Dir& V2) const;計算叉積再點積;(9):gp_Dir Reversed() const;得到反方向,
18、0;在OCC中用 gp_Lin2d 類,來生成一個二維空間的直線,有它的原點和單位向量; gp_Ax2d 類:通過原點和X方向單位和Y方向單位建立一個二維坐標系;利用sense參數(shù)可以決定是右手系還是左手系;可以利用平移、旋轉、縮放、鏡像來更改坐標系;類似地,gp_Ax3類:用來描述一個3D空間的坐標系。而gp_Ax2類用來表示一個二維空間坐標系;可以為右手系,也可以是左手系; 二、曲線類GeomAPI和GeomConvert包:GeomAPI開發(fā)包提供了一個幾何體的可編程應用程序接口;比如:求點P和曲線C的距離D: D = Geom
19、API_ProjectPointOnCurve(P,C);或者GeomAPI_ProjectPointOnCurve PonC(P,C); D = PonC.LowerDistance(); GeomConvert包提供了一些全局函數(shù),可以用來實現(xiàn)轉化一個Geom曲線為BSpline曲線等;比如:Handle(Geom_BSplineSurface) aPipeSurface =
20、60; Handle(Geom_BSplineSurface):DownCast(aPipe.Surface(); Handle(Geom_BSplineSurface) anotherBSplineSurface = &
21、#160; GeomConvert:SplitBSplineSurface(aPipeSurface,1,2,3,6); OCC中三維幾何曲線的類型有:-線-園-橢圓-二次曲線-拋物線-Bezier曲線-BSpline曲線可以將一個二維的幾何曲線轉化為某個平面內(nèi)的一個三維曲線:比如:Standard_Real radius = 5;
22、60; gp_Ax2d ax2d(gp_Pnt2d(2,3),gp_Dir2d(1,0); /生成一個二維園
23、160; Handle(Geom2d_Circle) circ2d = new Geom2d_Circle(ax2d,radius);
24、
25、 gp_Ax2d circ2dXAxis = circ2d->XAxis(); &
26、#160; &
27、#160; / 然后,在這個平面里轉化為三維曲線; Handle(Geom_Curve) C3D = GeomAPI:To3d(circ2d,gp_Pln(gp_Ax3(gp:XOY(); Handle(Geom_Circle) C3DCircle = Handle(Geom_Circle):DownCas
28、t(C3D);
29、; gp_Ax1 C3DCircleXAxis = C3DCircle->XAxis(); &
30、#160; 另外,可以以將一個三維曲線
31、,投影到一個平面內(nèi),從而生成一個二維曲線gp_Pln ProjectionPlane(gp_Pnt(1,1,0),gp_Dir( 1,1,1 );
32、; Handle(Geom2d_Curve) C2D = GeomAPI:To2d(C3D,ProjectionPlane);
33、0; Handle(Geom2d_Circle) C2DCircle =Handle(Geom2d_Circle):DownCast(C2D); &
34、#160; gp_Ax2d C2DCircleXAxis = C2DCircle->XAxis(); 將一個基本幾何圖形進行空間變換可以使用它自帶的函數(shù):比如:Handle(Geom_Geometry) aRotatedEntity = circle->Rotated(gp:OZ(),PI/4);如果想獲取圖形的類型名稱:
35、60; Standard_CString aRotatedEntityTypeName = aRotatedEntity->DynamicType()->Name(); gp_Parab2d類:描述一個平面內(nèi)的拋物線;示例:gp_Pnt2d P(2,3);
36、 gp_Dir2d D(4,5); gp_Ax22d A(P,D);
37、0; gp_Parab2d Para(A,6); GCE2d_MakeParabola類:生成一個拋物線圖形; Geom2d_BSplineCurve類:描述樣條曲線; Geom2dAPI_Interpolate類:通過一組點來修改一個樣條曲線; FairCurve_Batten類:用一個常量或線性增加的值來構造曲線;可以用來設計木紋或塑料板條;圖形為二維的,可以模擬物理樣條或板條.Geom2d_TrimmedCurve類:此類通過兩個值,定義曲線的一部分,-可以用來計算曲線
38、的參數(shù)值和點坐標;-可以得到曲線的一般特征,比如連續(xù)的等級,封閉特點,周期性,邊界參數(shù);-當用一個矩陣應用于曲線或原始曲線轉化后進行相應參數(shù)的改變;所有的曲線必須幾何連續(xù),曲線至少一階可導。一般來說,在生成一個曲線時,要先檢查一下所應用的參數(shù)是否可以生成一個光滑曲線;否則會出現(xiàn)錯誤;另外注意一點:不可以構造空長度的曲線或自相交的曲線;此類的基類是Geom2d_BoundedCurve類:它是一個抽象類;描述二維空間中的邊界曲線的一般行為;除了Geom2d_TrimmedCurve是它的一個派生類外,它還有二個派生類:- Geom2d_BezierCurve- Geom2d_BSplineCur
39、veGeom2d_BoundedCurve類的基類是Geom2d_Curve類:Geom2d_Curve:抽象類;此抽象類描述了2D空間的曲線的一般特征;派生出的類有多個:包括直線,園,二次曲線,Bizier,BSpline曲線等;這些曲線的特點是可以參數(shù)化; Geom2d_Curve類的基類是Geom2d_Geometry類;此抽象類主要定義了曲線的變換,平移,旋轉,縮放及拷貝等方法; Geom2d_Geometry類的基類是MMgt_TShared類;此抽象類為管理對象的基類,可以引用計數(shù),及刪除方法; Standard_Transient:此抽象類為所有類共
40、同的基類;Geom2dAPI_InterCurveCurve類:此類用來實現(xiàn)二維曲線的相交;一種情況是曲線與曲線的相交,另外一種情況是曲線自身的相交;主要方法有:-Standard_Integer NbPoints() const;相交點數(shù);-Standard_Integer NbSegments() const;切線相交數(shù);-void Segment(const Standard_Integer Index,Handle(Geom2d_Curve)& Curve1,Handle(Geom2d_Curve)& Curve2)const;返回其中一個線段; 下面的示例是
41、兩個曲線相交的例子:首先,生成第一個曲線,在這里,應用點數(shù)組來生成一個曲線;-定義數(shù)組Handle(TColgp_HArray1OfPnt2d) harray = new TColgp_HArray1OfPnt2d (1,5); / sizing harray -輸入點數(shù)組的值harray->SetValue(1,gp_Pnt2d (0,0);
42、 harray->SetValue(2,gp_Pnt2d (-3,1);
43、0; harray->SetValue(3,gp_Pnt2d (-2,5);
44、160; harray->SetValue(4,gp_Pnt2d (2,9); harray->SetValue(5,gp_Pnt2d (-4,14);
45、0; -檢測一下點與點之間是否為同一點;0.01為公差值,依實際需要可以更改此參數(shù); &
46、#160; G
47、eom2dAPI_Interpolate anInterpolation(harray,Standard_False,0.01); -生成曲線anInterpolation.Perform();
48、 Handle(Geom2d_BSplineCurve) SPL = anInterpolation.Curve(); -第二個曲線用兩點來生成
49、160; gp_Pnt2d P1(-1,-2);g
50、p_Pnt2d P2(0,15);gp_Dir2d V1 = gp:DY2d(); Handle(
51、Geom2d_TrimmedCurve) TC1= GCE2d_MakeSegment(P1,V1,P2); -下面進行曲線的求交
52、60;
53、60; Standard_Real tolerance = Precision:Confusion(); Geom2dAPI_InterCurveCurve ICC (SPL,TC1,tolerance); &
54、#160;-得到交點 Standard_Integer NbPoints =ICC.NbPoints(); gp
55、_Pnt2d PK;
56、160; for (Standard_Integer k = 1;k<=NbPoints;k+)
57、0;
58、0; PK = ICC.Point(k);
59、0; / 針對每個交點,進行相應處理; &
60、#160; Geom2d_OffsetCurve類
61、:此類用來實現(xiàn)偏移曲線;比如:-生成一個曲線TColgp_Array1OfPnt2d array (1,5); / sizing array array.SetValue(1,gp_Pnt2d (-4,0); array.SetValue(2,gp_Pnt2d (-7,2); array.SetValue(3,gp_Pnt2d (-6,3
62、); array.SetValue(4,gp_Pnt2d (-4,3); array.SetValue(5,gp_Pnt2d (-3,5); Handle(Ge
63、om2d_BSplineCurve) SPL1 = Geom2dAPI_PointsToBSpline(array); -生成一個偏移曲線
64、0; Standard_Real dist = 1;
65、; Handle(Geom2d_OffsetCurve) OC =
66、0; new Geom2d_OffsetCurve(SPL1,dist);
67、 Standard_Boolean result = OC->IsCN(2); GccAna_Pnt2dBisec類此類實現(xiàn)兩點之間的等分線.示例:gp_Pnt2d P1(1,2); gp_P
68、nt2d P2(4,5); gp_Lin2d L; GccAna_Pnt2dBisec B(P1,P2); if (B.IsDone() &
69、#160; L = B.ThisSolution(); 因為所生成的為直線,所以顯示時要轉化為線段:if (B.IsDone() Handle(Geom2d_TrimmedCurve) aLine = GCE2d_MakeSegment(L,-8,8); Handle(ISess
70、ion2D_Curve) aCurve = new ISession2D_Curve(aLine); aDoc->GetISessionContext()->Display(aCurve, Standard_False); gce_MakeCirc2d類用來創(chuàng)建園:創(chuàng)建園的方法很多,主要構造方法有:-園心和通過的一點;-通過一個園和一個距離值,創(chuàng)建一個同心園;-三點決定一個園;-園心和半徑;gp_Elips2d類:可以生
71、成一個橢園,也可以生成橢園上的一段園弧;比如:Standard_Real major = 12;
72、 Standard_Real minor = 4;
73、 gp_Ax2d axis = gp:OX2d();
74、; gp_Elips2d EE(axis,major,minor);
75、60; Handle(Geom2d_TrimmedCurve) arc = GCE2d_MakeArcOfEllipse(EE,0.0,PI/4); 上面是利用長短軸的方法構造橢圓,也可以用二次方程的方式來構造橢園;其中橢園類中方法可以求出焦點1和焦點2的位置,兩焦點之間的位置,離心率;旋轉,平移,縮放等操作. 三、關于面的類gp_Pln類:定義一個平面,構造的方法可以是點法式,或通過ABCD系數(shù);另外,還提供了一些常用的方法,比如:-求點到平面,線到平面,平面與平面的距離及平方距離;-點是否在平面內(nèi),線是否在平面內(nèi);-通過一個點,一個軸的鏡像平面;-
76、平面的旋轉,縮放與平移;Geom_ElementarySurface類:此類用來描述一個表面,此類的派生類有:平面;園柱面;錐面;球面;園環(huán)面;它的基類是Geom_Surface,是一個抽象類;Geom_Surface類的基類是Geom_Geometry類; Geom_RectangularTrimmedSurface類:用來生成一個有邊界的平面;比如:Handle(Geom_Plane) aProjectionPlane = GC_MakePlane(ProjectionPlane).Value(); Handle(Geom_Recta
77、ngularTrimmedSurface) aProjectionPlaneSurface= new Geom_RectangularTrimmedSurface(aProjectionPlane,-8.,8.,-12.,12.); DisplaySurface(aDoc,aProjectionPlaneSurface);此類的基類是Geom_BoundedSurface類;此類的兄弟類還有- Geom_BezierSu
78、rface,- Geom_BSplineSurfaceConicalSurface類:用來創(chuàng)建一個園錐表面;構造表面的方法有:-已知一個園錐表面,和空間一點,過此點的平行于已知園錐表面;-已知一個園錐表面,和一個距離,創(chuàng)建一個平行于已知園錐表面的園錐表面;-通過四個點構造一個園錐表面;-通過一個軸和兩個點;-通過兩個點和兩個半徑;GeomAPI_IntCS類:此類用來計算一個園弧和和一個表面的交點或相交線段;GeomFill_BSplineCurves類:此類用來構造一個可以填充的BSpline表面,構造它可以用兩個三個或四個BSpline曲線作為邊界;填充類型有三種:enum GeomFil
79、l_FillingStyle GeomFill_StretchStyle,GeomFill_CoonsStyle,GeomFill_CurvedStyle;以下示例為用兩個樣條曲線生成一個表面:GeomFill_FillingStyle Type = GeomFill_StretchStyle;
80、160; GeomFill_BSplineCurves aGeomFill1(SPL1,SPL2,Type);
81、 Handle(Geom_BSplineSurface) aBSplineSurface1 = aGeomFill1.Surface();GeomFill_Pipe類:此類用來構造一個pipe,沿著一個路徑sweep一個截面,這兩個都是曲線類型;一般來說,結果是一個BSpline表面;常見的有幾種方法:-給定一個路徑和一個半徑,截面是個園,位置是路徑的第一個點,比如:GeomFill_Pipe aPipe(SPL1,1);
82、; aPipe.Perform(); &
83、#160; Handle(Geom_Surface) aSurface= aPipe.Surface();
84、160; Standard_CString aSurfaceEntityTypeName="Not Computed" if (!aSurface.IsNull()
85、 aSurfaceEntityTypeName = aSurface->DynamicType()->Name(); -給定一個路徑和一個截面。比如:Handle(Geom_Ellipse) E = GC_M
86、akeEllipse( gp:XOY() ,3,1).Value(); GeomFill_Pipe aPipe2(SPL1,E); aPipe2.P
87、erform();
88、60;Handle(Geom_Surface) aSurface2= aPipe2.Surface(); Standard_CString aSurfaceEntityTypeName2="Not Computed" if (!aSurface2.
89、IsNull() aSurfaceEntityTypeName
90、2 = aSurface2->DynamicType()->Name(); aSurface2->Translate(gp_Vec(5,0,0); -給定一個路徑和兩個截面,中間截面為過度線;示例:Handle(Geom_TrimmedCurve) TC1 = &
91、#160; GC_MakeSegment(gp_Pnt(1,1,1),gp_Pnt(5,5,5); Handle(Geom_Trimme
92、dCurve) TC2 = GC_MakeSegment(gp_Pnt(1,1,0),gp_Pnt(4,5,6);
93、0; GeomFill_Pipe aPipe3(SPL1,TC1,TC2);
94、; aPipe3.Perform();
95、 Handle(Geom_Surface) aSurface3 = aPipe3.Surface(); Standard_CString aSurfaceEntityTypeName3="Not Computed"
96、;if (!aSurface3.IsNull()
97、
98、 aSurfaceEntityTypeName3 = aSurface3->DynamicType()->Name(); aSurface3->Translate(gp_Vec(10,0,0);
99、0; -給定一個路徑和N個截面,中間為過渡線;一般
100、情況下,所生結果為:NURBS,但是,在一些特殊的情況下,可以生成平面,園柱,球,園錐等;參數(shù),U,沿著截面的方向,V沿著路徑方向;Geom_BezierSurface類:生成一個Bezier表面;Geom_OffsetSurface類:用來偏移一個表面;比如:Standard_Real offset = 1;
101、 Handle(Geom_OffsetSurface) GOS = new Geom_OffsetSurface(aGeomSurface, offset);Geom_SweptSurface類:有兩個派生類,分別用來生成一個回轉
102、體表面和一個延展體表面; Geom_SurfaceOfLinearExtrusion:用來描述一個線性延展表面;它的基類是:Geom_Surface類比如:Handle(Geom_BSplineCurve) aCurve =GeomAPI_PointsToBSpline(array).Curve(); gp_Dir aDir(1,2,3);
103、; Handle(Geom_SurfaceOfLinearExtrusion) SOLE =new Geom_SurfaceOfLinearExtrusion(aCurve,aDir);
104、0; Handle(Geom_RectangularTrimmedSurface) aTrimmedSurface =new Geom_RectangularTrimmedSurface(SOLE,-10,10,false); Geom_SurfaceOfRevolution類,表示一個回轉體表面;比如:Handle(Geom_BSplineCurve) aCurve = GeomAPI_PointsToBSpline(array).Curve();
105、60; Handle(Geom_SurfaceOfRevolution) SOR =new Geom_SurfaceOfRevolution(aCurve,gp:OX(); 1:利用一個二維數(shù)組來生成曲面的方法:TColgp_Array2OfPnt array3 (1,5,1,5);
106、0; array3.SetValue(1,1,gp_Pnt (-4,-4,5);.array3.SetValue(2,1,gp_Pnt (-2,-4,4);.Handle(Geom_BSplineSurface) aSurf2 =GeomAPI_PointsToBSplineSurface(array3).Surface(); 2:GeomAPI_ExtremaSurfaceSurface類:計算兩個表面之間的極值點;主要方法:(1):Quantity_Length LowerDistance() const;計算
107、兩個表面的最短距離;(2):Standard_EXPORT void LowerDistanceParameters(Quantity_Parameter& U1,Quantity_Parameter& V1,Quantity_Parameter& U2,Quantity_Parameter& V2) const;得到第一個表面上的極值點的UV參數(shù)和第二個表面上的極值點的UV參數(shù);(3):void NearestPoints(gp_Pnt& P1,gp_Pnt& P2) const;得到第一個表面上的極值點和第二
108、個表面上的極值點;(4): Quantity_Length Distance(const Standard_Integer Index) const;得到第N個極值點的距離;(5):Standard_Integer NbExtrema() const;極值的數(shù)目;.示例:GeomAPI_ExtremaSurfaceSurface ESS(aSurf1,aSurf2);Quantity_Length dist = ESS.LowerDistance();gp_Pnt P1,P2;ESS.NearestPoints(P1,P2); gp_Pnt P3,P4;Handle(Geom_Cur
109、ve) aCurve;Standard_Integer NbExtrema = ESS.NbExtrema();for(Standard_Integer k=1;k<=NbExtrema;k+) ESS.Points(k,P3,P4);
110、 aCurve= GC_MakeSegment(P3,P4).Value(); DisplayCurve(aDoc,aCurve,Quantity_NOC_YELLOW3,false);一些OCC的基礎知識,愿與各位OCC愛好者共同學習;mail:tongabcd 一:關于體的類BRepBuilderAPI_MakeVertex類創(chuàng)建點; BRepBui
111、lderAPI_MakeEdge類此類用來創(chuàng)建邊;比如,由直線生成邊:gp_Lin line(gp_Ax1(gp_Pnt(10,10,10),gp_Dir(1,0,0); WhiteEdge = BRepBuilderAPI_MakeEdge(line,-20,10);下面為生成四分之一園邊:gp_Elips Elips(gp_Ax2(gp_Pnt(10,0,0),gp_Dir(1,1,1),60,30); RedEdge = BR
112、epBuilderAPI_MakeEdge(Elips,0,PI/2);下面是由曲線生成邊:Handle (Geom_BezierCurve) curve = new Geom_BezierCurve(array);BRepBuilderAPI_MakeEdge ME (curve);GreenEdge = ME;V3 = ME.Vertex1();V4 = ME.Vertex2(); BRepBuilderAPI_MakeWire類用來創(chuàng)建一個Wire類; 用一個Wire和一個邊來生成一個新的Wire:ExistingWire = BRepBuilderAPI_MakeW
113、ire(Edge2); Edge3 = BRepBuilderAPI_MakeEdge(gp_Pnt(-300,0,-80),gp_Pnt(-90,20,-30); BRepBuilderAPI_MakeWire MW1(ExistingWire,Edge3); if (MW1.IsDone() YellowWire = MW1;用一個Wire和添加邊
114、的方法來生成Wire:BRepBuilderAPI_MakeWire MW; MW.Add(ExistingWire2); MW.Add(Edge5); MW.Add(Edge6); MW.Add(Edge7);
115、 if (MW.IsDone() WhiteWire = MW.Wire(); LastEdge = MW.Edge(); &
116、#160; LastVertex = MW.Vertex(); BRepBuilderAPI_MakeFace類生成一個面;有多種生成面的方法;-通過一個封閉曲線生成面:BRepBuilderAPI_MakeFace(curve);-通過一個Wire生成面:BrownFace = BRepBuilderAPI_MakeFace(YellowWire);Bnd_Box2d類:定義一個二維空間的邊界盒,可以得出邊界盒各個點的值,有時,在某個方向是無限大,這種情況下,稱為在
117、此方向上是開放的;示例:Bnd_Box2d aCBox; Geom2dAdaptor_Curve GACC (C);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國免持聽筒數(shù)據(jù)監(jiān)測研究報告
- 2025年中國螺絲緊固劑市場調(diào)查研究報告
- 蔬菜配送中心物流服務協(xié)議
- 停車場翻新合同解除
- 2025至2031年中國蒸煮香腸腸衣行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國摩托車全套塑件行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國一體化變頻電源行業(yè)投資前景及策略咨詢研究報告
- 教育體系中體能測試的制度建設
- 吊車油漆施工法律合規(guī)措施
- 教育心理學視角下的學生心理干預策略
- GA 1551.5-2019石油石化系統(tǒng)治安反恐防范要求第5部分:運輸企業(yè)
- 拘留所教育課件02
- 沖壓生產(chǎn)的品質(zhì)保障
- 《腎臟的結構和功能》課件
- 2023年湖南聯(lián)通校園招聘筆試題庫及答案解析
- 上海市徐匯區(qū)、金山區(qū)、松江區(qū)2023屆高一上數(shù)學期末統(tǒng)考試題含解析
- 護士事業(yè)單位工作人員年度考核登記表
- 天津市新版就業(yè)、勞動合同登記名冊
- 產(chǎn)科操作技術規(guī)范范本
- 人教版八年級上冊地理全冊單元測試卷(含期中期末試卷及答案)
- 各種焊工證件比較和釋義
評論
0/150
提交評論