当前位置:文档之家› COM组件教程

COM组件教程

COM组件教程
COM组件教程

步骤1:创建项目

Visual Studio .NET 2003

本教程将带领您逐步骤通过一个非属性化ATL 项目,该项目创建一个显示多边形的ActiveX 对象。此对象包括使用户得以更改组成多边形的边数的选项以及刷新显示的代码。

注意本教程创建与Polygon(多边形)示例相同的源代码。如果您希望避免手动输入源代码,则可以从多边形示例摘要下载源代码。然后,您可以一边参考Polygon 源代码一边阅读教程,或者用它来检查自己的项目中是否有错误。

使用“ATL 项目向导”创建初始ATL 项目

1.在Visual Studio 开发环境中,在“文件”菜单上单击“新建”,然后单击“项目”。

2.单击“Visual C++ 项目”文件夹并选择“ATL 项目”。

3.键入Polygon作为项目名称:

源代码的位置通常默认为My Documents\Visual Studio Projects,并且将自动创建一个新

文件夹。

4.单击“确定”,“ATL 项目向导”随即打开。

5.单击“应用程序设置”以查看可用选项:

6.在创建控件时,如果控件必须是进程内服务器,则将“服务器类型”保留为DLL。

7.本教程中将不使用属性,因此请确保没有选中“属性化”复选框。

8.将其他选项保留在它们的默认值,然后单击“完成”。

“ATL 项目向导”将通过生成若干个文件来创建项目。可以通过展开Polygon 对象在解决方案资源管理器中查看这些文件。下面列出了这些文件。

在下一步骤中,您将向项目添加控件。

步骤2:添加控件

Visual Studio .NET 2003

在此步骤中,您将向项目添加控件,生成此控件,并在Web 页中对其进行测试。向ATL 项目添加对象

1.在“类视图”中,右击“Polygon”项目。

2.指向快捷菜单上的“添加”,然后单击“添加类”。

即会出现“添加类”对话框。左侧的树结构中列出了不同的对象类别:

3.展开树结构并单击“ATL”文件夹。

4.从右侧的模板列表选择“ATL 控件”。单击“打开”。“ATL 控件向导”将打开,从中可以配置控件:

5.键入PolyCtl作为简称,并注意其他字段将自动完成。先不要单击“完成”,因为需要做一

些更改。

“ATL 控件向导”的“名称”页包含以下字段:

需要在“ATL 控件向导”中另外进行几个设置。

启用对多格式错误信息和连接点的支持

1.单击“选项”打开“选项”页。

2.选择“连接点”复选框。这将创建对IDL 文件中输出接口的支持。

还可以使控件成为可插入的,这意味着它可以嵌入到支持嵌入对象的应用程序中,如Excel 或Word。使控件成为可插入的

1. 单击“外观”打开“外观”页。

2. 选择“可插入”复选框,默认情况下该复选框会被清除。

对象显示的多边形将具有纯填充颜色,因此需要添加“填充颜色”常用属性。

添加“填充颜色”常用属性并创建控件

1.单击“常用属性”打开“常用属性”页。

2.在“不支持”下,向下滚动可能常用属性的列表。双击“Fill Color”以将其移动到“支持”列表:

3.这将完成控件的选项。单击“完成”。

在向导创建控件时,有若干代码改变了并添加了一些文件。创建了以下文件:

向导还执行了以下代码更改:

?向stdafx.h 和stdafx.cpp 文件添加了#include语句,以包含支持控件所必需的ATL 文件。

?更改了Polygon.idl 以包含新控件的详细信息。

?将新控件添加到了Polygon.cpp 中的对象映射。

现在可以生成控件,查看它的运行情况。

生成和测试控件

生成和测试控件

1.在“生成”菜单上单击“生成Polygon”。

2.控件完成了生成后,在解决方案资源管理器中双击PolyCtl.htm。将显示包含控件的HTML

Web 页。您应看到一个矩形和文本ATL 7.0 : PolyCtl。这便是您的控件。

注意当完成本教程时,如果收到DLL 文件无法创建的错误信息,请关闭PolyCtl.htm 文件和“ActiveX 控件测试”容器并重新生成解决方案。如果仍无法创建DLL,请重新启动计算机或注销(如果您使用的是“终端服务”)。

下一步,您将向控件添加自定义属性。

步骤3:向控件添加属性

Visual Studio .NET 2003

IPolyCtl是包含控件的自定义方法和属性的接口,您将在其中添加属性。

使用“添加属性向导”添加属性

1.在“类视图”中右击IPolyCtl(展开“Polygon”分支找到它)。

2.在快捷菜单上单击“添加”,然后单击“添加属性”。

“添加属性向导”随即出现。

3.在属性类型的下拉列表中,选择“short”。

4.键入Sides作为属性名:

5.单击“完成”完成属性的添加。

将属性添加到接口时,MIDL(编译 .idl 文件的程序)定义检索其值的Get方法和设置新值的Put 方法。这些方法的命名方式是在属性名的前面加上put_和get_。

“添加属性向导”将必需的行添加到 .idl 文件。它还将Get和Put函数原型添加到PolyCtl.h 中的类定义,并将一个空实现添加到PolyCtl.cpp。您可以通过打开PolyCtl.cpp 并查找函数get_Sides 和put_Sides来进行检查。

虽然现在有了设置和检索属性的主干函数,但需要有地方存储属性。您将创建存储属性的变量,并相应地更新函数。

创建存储属性的变量并更新put 和get 方法

1.从解决方案资源管理器中,打开PolyCtl.h 并在类定义末尾的m_clrFillColor定义后

添加下行:

复制

short m_nSides;

2.设置m_nSides的默认值。向PolyCtl.h 中的构造函数添加一行,使默认形状成为三角形:

复制

CPolyCtl()

{

m_nSides = 3;

}

3.实现Get和Put方法。get_Sides和put_Sides函数声明已经添加到PolyCtl.h。

将以下代码添加到PolyCtl.cpp 以完成这两个方法:

复制

STDMETHODIMP CPolyCtl::get_Sides(short *pVal)

{

*pVal = m_nSides;

return S_OK;

}

STDMETHODIMP CPolyCtl::put_Sides(short newVal)

{

if (newVal > 2 && newVal < 101)

{

m_nSides = newVal;

return S_OK;

}

else

return Error(_T("Shape must have between 3 and 100 si

des"));

}

get_Sides方法通过pVal指针返回Sides属性的当前值。在put_Sides方法中,代码确保用户将Sides属性设置为可接受的值。最小值必须是2,而且由于对每个边都要使用一系列点,100 是合理的最大值限制。

您现在有了一个名为Sides的属性。下一步,您将更改绘图代码以便使用它。

步骤5:添加事件

Visual Studio .NET 2003

在此步骤中,您将把ClickIn和ClickOut事件添加到ATL 控件。如果用户在多边形的内部单击,将激发ClickIn事件;如果用户在外部单击,将激发ClickOut。添加事件的任务如下:

添加ClickIn和ClickOut方法

?生成类型库

?实现连接点接口

添加ClickIn 和ClickOut 方法

您在第 2 步中创建ATL 控件时,选择了“连接点”复选框。这在Polygon.idl 文件中创建了

_IPolyCtlEvents接口。请注意,接口名称以下划线开头。此约定指示该接口是内部接口。这样,允许浏览COM 对象的程序便可以选择不将此接口显示给用户。还请注意,选择“连接点”时在Polygon.idl 文件中添加了下面的行,指示_IPolyCtlEvents 是默认源接口:

[default, source] dispinterface _IPolyCtlEvents;

源属性指示控件为通知的源,因此它将对容器调用此接口。

现在将ClickIn和ClickOut方法添加到_IPolyCtlEvents接口。

添加ClickIn 和ClickOut 方法

1.在“类视图”中,展开Polygon 和PolygonLib 以显示_IPolyCtlEvents。

2.右击_IPolyCtlEvents。在快捷菜单上单击“添加”,然后单击“添加方法”。

3.选择void作为“返回类型”。

4.在“方法名称”框中输入ClickIn。

5.在“参数属性”下,选中“in”框。

6.选择“LONG”作为“参数类型”。

7.键入x作为参数名,然后单击“添加”。

8.重复第5 步到第7 步,这次键入y作为参数名。

9.单击“完成”。

10.重复以上步骤,用相同的LONG参数x和y,相同的“参数属性”和相同的void返回类

型定义ClickOut方法。

检查Polygon.idl 文件,查看代码是否添加到了_IPolyCtlEvents调度接口。Polygon.idl 文件中的_IPolyCtlEvents调度接口现在看起来应像这样:

复制

dispinterface _IPolyCtlEvents

{

properties:

methods:

[id(1), helpstring("method ClickIn")] void ClickIn([in]LONG x, [in] L ONG y);

[id(2), helpstring("method ClickOut")] void ClickOut([in] LONG x, [in] LONG y);

};

ClickIn和ClickOut方法接受单击点的x 和y 坐标作为参数。

生成类型库

现在请生成类型库,因为“连接点向导”将用它来获取构造控件的连接点接口和连接点容器接口所需的信息。

生成类型库

?重新生成项目。

- 或-

?在“解决方案资源管理器”中右击Polygon.idl 文件,并在快捷菜单上单击“编译”。

这将创建Polygon.tlb 文件,它就是您的类型库。从解决方案资源管理器中看不见Polygon.tlb 文件,因为它是二进制文件,无法直接查看和编辑。

实现连接点接口

为您的控件实现一个连接点接口和一个连接点容器接口。在COM 中,事件通过连接点机制来实现。为了从COM 对象接收事件,容器建立一个到COM 对象实现的连接点的报告连接。由于COM 对象可以有多个连接点,COM 对象还实现连接点容器接口。通过该接口,容器可以确定哪些连接点受支持。

实现连接点的接口称为IConnectionPoint,实现连接点容器的接口称为IConnectionPointContainer。

为了帮助实现IConnectionPoint,您将使用“实现连接点向导”。该向导通过读取类型库并为每个可

以激发的事件实现函数来生成IConnectionPoint接口。

使用“实现连接点向导”

1.在“类视图”中,右击控件的实现类CPolyCtl。

2.在快捷菜单上单击“添加”,然后单击“添加连接点”。

3.从“源接口”列表中选择“_IPolyCtlEvents”并双击它,以将它添加到“实现连接点”列。单击“完成”。

将生成连接点的代理类,这里是指CProxy_IPolyCtlEvents。

如果在解决方案资源管理器中查看生成的_IPolyCtlEvents_CP.h 文件,则将看到它包含一个名为CProxy_IPolyCtlEvents的类,该类是从IConnectionPointImpl派生的。

_IPolyCtlEvents_CP.h 还定义了两个方法Fire_ClickIn和Fire_ClickOut,它们接受两个坐标参数。当您需要从控件中激发事件时,将调用这些方法。

向导还将CProxy_PolyEvents和IConnectionPointContainerImpl添加到了控件的多重继承列表。向导还通过将适当的项添加到COM 映射,为您公开了IConnectionPointContainer。

您已完成了实现支持事件的代码。现在,添加一些代码以在适当的时候激发事件。记住,当用户在控

件中单击左鼠标按钮时,您将激发ClickIn或ClickOut事件。若要了解用户何时单击按钮,请添加WM_LBUTTONDOWN消息的处理程序。

为WM_LBUTTONDOWN 消息添加处理程序

1.在“类视图”中,右击CPolyCtl 类,并在快捷菜单上单击“属性”。

2.在“属性”窗口中,单击“消息”图标,然后从左边的列表中单击“WM_LBUTTONDOWN”。

3.从出现的下拉列表中,单击“<添加> OnLButtonDown”。OnLButtonDown处理程序声明

将添加到PolyCtl.h 中,处理程序实现将添加到PolyCtl.cpp 中。

接下来修改该处理程序。

修改OnLButtonDown 方法

更改PolyCtl.cpp 中包含OnLButtonDown方法的代码(删除向导所放置的任何代码),使它看起来像这样:

复制

LRESULT CPolyCtl::OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM l Param, BOOL& bHandled)

{

HRGN hRgn;

WORD xPos = LOWORD(lParam); // horizontal position of cursor

WORD yPos = HIWORD(lParam); // vertical position of cursor

CalcPoints(m_rcPos);

// Create a region from our list of points

hRgn = CreatePolygonRgn(&m_arrPoint[0], m_nSides, WINDING);

// If the clicked point is in our polygon then fire the ClickIn // event otherwise we fire the ClickOut event

if (PtInRegion(hRgn, xPos, yPos))

Fire_ClickIn(xPos, yPos);

else

Fire_ClickOut(xPos, yPos);

// Delete the region that we created

DeleteObject(hRgn);

return 0;

}

此代码利用在OnDraw函数中计算的点创建一个区域,以通过调用PtInRegion来检测用户的鼠标单击。

uMsg参数是所处理的Windows 消息的ID。这使您可以有一个处理消息范围的函数。wParam和lParam参数是所处理消息的标准值。参数bHandled使您得以指定函数是否处理了消息。默认情况下,值设置为TRUE,指示函数处理了消息,但也可以将其设置为FALSE。这将使ATL 继续查找要将消息发送到的其他消息处理程序函数。

生成和测试控件

现在尝试您的事件。生成控件并再次启动“ActiveX 控件测试容器”。这次查看事件日志窗口。若要将事件路由到输出窗口,请从“选项”菜单中单击“记录”,然后选择“记录到输出窗口”。插入控件并试着在窗口中单击。请注意,在填充多边形的内部单击将激发ClickIn,在它的外部单击将激发ClickOut。

接下来将添加属性页。

步骤6:添加属性页

Visual Studio .NET 2003

属性页作为单独的COM 对象实现,这使得可以在需要时共享属性页。在此步骤中,您将执行以下任务以将属性页添加到控件:

?创建属性页资源

?添加用来创建和管理属性页的代码

?向控件添加属性页

创建属性页资源

若要将属性页添加到控件,请使用“ATL 添加类向导”。

添加属性页

1.在解决方案资源管理器中,右击“Polygon”。

2.在快捷菜单上单击“添加”,然后单击“添加类”。

3.从模板列表中,选择“ATL 属性页”并单击“打开”。

4.当“ATL 属性页向导”出现时,输入PolyProp作为简称:

5.单击“字符串”打开“字符串”页,然后输入&Polygon作为标题:

属性页的“标题”是在该页的选项卡中出现的字符串。“文档字符串”是属性框架用来放在状态栏或工具提示中的说明。请注意,标准属性框架目前不使用该字符串,因此可以将它保留为默认内容。此时将不生成“帮助文件”,因此请删除该文本框中的项。

6.单击“完成”,将创建属性页对象。

创建了以下三个文件:

还进行了以下代码更改:

?新属性页被添加到Polygon.cpp 中的对象项映射。

?PolyProp类被添加到Polygon.idl 文件。

?新注册表脚本文件PolyProp.rgs 被添加到项目资源。

?对话框模板被添加到属性页的项目资源。

?您指定的属性字符串被添加到资源字符串表。

现在添加您希望出现在属性页上的字段。

将字段添加到属性页

1.在“解决方案资源管理器”中,双击Polygon.rc 资源文件。这将打开“资源视图”。

2.在“资源视图”中,展开“Dialog”节点并双击“IDD_POLYPROP”。请注意,出现的对话框是空的,

只有一个标签告诉您在此处插入控件。

3.选择该标签,并将其显示文本改为Sides:,方法是改变“属性”窗口中的“Caption”文本并调

整标签框的大小:

4.将工具箱中的一个编辑控件拖动到标签的右侧:

5.最后,使用“属性”窗口将该编辑控件的“ID”更改为IDC_SIDES。

这就完成了创建属性页资源的过程。

添加用来创建和管理属性页的代码

既然已经创建了属性页资源,现在需要编写实现代码了。

首先,启用CPolyProp类以设置在按“应用”按钮时对象中的边数。

修改Apply 函数以设置边数

像下面这样在PolyProp.h 中更改Apply函数:

复制

STDMETHOD(Apply)(void)

{

USES_CONVERSION;

ATLTRACE(_T("CPolyProp::Apply\n"));

for (UINT i = 0; i < m_nObjects; i++)

{

CComQIPtr pPoly(m_ppUnk[i]);

short nSides = (short)GetDlgItemInt(IDC_SIDES);

if FAILED(pPoly->put_Sides(nSides))

{

CComPtr pError;

CComBSTR strError;

GetErrorInfo(0, &pError);

pError->GetDescription(&strError);

MessageBox(OLE2T(strError), _T("Error"), MB_ICONEXCLAMATI ON);

return E_FAIL;

}

}

m_bDirty = FALSE;

return S_OK;

}

一次可以有不止一个客户端附加到属性页,因此Apply函数不断循环,并在每个客户端用从编辑框检索的值调用put_Sides。您使用的是CComQIPtr 类,此类对每个对象执行QueryInterface,以从IUnknown接口(存储在m_ppUnk数组中)获取IPolyCtl接口。

代码现在检查对Sides属性的设置是否真正有效。如果失败了,则代码显示一个消息框,其中显示了IErrorInfo接口中的错误详细信息。一般情况下,容器向对象请求ISupportErrorInfo接口并首先调用InterfaceSupportsErrorInfo,以确定对象是否支持设置错误信息。您可以跳过此任务。

CComPtr 会通过自动处理引用计数来帮助您,因此您不需要对接口调用Release。CComBSTR用BSTR处理帮助您,因此您不必执行最终SysFreeString调用。您还使用各种字符串转换类之一,因此如有必要可以转换BSTR(这就是为什么在函数的开始处添加USES_CONVERSION宏的原因)。

还需要设置属性页的更新标志以指示应启用“应用”按钮。这在用户更改“边”编辑框中的值时发生。

处理“应用”按钮

1.在“类视图”中,右击CPolyProp 并在快捷菜单上单击“属性”。

2.在“属性”窗口中,单击“事件”图标。

3.展开事件列表中的“IDC_SIDES”节点。

4.选择“EN_CHANGE”,并从右边的下拉菜单中单击“<添加> OnEnChangeSides”。

OnEnChangeSides处理程序声明将添加到Polyprop.h 中,处理程序实现将添加到

Polyprop.cpp 中。

接下来将修改处理程序。

修改OnEnChangeSides 方法

?将以下代码添加到Polyprop.cpp 中的OnEnChangeSides方法(删除向导放在那里的任何代码):

复制

LRESULT CPolyProp::OnEnChangeSides(WORD /*wNotifyCode*/,

WORD /*wID*/, HWND /*hWndCtl*/, BOOL& /*bHandled*/)

{

SetDirty(TRUE);

return 0;

}

当WM_COMMAND消息与IDC_SIDES控件的EN_CHANGE通知一起发送时,将调用OnEnChangeSides。OnEnChangeSides然后调用SetDirty并传递TRUE以指示属性页现已更新,应启用“应用”按钮。

向控件添加属性页

由于您的项目中可能有多个控件,“ATL 添加类向导”和“ATL 属性页向导”不会自动将属性页添加到控件中。您需要将项添加到控件的属性映射。

添加属性页

?打开PolyCtl.h 并将下行添加到属性映射:

复制

PROP_ENTRY("Sides", 1, CLSID_PolyProp)

控件的属性映射现在看起来像这样:

复制

BEGIN_PROP_MAP(CPolyCtl)

PROP_DATA_ENTRY("_cx", m_sizeExtent.cx, VT_UI4)

PROP_DATA_ENTRY("_cy", m_sizeExtent.cy, VT_UI4)

PROP_ENTRY("FillColor", DISPID_FILLCOLOR, CLSID_StockColorPage)

PROP_ENTRY("Sides", 1, CLSID_PolyProp)

// Example entries

// PROP_ENTRY("Property Description", dispid, clsid)

// PROP_PAGE(CLSID_StockColorPage)

END_PROP_MAP()

您可能已经用属性页的CLSID 添加了PROP_PAGE宏,但如果按所显示的那样使用PROP_ENTRY 宏,则在保存控件时也会保存Sides属性值。

此宏的三个参数是属性说明、属性的DISPID 和包含属性的属性页的CLSID。这很有用,例如将控件加载到Visual Basic 中并在设计时设置Sides 的数目时。由于保存了Sides 的数目,在重新加载Visual Basic 项目时,Sides 数目将还原。

生成和测试控件

现在生成那个控件并将其插入到“ActiveX 控件测试容器”中。在“测试容器”中,在“编辑”菜单上单击“PolyCtl 类对象”。出现属性页;单击“多边形”选项卡。

“应用”按钮最初是禁用的。开始在“边”框中键入值,“应用”按钮将变成已启用的。输入完值之后,单击“应用”按钮。控件显示更改,“应用”按钮再次被禁用。尝试输入无效的值。您将看到一个消息框,其中包含您从put_Sides函数设置的错误说明。

下一步,您将把控件放在Web 页上。

步骤7:将控件放在Web 页上

Visual Studio .NET 2003

控件现已完成。若要查看控件在现实情况中的工作,请将其放在Web 页上。定义控件时创建了一个包含控件的HTML 文件。从“解决方案资源管理器”中打开PolyCtl.htm 文件,可以看到控件在Web 页上。

在这一步中,您将撰写Web 页的脚本以响应事件。还将修改控件,让Internet Explorer 知道控件对于脚本撰写是安全的。

撰写Web 页的脚本

控件仍然什么也不做,因此请更改Web 页以响应您发送的事件。

撰写Web 页的脚本

打开PolyCtl.htm 并选择“HTML”视图。将下面以粗体显示的行添加到构成页的HTML 代码中。

复制

ATL 3.0 test page for object PolyCtl

CLASSID="CLSID:4CBBC676-507F-11D0-B98B-000000000000">

>

您已经添加了一些VBScript 代码,该代码从控件获取Sides 属性,并且当您在控件内部单击时,该代码会将边数增加一。如果在控件外部单击,则边数减少一。

指出控件对于脚本撰写是安全的

可以在Internet Explore 中查看包含控件的Web 页,或者更方便一些,使用Visual C++ .NET 中内置的Web 浏览器视图。若要在Web 浏览器视图中查看控件,请右击PolyCtl.htm,然后单击“在浏览器中查看”。

用图片制作视频课件培训教程

用图片制作视频课件 ——“会声会影X2”初级应用培训教程 当铺地学区中心校 祁雨 “会声会影”是功能强大的视频编辑软件之一,它简单易学,操作方便,应用它不但能够制作出专业化的视频作品,还能让静止的图片动起来,制作出有动画效果的视频课件。下面我们就以《桂林山水》一课为例,学习一些“会声会影”应用的初步知识,并用图片制作一个视频课件。 一、素材准备 根据课件制作需要,首先要准备好以下素材: 1、根据课文的描述,从网上下载有关桂林山水景色的图片(下载的图片尽量要像素比较高的)。为了应用方便,给下载的图片重新命名,即:按课文内容的先后顺序编号,并加上简明的文字说明。 2、准备好课文表情朗读的录音文件(可以是自己录的、学生录的或者是从网上搜索下载的)。如果没有录音文件,在课堂上让学生现场诵读,老师播放课件也能达到让学生身临其境的效果。 3、选择一首优美的背景音乐,音乐格式可以是WMA 或MP3的。我这里准备的是古代名曲《雪山春晓》。 二、 “会声会影”工作界面的初步认识和基本操作 1、打开“会声会影”,认识它的预览区、素材区、编辑区。编辑区的三种表现形式,即故事版视图、时间轴视图、音频视图。 2、通过实际操作,练习把视频素材(或图像素材、色板素材)、音乐素材拖放到相应的轨道上,并学习改变它们的区间,截取它们的片断等。 3、通过实际操作,练习给画面填加标题或说明文字,并给它们填加动画效果。 4、通过实际操作,练习给画面之间填加各种转场效果。 三、用图片制作视频课件 1、把准备好的《桂林山水》图片素材添加到视频素材库,然后按课文内容先后顺序把图片拖放到视频轨上。 通过以上操作,我们已经在制作视频课件的工作中迈出了第一步。完成这一步后我们把它做为一个“项目”进行保存。 视频课件制作 培 训 教 程

SketchUp2015基础教程

SketchUp2015基础教程 1、工具栏 视图工具栏、、、、、 常用得工具栏 标准、大工具集、实体工具、截面、沙盒、视图、图层、样式、阴影也可以右键单击工具栏,在弹出得“ 上下文菜单”中,勾选自已想要得工具,google 工具,仓库 比如:工具。 2、样式设置窗口样式、、、、、、单击“编辑”,单击“边线设置” ,一般只保留“ 边线” 3、系统设置窗口系统设置、、、、、、常规设置自动保存时间为15 分钟关闭自动检测问题与自动修正问题窗口模型信息、、、、、、、、 单位设置十进制mm 精确度为0mm SketchUp 默认图像编辑器,就是电脑系统自带得图片查瞧器应用程序选择、、、、、、一般就是选择“ photoshop ”来做默认得图像编辑器4、模板 文件另存为模板、、、、、对我们刚刚优化与设置得绘图环境进行保存记得勾选“ 设为预设模板” 等于我们每一次打开SketchUp 都将会打开我们创建得这个模板如果不需要,可以在窗口系统设置模板、、、更改它 5、术语与概念鼠标得用法单击左键单击移动不按住任何键(盘)得情况下,移动鼠标拖动按住鼠标左键得同时移动鼠标旋转指按住鼠标中键(滚轮)不放得同时移动鼠标双击快速连续单击鼠标左键两次三击快速连续单击鼠标左键三次 滑动滚轮前后推动鼠标左键与右键之前得滑轮 框选就就是从左向右拖动鼠标 叉选就就是从右向左拖动鼠标 对象指在SketchUp 中创建得任何项目,包括图形、文本等控制面板SketchUp 里面可以设置参数得控制按钮或者滑块得集合捕捉动画捕捉,对一些特殊得地方可能会出现一个比较亮 得小点夹点用于调整与控制对象等操作得点 填充贴图或者材质赋予在创建好得对象里面 锁定就就是限定操作方式 上下文菜单在SketchUp 中右键单击弹出得选项面板 闪退SketchUp 得一种突然自动关闭行为 “卡”死SketchUp 在处理复杂模型时计算机在运算得这个过程 6、标准工具 新建Ctrl+N 打开Ctrl+O 保存Ctrl+S 剪切Ctrl+X 复制Ctrl+C 粘贴Ctrl+V 删除Delete 撤销Ctrl+Z 重做Ctrl+Y 打印Ctrl+P 7、相机工具环绕观察:可以使相机绕着对象(绘图区)旋转,方便得观察到我们创建得对象。 按住鼠标中键不放,可以旋转绘图区

泰山风景区图片制作视频教程

泰山是世界文化遗产和世界自然遗产,世界地质公园,中国AAAAA级旅游景区,首批全国文明风景旅游区示范点。是中外闻名的游览胜地。其主峰玉皇顶海拔1545米,气势磅礴,雄伟壮观,有“五岳之首”、“天下第一山”的之称。泰山风景以壮丽著称。重叠的山势,厚重的形体,苍松巨石的烘托,云烟的变化,使它在雄浑中兼有明丽,静穆中透着神奇。最为有名的是“泰山四大奇观”。古人以“泰山北斗”来喻指人道德高、名望重或有卓越成就为众人所敬仰的人。下面我们就来看看泰山的风景区相片欣赏欣赏! 这是我新发现的一款相片制作成视频软件,根据下面的地址下载完成之后,解压文件夹,然后安装好软件,根据上面的注册信息注册好软件,之后就可以运行使用软件,把相片添加到软件上,如下图: 在上面的菜单中,点击“式样”,然后根据下面的式样效果添加到风景相片上,喜欢那种效果,直接双击鼠标就可以添加到下面咯;右边是“式样”效果预览,还有添加效果之后,下面的轨道上,每张风景相片都要添加一种效果。也就是每张相片都要设置效果,如下图:

然后再点击“装饰”按钮,在下面的各种效果中给制作风景相片视频添加各种效果,有添加“文本”、“剪辑”、“特效”等。下面还有给制作的视频添加“片头/片尾”,如下图:

在添加“片头/片尾”上面,点击“片头”选项,在下列的效果栏上选择喜欢的进行预览,然后在下面进行“文本特效”、“持续时间”、“标题”、“标志”、“导演”等编辑,如下图: 再点击“片尾”选项,然后点击下列效果进行预览,选好喜欢的效果之后,在下面的“文本特效”、“持续时间”、“标题”、“演员”等进行设置,如下图:

编辑风景相片制作视频的效果之后,我们还要给相册视频添加一首喜欢的音乐做为相册的背景音乐。点击“添加音频”按钮,然后选好音乐添加,上面还可以看到对背景音乐的设置,有“音乐”、“录制”、“声音”等设置,可以根据自己的需要进行选择设置,如下图: 设置好之后,我们这时就可以开始来进行“创建”啦。在“创建”栏下,有好几种创建的视频格式类型,有创建DVD、MP4、AVI、WMV、3GP、MPEG-2等格式类型,在右边还可以进行预览播放的,如下图:

各种系统框架图简介

各种系统框架图简介 以下文字和架构图均在本人相关系统设计和架构方案中有所应用。 原文出处:https://www.doczj.com/doc/8819120567.html,/6517/viewspace-609654 1.Spring 架构图 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE 应用程序开发提供集成的框架。Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定J2EE 服务的可重用业务和数据访问对象。这样的对象可以在不同J2EE 环境(Web或EJB )、独立应用程序、测试环境之间重用。 组成Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要组件是BeanFactory ,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC )模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

?Spring 上下文:Spring 上下文是一个配置文件,向Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如JNDI 、EJB 、电子邮件、国际化、校验和调度功能。 ?Spring AOP :通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了Spring 框架中。所以,可以很容易地使Spring 框架管理的任何对象支持AOP 。Spring AOP 模块为基于Spring 的应用程序 中的对象提供了事务管理服务。通过使用Spring AOP ,不用依赖EJB 组件,就可以将声明性事务管理集成到应用程序中。 ?Spring DAO :JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构 简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打 开和关闭连接)。Spring DAO 的面向JDBC 的异常遵从通用的DAO 异常 层次结构。 ?Spring ORM :Spring 框架插入了若干个ORM 框架,从而提供了ORM 的对象关系工具,其中包括JDO 、Hibernate 和iBatis SQL Map 。所有这些都遵从Spring 的通用事务和DAO 异常层次结构。 2.ibatis 架构图 ibatis 是一个基于Java的持久层框架。 iBATIS 提供的持久层框架包括SQL Maps 和Data Access Objects ( DAO ),同时还提供一个利用这个框架开发的 JPetStore 实例。

sketchup入门教程

我想大家能静下心来把这篇文章看完对下面的操作就会轻松很多了SKETCHUP初学者圣经 这是老外写的一篇初学者的指南,主要阐述了SKETCHUP的基本建模思路和原则及技巧,觉得很好,堪称圣经,我将它翻译过来,篇幅比较长,希望大家能够认真研读一下,虽说是初学者圣经,但里面的内容对于老手来说也堪称经典,同样可以读一读,里面有些内容需要读者由SketchUp的基本知识,大家可以再看本站FLASH教程的同时读一下这篇文章,我想收获会更大。 这是我自己的一些经验。如果你对SketchUp还没有很多的了解和经验,那么试试按照下面说得去做,直到你得出了自己的经验和见解。我采用下面这些方法,是因为它们适合我工作的习惯,其他人可能会有不同的适合自己的方法,如果你有更好的招数,拿出来和大家共享一下子吧! 建模--步骤 首先,一条原则是我们应该尽量将模型量控制在最简单,最小。当然,如果你以建立细致入微的模型为乐趣的话,那么可以不必遵循这个原则。但是,如果你是用SketchUp来养家活口,维持生计,那么过分细致的模型是没有必要的。你应该努力在完成工作的前提下,将模型建的尽量简单。一旦你不得不更改模型的时候,尤其是本来即将完成时,需要更改的话,越简单的模型越容易修改。 如果你的模型按照一定的原则清晰的分成了组或组件,那么其实你就

可以将任意组件保存成一个单独的文件,在需要改变组件的时候,只需要打开保存的那个文件,进行编辑并保存,然后在含有这个组件的模型中,重新调用就可以了,这样做不必受场景中其他东西的干扰,编辑速度也快。如果你边建模边推敲方案,那么就先建立一个大的体块,随着你设计的深入,逐渐将模型加入细节。你可以轻松的将一些粗糙的大体块替换为精致的模型,当然前提是你要有足够深入的设计。 导入CAD文件 将CAD文件导入SketchUp,然后通过简单地描一描线段,使它生成面,然后推推拉拉地建立起一个3D模型,这听起来确实令人兴奋。但是这样工作的效果实际上取决于你的CAD图的质量。 导入CAD的2D文件,实际上能产生许多令人头疼的麻烦。熟手画得简单的轮廓线的CAD图不会产生什么大的麻烦,生手画的细节繁多,杂乱无章的CAD图就不那么容易利用了。“带有小小的线段、转角处两条线没有相交、一条线和另外一条看上去平行实际上只差一点点”,有这些问题的CAD图,都会在你建立模型的时候成为你的绊脚石,似乎应该说是钢针,因为它们小的让你很难察觉和纠正。用这样的CAD图导入SketchUp作为底图,你花费在纠正错误上的时间反倒会比你节省的时间多。 接近完成的CAD图纸,实际上包含了大量你建模时用不着的信息。你在CAD制图中过分详细的分层方法或者是重叠的线等等,都是在

photoshop图像处理教程

图像处理实验一 请先在D盘新建“学号姓名”文件夹,将所有实验结果保存到里面。 Photoshop软件下载地址:https://www.doczj.com/doc/8819120567.html,/cecdown/ 一、“选择”工具和“渐变”工具制作“钮扣” 【操作步骤】 步骤1: 运行Photoshop,新建文档,在如图2-4-1所示的“新建”对话框中设置300像素×300像素的图像大小、分辨率为72像素/英寸、RGB模式的图片文件,单击“好”按钮后出现新文档窗口。 图2-4-1 步骤2: 用“油漆桶工具”把图片背景填充为黑色。 提示:如果工具箱中找不到油漆桶工具,可以在“渐变工具”上按下左键一会儿,在出现的菜单中选择。 步骤3: 选中椭圆选框工具,按着Shift键不放,同时按住鼠标左键在图片中央拖动,绘制一个圆形选区,如图2-4-2所示。 提示:如果工具箱中找不到“椭圆选框工具”,可以在其他选择工具上按下左键一会儿,在出现的菜单中选择。 图2-4-2 图2-4-3步骤4: 单击工具箱下面的“设置前景色”按扭,在随后弹出的“拾色器”对

话框中把R 、G 、B 值分别设为0、30、255,如图2-4-3所示;单击“好”按扭关闭对话框,即可把前景色设置为兰色。按住Alt 键,单击工具箱下面的背景色设置按扭,用同样的方法把背景色设为白色,R 、G 、B 值为255、255、255。 步骤5: 选择渐变工具,在如图2-4-4所示的选项栏单击“渐变类型选择”组中的第一个按钮“线性渐变”,单击“渐变色编辑与选择工具”,在打开的“渐变编辑器”对话框中,选择“前景色到背景色渐变”,即把渐变方式设置为从前景色到背景色。然后把鼠标从圆形选区的左上角拖动到圆形选区的右下角,松开左键,产生渐变效果。如图2-4-5所示。 图2-4-4 步骤6: 使用“选择/取消选择”菜单命令,取消原来的选区,再次用椭圆选择工具绘制一个小一点的圆形选区,调整位置使之与原来的圆形同心。如图2-4-6所示。 图2-4-5 图2-4-6 步骤7: 选择渐变工具,渐变方式保持不变。然后把鼠标指针从圆形选区的右下角拖曳到圆形选区的左上角。如图2-4-7所示。 图2-4-7 图2-4-8 步骤8: 使用“选择/取消选择”菜单命令取消选区。 步骤9: 把前景色设为黑色,用画笔工具 在钮扣的中心位置采用单击的办法绘制四

微服务框架的设计与实现

微服务框架的设计与实现① 张晶1, 黄小锋2, 李春阳3 1(北京中电普华信息技术有限公司, 北京100192) 2(中国电建集团国际工程有限公司, 北京100048) 3(国网信息通信产业集团有限公司, 北京100031) 摘 要: 相对于传统单块架构, 微服务框架具有技术选型灵活, 独立部署, 按需独立扩展等优点, 更适合当前互联网时代需求. 但微服务架构的使用引入了新的问题, 如服务注册发现、服务容错等. 对微服务框架引入的问题进行分析, 并给出了微服务框架的一种实现方案, 在框架层面解决服务注册发现、服务容错等共性问题, 使业务系统开发人员专注于业务逻辑实现, 简化系统开发的难度, 提高开发效率. 关键词: 微服务框架; 服务注册; 服务发现; 服务容错 Design and Implementation of Microservice Architecture ZHANG Jing1, HUANG Xiao-Feng2, LI Chun-Yang3 1(Beijing China Power Information Technology Co. Ltd., Beijing 100192, China) 2(PowerChina International Group Limited, Beijing 100048, China) 3(State Grid Information & Telecommunication Industry Group Co. Ltd., Beijing 100031, China) Abstract: Compared with traditional single block architecture, microservice architecture has many advantages, such as flexible technology selection, independent deployment, and independent scalability more suitability for the current needs of the internet age, etc. But microservice architecture also introduces new problems such as service registration, service discovery, service fault tolerance. On the basis of the analysis for problems mentioned above, this paper proposes one implementation of microservice framework, which can solve service registration, service discovery, service fault tolerance and other common problems. Based on this, developers only need to focus on the development of business functions, so that it can simplify the difficulty of system development and improve development effectiveness. Key words: microservice architecture; service registration; service discover; fault tolerance 传统信息化系统的典型架构是单块架构(Monolithic Architecture), 即将应用程序的所有功能都打包成一个应用, 每个应用是最小的交付和部署单元, 应用部署后运行在同一进程中. 单块架构应用具有IDE友好、易于测试和部署等优势, 但是, 随着互联网的迅速发展, 单块架构临着越来越多的挑战, 主要表现在维护成本高、持续交付周期长、可伸缩性差等方面[1]. 微服务架构(Microservices)的出现以及在国内外的成功应用, 成为系统架构的一种新选择. 很多大型宝等都已经从传统单块架构迁移到微服务架构[2]. 微服务架构提倡将单块架构的应用划分成一组小的服务, 互联网公司如Twitter、Netflix、Amazon 、eBay、淘服务之间互相协调、互相配合, 为用户提供最终价值. 1 微服务架构 微服务架构是一种架构模式, 采用一组服务的方式来构建一个应用, 服务独立部署在不同的进程中, 不同服务通过一些轻量级交互机制来通信, 例如RPC、HTTP等, 服务可独立扩展伸缩, 每个服务定义了明确的边界, 不同的服务甚至可以采用不同的编程语言来实现, 由独立的团队来维护[3]. 相对于传统的单体应用架构, 微服务架构具有单个服务易于开发、理解和维护; 复杂度可控; 技术选 ①收稿时间:2016-09-18;收到修改稿时间:2016-11-03 [doi: 10.15888/https://www.doczj.com/doc/8819120567.html,ki.csa.005796]

设备诊断技术

设备诊断技术引入生产现场已三十多年。最初,设备较为简单,维修人员主要靠感觉器官、简单仪表和个人经验就能胜任故障的诊断和排除工作,即为传统的诊断技术。随着科学技术的不断发展,动力机械设备越来越复杂化、精密化、系统化和自动化,同时价格也越来越昂贵,设备在现代工业生产中的作用和影响越来越大,生产的主体也逐渐由人力向设备转移,与设备有关的费用越来越高,传统的诊断方法已远远不能适应。机器运行中发生的任何故障或失效不仅会引起严重后果,造成重大的经济损失,甚至还可能导致灾难性的人员伤亡和恶劣的社会影响。国内外曾经发生的空难、爆炸、断裂、泄漏、毁坏等恶性事件,造成了巨大的经济损失,产生了严重的社会影响。例如,1986年4月前苏联切尔诺贝利核电站四号机组发生严重振动而造成核泄露,致使2000多人死亡,直接经济损失达30亿美元[l]。这些严重的或灾难性的事件不断发生,迫使人们在设备的故障诊断方面进行大量的研究,形成了机器设备、工程结构和工艺过程的故障诊断这一新兴的研究领域。通过对机械工况进行监测,对其故障发展趋势进行早期诊断,便可找出故障原因,采取各种措施进行维修保养,避免设备的突然损坏,使之安全经济地运转,例如,法国Cra一vehnes电厂对其近400台主辅设备进行了两年的状态监测试验,结果表明,由于采用状态维修,电厂实际节约了540多万法郎〔尚未考虑停工造成的损失)l,]。在欧美,70年代初为了确保宇宙火箭和军用设备的可靠性而开发出了设备诊断技术。国内外许多资料表明,开展故障诊断技术的经济效益是明显的。据日本统计,在采用诊断技术后,事故率减少了75%左右,维修费降低了25%一50%;英国对2000个国营工厂的调查表明,采用诊断技术后每年节省维修费3亿英磅,用于诊断技术的费用仅为0.5亿英磅。可见,设备故障诊断技术在现代工业生产中起着非常重要的作用,开展设备故障诊断技术的研究具有重要的现实意义。 医生之所以能为病人诊治疾病,是因为他掌握了医学知识和具有临床经验,是平时学习的结果;那么机电设备、复杂系统出了故障怎么办?显然仅靠人是不够的,所以许多从事故障诊断研究的学者一直致力于设计机器“医生”(智能机器人)来代替人完成检测诊断工作。应具备能“听”字图像、“评判”“会”讲话、完美的机器“医生”象人类一样有“意识”的自主学习、懂人类语言、“看”清文提取故障特征、自主正确的能力,这也是人类一直努力的目标。少要追溯到剑桥大学的CharlsBabbageLucasian有关制造智能机器人的可能性问题至教授在1828年至1839年间提出的分析机器的概念[2],尽管有人对分析机器存有疑问131,但Hartreel4]认为:根据生物原理,建立一套条件反射机制,作为“学习”的基础,制造出“为自己思考”的具有一定基础的生物智能的电子设备也是完全可能的。在工程实际中存在着大量的多故障、多过程、突发性故障及需要对庞大机器或复杂工程系统进行的监测和诊断,现有的技术手段和方法如信号处理、模式识别等往往存在较大的局限性,迫使人们深入系统研究如Hartree所说的智能仪器系统。随着计算机技术、人工智能技术等的发展,各种智能诊断系统应运而生卜,3]。故障诊断技术经过了30多年的发展,人们已经认识到了智能诊断技术的重要性,智能诊断技术己成为当今世界的研究热点之一。但现有智能故障诊断系统,大多只限于单一智能技术的应用,智能化程度和诊断精度都不尽人意。为了克服现有智能故障诊断方法中的不足,本文研究新一代的融合智能故障诊断系统具有重要的意义。 故障诊断技术的发展 故障诊断(FauhDiagnosis,FD)技术始于机械设备故障诊断,它包含两方面内容:一是对设备运行状态进行监测;二是在发现异常情况后对设备的故障进行分析、诊断。它是一门既有基础理论,又有实际应用背景的综合性技术[l4,’5],是当今科学技术研究的热点之一。它涉及传感及测试技术、电子学、信号处理、识别理论、计算技术以及人工智能、专家系统等

草图大师基础教程

1、选择的时候,双击一个单独的面可以同时选中这个面和组成这个面的线。 2、双击物体上的一个面,可以选择该面的面和线三击物体上的一个面,可以选择该物体的所有面和线。 3、使用漫游命令和相机命令的时候,可以在右下角的输入框里面输入视线的高度。 4、使用动态缩放命令的时候,可以输入数字+deg(例:60deg)来调整相机视角。 5、使用动态缩放命令的时候,可以输入数字+mm(例:35mm)来调整相机焦距。 6、把物体做成组群或者组件,可以在右键菜单里面的沿轴镜相里面选择镜相方式。 7、选择物体,用比例缩放命令,选择缩放方向以后输入-1,可以镜相物体。 8、利用推拉命令一次,下次运用推拉命令时双击可重复上次的尺寸。 9、选择物体时按住ctrl可以增加选择,按住shift可以加减选择,同时按住ctrl和shift为减选择。 10、shift+鼠标中键为pan功能。 11、当锁定一个方向时(如平行,极轴等)按住shift可保持这个锁定。 12、选择状态下单击物体是选线或面双击是线和面而三击可以选体选择物体后按住CT RL 用移动复制命令可以直接复制物体而如果该物体已经做成组的话复制出来的物体依然在同一组里使用橡皮檫只能删除线而不能删除面所以如果要删除一个面上杂乱的线用橡皮檫要比框选物体后用DEL命令方便。 13、滚轮+左键全按是pan哦,注意先按滚轮,在按左键。 14、在复制移动(按CTRL复制)后输入x/ 的数值时,如输入5/则两物体之间出现4个物体,如输入4/则两物体之间出现3个物体,阵列也一样! 15、在导出cad时有一个选项(options,在save/cancel键下方),进入其中并选择边线(edges)和面(faces),导出后就线和面都有了。 16、查看--显示隐藏组件,快捷键是shift+a。crtl+A全选,同时按住Shift和ctrl点击不想隐藏的物体,再按隐藏的快捷键就可以了。 17、SU-技巧-空间分割, 用画直线的工具在一表面停留(不要点击鼠标),按住SHIF T键,移动鼠标,会有一条平行于此表面的辅助线(虚线)出现,用来画空间分割是一个很好的方法。 18、su的捕捉就好象cad里面的极轴,就是比如当你移动一个物体的时候,大致的移动方向接近某个轴方向的时候,会自动捕捉,分别显示红绿蓝三色辅助线,当然画线等等操作的时候也是同样的。 19、快捷键在窗口-系统属性-快捷键里面可以设置 20、在确定方向以后,可以点住SHIFT键来锁定方向 21、缩放视图的时候按住shift可变为广角镜头。 22、在一个新的面上双击可以重复上次拉伸的尺寸。 23、用右键点取面可以让视图或者坐标轴对齐到这个面。

机械设备监测诊断技术综述

机械设备监测诊断技术综述 一设备故障诊断技术 产品在工作中,因某种原因,“丧失规定功能”的现象,称之为故障。这里所指的“产品”,可以是元件、部件、装置、系统或设备。这里所指的“规定的功能”是在产品的技术文件中明确规定的功能,“故障”有时也称之为“失效”,在一般情况下两者是同义词。在上述国标规定中指出,对于可修复的产品通常称之为故障。 根据机器设备出现故障后能不能予以消除的想法,可以把产品划分为可修复的和不可修复的两大类。而在机械设备中,大多数产品是属于可修复的产品。 设备故障诊断技术:是一种了解和掌握设备在使用过程中的状态,确定某整体或局部是正常运转还是发生了异常现象,早期发现故障及其原因,并预报故障发展趋势的技术。通俗的说法,它是一种给机器“看病”的技术。这当中包含“监测”和“诊断”两层意思。设备故障诊断技术,又称机械设备状态监测和故障诊断技术,通常简称为设备诊断技术。 设备诊断技术属于信息技术范畴,因此,它包括信息的采集、信息的分析处理(数据处理)和状态识别(包括判断和预报)三个基本环节。然而,信息技术不等于诊断技术。为了开展设备诊断工作还必须具备有关设备及其零部件故障或失效机理方面的知识,以及被诊断对象的有关知识。设备诊断技术所涉及的有关问题如图1.1所示。

由于信息的多样性,使诊断技术的理论基础非常广泛,它涉及到数学、物理、化学、机械、电子技术、传感技术、计算机以及数字信号处理、统计模式识别等技术,因此说设备诊断技术是实用性强多学科交叉的新技术。 设备诊断技术是一门正在不断完善和发展中的新技术,它可以从各技术领域中吸收最新成果推动自己的发展,不断提高技术水平,目前虽然已有不少行之有效的方法和手段,但与工业生产发展的水平和实际的需要相比,尚存在很大差距,设备诊断技术毕竟还是比较年轻的,需要各行各业共同去开发创新。 表1.1归纳整理了目前已经开发和正在开发的诊断技术及其适用范围。 二设备状态监测与故障诊断 设备状态监测与故障诊断是设备诊断中的两个过程,两者既有密切联系又有区别。设备状

分布式服务框架Dubbo及相关组件集成

1.D ubbo介绍 1.1.简介 Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。 Dubbo最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。 上图中,蓝色方块表示与业务有交互,绿色方块表示只对Dubbo内部交互。上述图所描述的调用流程如下: 1)服务提供方发布服务到服务注册中心; 2)服务消费方从服务注册中心订阅服务; 3)服务消费方调用已经注册的可用服务; 1.2.核心功能 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。 1.3.Dubbo能做什么? 透明化的远程方法调用:就像调用本地方法一样调用远程方法,只需简单配置,没有任何API 侵入。 软负载均衡及容错机制:可在内网替代F5等硬件负载均衡器,降低成本,减少单点。 服务自动注册与发现:不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。

ARCGIS制作1:10000分幅图教程

ARCGIS制作1:10000分幅图教程 本文中所使用的软件为ArcGIS9.3版本,以输出A1 JPG格式图幅为例进行阐述: 一、打开ArcMap界面并添加要素 有两种方法: 法一: 1、打开ArcMap软件,点击菜单栏中的添加图标 2、然后添加对应的图层要素文件。若是第一次使用 的情况下,则需要设定文件夹的连接,这样才能 找到对应的文件,点击“connect to folder”(连接 到文件夹,具体位置如下图红圈处所示),点击对 应的文件夹即可。

法二:快速打开模板法(此法必须建立在有已建好的模板的情况下) 1、直接找到对应的“xxx.mxd”文件,双击打开即可

二、界面设置与整饰 1、首先,将地图显示状态由Data View(数据视图)状态调整为Lzyout View(版面视图)状态,在地图显示窗口的左下角,如图: 2、点击左上角的“File”,选择“Page and Print Setup”,进入如下对话框,界面如下:

若电脑有连接打印机的话,则直接在“Print Setup”栏 中设置好参数,同时在“Map Page Size”栏下方“Use Print Pager Settings”前面的复选框中打上勾即可; 若没有连接打印机的话,则直接设置“Map Page Size” 栏的“Page”中的“Standard Size”的参数即可。另外,“Portrait”是“纵向”的意思,“Landscape”是“横向” 的意思,在这里,以选择“横向”为例。 设置好后点击“OK”既可以看到界面中纸张页面框的大 小发生了变化。 3、图层属性设置 选中图层(会出现一个蓝色虚线框), 然后点击鼠标右键,选择“properties…”打开属 性对话框

机械故障诊断培训教程

机械故障诊断培训教程 第一节北京京航公司一从事机械故障诊断的高科技企业 北京京航公司隶属中国运载火箭技术研究院,是一家高科技企业。公司主要从事旋转机械故障诊断方面的理论研究。产品开发与经营。公司成立十多来年,充分发挥航天技术优势,成为国内机械设备诊断行业中首屈一指的科、工、贸一体化企业。本公司产品门类齐全,性能优良。相继推出HG-2500系列袖珍式测振测温仪;HG-8300双通道及HG-8400多通道数据采集,振动分析,旋转机械及电机诊断专家系统;HG-8500机器故障诊断仪;HG-3500系列数据采集及故障分析,设备管理系统。产品广泛应用于石油、化工、钢铁、电力、铁路、烟草等大、中型企业的设备管理、维修及监测。产品通过了国家计量院型式注册检定,获得北京市技术监督局的CPA证书及CMC证书。十多年来,公司产品以可靠的质量,优越的性能价格比赢得国内广大用户的信赖,并已批量出口,远销英国、南非等地。 第二节状态维修-设备维修的根本性革命 大家知道,当前我国对设备的维护仍采用传统的计划、定期维修。而这种方式带有很大盲目性,设备有无故障、故障类型、故障部位、故障程度难以准确把握。另外,由于良好部位的反复拆卸,机械性能往往不理想,甚至低于检修前。而且,没有必要的超前维修,带来人力、物力的巨大浪费。 故障诊断仪器的广泛应用,使对机械设备的维护由计划、定期检修走向状态、预知检修变为现实,使机械设备的维护方式发生了根本性革命。状态监测避免了机械设备的突发故障,从而避免了被迫停机而影响生产;机械状态分析为预知机械设备的维修期提供了可靠依据,即可做到测量表明有必要时才进行维修。使我们能够及时准备维修部件,安排维修计划,克服了定期维修带来的不必要的经济损失和设备性能的下降;完善的诊断能力可为我们准确指出故障类型和故障部位,避免了维修的盲目性,使检修简捷易行,大大缩短了维修工期;完善的设备管理软件,又可使企业设备管理自动化。由此可见,状态检测给企业带来的经济效益是十分显著的。如实行状态维修后,某化工厂年维护修理工作由247台减至14台;某电机厂维护费用下降了75%;某造纸厂年节约25万美元,而振动监测设备一次注投资仅是此数的10 %。 第三节机械振动描述 一、什么叫振动? 振动是世界上的物质或物体的一种运动形式。广义来说,振动就是物体(质点)或某种状态随着时间往复变化的现象。 二、振动的分类 工程中有大量的振动问题需要研究、分析和处理,因此有必要简单介绍振动力学中的振动分类方法,以便在振动故障类型、原因、分析和故障排除方面提供考虑的基础。 机械振动的研究和使用方面有多种分类方法,目前,大致有如下几种分类: 1、按振动的规律分 简谐振动。非简谐振动和随机振动。有时又将前两者称为周期振动,后者称为非周期振动; 2、按产生振动的原因分 自由振动、受迫振动、自激振动和参变振动等; 3、按自由度分 单自由度系统振动、多自由度系统振动和弹性振动;

草图大师初学者必看

草图大师(SU)初学者圣经-初学者必看 这是我自己的一些经验。如果你对su还没有很多的了解和经验,那么试试按照下面说得去做,直到你得出了自己的经验和见解。我采用下面这些方法,是因为它们适合我工作的习惯,其他人可能会有不同的适合自己的方法,如果你有更好的招数,拿出来和大家共享一下子吧! 建模--步骤 首先,一条原则是我们应该尽量将模型量控制在最简单,最小。当然,如果你以建立细致入微的模型为乐趣的话,那么可以不必遵循这个原则。但是,如果你是用su来养家活口,维持生计,那么过分细致的模型是没有必要的。你应该努力在完成工作的前提下,将模型建的尽量简单。一旦你不得不更改模型的时候,尤其是本来即将完成时,需要更改的话,越简单的模型越容易修改。 如果你的模型按照一定的原则清晰的分成了组或组件,那么其实你就可以将任意组件保存成一个单独的文件,在需要改变组件的时候,只需要打开保存的那个文件,进行编辑并保存,然后在含有这个组件的模型中,重新调用就可以了,这样做不必受场景中其他东西的干扰,编辑速度也快。如果你边建模边推敲方案,那么就先建立一个大的体块,随着你设计的深入,逐渐将模型加入细节。你可以轻松的将一些粗糙的大体块替换为精致的模型,当然前提是你要有足够深入的设计。 导入CAD文件 将CAD文件导入su,然后通过简单地描一描线段,使它生成面,然后推推拉拉地建立起一个3D模型,这听起来确实令人兴奋。但是这样工作的效果实际上取决于你的CAD图的质量。 导入CAD的2D文件,实际上能产生许多令人头疼的麻烦。熟手画得简单的轮廓线的CAD 图不会产生什么大的 麻烦,生手画的细节繁多,杂乱无章的CAD图就不那么容易利用了。“带有小小的线段、转角处两条线没有相交、一条线和另外一条看上去平行实际上只差一点点”,由这些问题的CAD图,都会在你建立模型的时候成为你的绊脚石,似乎应该说是钢针,因为它们小的让你很难察觉和纠正。用这样的CAD图导入su作为底图,你花费在纠正错误上的时间反倒会比你节省的时间多。 接近完成的CAD图纸,实际上包含了大量你建模时用不着的信息。你在CAD制图中过分详细的分层方法或者是重叠的线等等,都是在su中建立模型所不需要的。如果你要用这样一张漏洞百出,复杂无比的CAD图纸导入su来建模,而你在之前要做的清理工作会浪费很多时间。(译者:所以不如在导入su后,马上炸开所有CAD中形成的块,将所有线归到一层,然后将这些变为一个组,作为底图,在它上面重新描一遍会更节省时间)。 即使是进行了良好分层的2D CAD图纸也不是没有问题的。记住:su的层不会为你隔离在不同层的线(也就是说,比如有三条线分属三个层,他们围合成一个面,这个面仍然会产生,而不会因为这三条线不在一个层上而不产生这个面。),su中的层仅仅是在视觉上区分线面的分类方法。这个特性同样适用于导入的CAD图。任何在一个层上的线如果与其他层上的线重合,那么在导入过程中都将被无情地清理掉。所以,在某些时候,一层一层地导入将会非常有用,每导入一个层的东西,su都会将其自动成组,也不会误杀重叠的线(译者:注意这里是说要将CAD中的不同层分别保存到不同的CAD文件,这样做是因为在CAD中关闭不可见的层也会被导入到su中)。 CAD中带有门窗的墙已经被门窗打断,如果你导入这样的CAD图就需要花费时间来补上门窗上下部分的墙面。

闪动图片制作教程

闪动图片制作教程[Photoshop&Imageready]版本 应玩友的要求发布一下内容,篇幅比较大,希望保持耐心。图片可能在浏览器中显示不完全或者显示不清 晰,请务必保存下来看。谢谢。 老样子同时发布一下声明。如果有朋友将愿意此文转载,那将是对我们莫大的支持,但出于我站的服务器使用效率,请转载的朋友使用自己的空间上传文件。如果出现文件链接在非天空发布区域使用,我们将不得不站在自己的利益角度上重新定位立场。望合作,再谢。 格式介绍——GIF的特点: 1.具有“多元化”的结构,能够存储多张图像——这是制作动画的基础。 2.调色板数据有“通用调色板”和“局部调色板”之分。 3.采用改进版的“LZW”压缩法,该压缩法优于“RLE”压缩法。 4.图像数据用一个字节存储一个像素点,GIF图像文件在压缩图像数据之前,必须先将图像数据处理成一 个字节只存储一个像素点的值。 5.根据标识符寻找数据区。GIF这种图像文件内的各种图像数据区和补充区,多数没有固定的长度和存放位置,为方便程序寻找数据区,就以数据区的第一个字节作为标识符,让程序能够判断所读的是哪种数据 区。 6.图像的数据排列分为“顺序排列”和“交*排列”两种方式。 7.图像文件最多支持256色存储,适合色块平涂或者简单的(注意区别简单的和不鲜艳的之间的区别) 图像。 基础程序要求以及介绍: 要求有附带imageready[IR]的photoshop[PS]版本。以及知道图像文件从PS转到IR的转换编辑方式的使 用。下图说明。

发送图片到手机 文中我使用了PS7.0完整版做例子来说明。由于程序的兼容性,PS CS 8和PS CS2 9的操作方法大同小异,也同时并不是说PS 5.0或者PS6.0就不能做,我想强调的一点就是只要有IR就可以做了,只不过我 手头上最老的PS软件就是7.0而已。 而流传中的所谓的迷你版,发布者在精简的过程中,把他们自己认为的不重要的内容(IR、WEB功能等都多多少少有所精简),所以迷你版一般不再附带IR。不是说所有可以下到的迷你版就一定没有IR,只是想表明,如果使用完全版的话,功能上的烦恼就会降低到最佳的限度。 PS从5开始就附带了IR,主要功能为网页制作,功能强大。配合PS神奇的2D想像空间满足能力,精彩之至。如今发展都CS2 9功能自然会比以前的有非常大的加强。但这不是我们讨论的重点,在这里什么需要使用的仅仅是IR带的一个小小的功能,也就是支持动画制作这个小功能。 必须指出,要流畅地完成这看似简单的操作,基本的操作认识是必不可少的,知道与能做是一个区别,而能做与熟练又是一个区别,再加合上我们的想像力,得到表达的话,那又是一个新的境界。当然,大多时 候行动会比想像更有用。 前期准备工作以及说明: 1.为减少等待的时间,我们同时打开PS和IR,方便文件在程序转换编辑方式的快速进行。 2.我们就以新发布的宠物小精灵剧场版的字幕发布帖LOGO来做为例子,为大家介绍这个流程。

照相馆日常图片处理教程

Photosop的基础知识 一、Photosop是ADOBE公司推出的图形图像处理软件,功能强大,广泛应用于印刷、广告设计、封面制作、网页图像制作、照片编辑等领域。利 用Photosop可以对图像进行各种平面处理。绘制简单的几何图形、给黑白图像上色、进行图像格式和颜色模式的转换。 二、Photosop7.0的启动与退出 1、启动Photoshop的方法: 单击开始/程序/Photoshop7.0即可启动.或者打开一个Photoshop文件也能够启动Photoshop. 2、退出Photoshop的方法: 单击关闭按钮或按下CTRL+Q组合键或ALT+F4组合键,都可以退出Photoshop。 三、Photoshop的窗口组成(标题栏、菜单栏、工具栏、工具箱、图像图口、控制面板、状态栏、Photoshop 桌面) 1、标题栏:位于窗口最顶端。 2、菜单栏:其中包括9个菜单。位于标题栏下方。 3、工具栏:位于菜单栏下方。可以随着工具的改变而改变。 4、工具箱:位于工具栏的左下方。 5、图像窗口:位于工具栏的正下方。用来显示图像的区域,用于编辑和修改图像。 6、控制面版:窗口右侧的小窗口称为控制面版。用于改变图象的属性。 7、状态栏:位于窗口底部,提供一些当前操作的帮助信息。 8、Photoshop桌面:Photoshop窗口的灰色区域为桌面。其中包括显示工具箱、控制面板和图像窗口。 四、图像窗口:图像窗口由(标题栏、图像显示区、控制窗口图标) 1、标题栏:显示图像文件名、文件格式、显示比例大小、层名称以及颜色模式。 2、图像显示区:用于编辑图像和显示图像。 3、控制窗口图标:双击此图标可以关闭图像窗口。单击此图标,可以打开一个菜单,选择其中的命令即可。

PS图片后期处理教程之照片构图

PS图片后期处理教程之照片构图 来源:网络转摘作者:佚名浏览:48次2009-12-1 15:41:35 数码摄影已经深入现代生活,照片的修改也变得非常容易。有的朋友倾向于使用傻瓜化的修图软件,期待在最短的时间里完成照片的美化工作。他们认为Photoshop是一款十分复杂、操作困难的软件。真的是这样吗?今天我们就用一个实例来了解一下Photoshop的快速修改技法。通过本例,大家可以学到合成构图、蒙版、画笔、快捷键的使用方法。 首先发出练习文件,感谢摄影师赵航先生为本例拍摄的素材。 模特:姿姿。85mm/F1.4D,光圈F1.8ISO 200,快门:1/1000秒,反光板补光。 图1 照片拍得很美,无论是用光还是模特的表现都非常好。我们需要做的修改工作是改变照片的构图,让模特与场景联系更加紧密。模特的视线是十分重要的元素,如果我们将她改为面向左方,就可以与树叶相呼应,照片会更有意境。 使用Photoshop打开素材图片,第一步,复制出一个与原图左右相反的新图层。 按下Ctrl+J,原图被复制为一个新图层,使用菜单“编辑→变换→水平翻转”,得到图2所示新层。这一步用时大约4秒。

图2 第二步,按Ctrl键临时切换到移动工具,将新图层拉到右侧,在覆盖底层人像的前提下将主体人物放置在黄金分割点上。单击图层面板下方的第三个按钮“添加蒙版”,为图层加上一个蒙版,这一步用时大约2秒。

图3 第三步,按D键,将前景色和背景色分别设置为白和黑,按X键将前景色和背景色互换,这样我们就将前景色设置为了黑色。按B键将当前工具转换为画笔,在蒙版上图像明显的边缘处涂抹,可以将边缘擦为半透明,上下图层很好地融合在一起。我们的修改工作就结束了,如图4所示。这一步工作4秒可以解决问题。最后按下Ctrl+Shift+S将图像另存为JPG格式即可,如果想在以后进行深入修改,可以使用Ctrl+S,保存为PSD文档,虽然文件大了点,但图像质量没有损失。 如果画笔的大小没有设置好,可以使用快捷键“[”和“]”改变画笔大小。如果画笔比较生硬,可以使用快捷键Shift+“[”键变软画笔。相反地,Shift+“]”可以将画笔变硬。使用这个方法,可以在很短的时间将画笔笔头设置为自己需要的大小和软硬。 如果在擦拭过程中不小心露出了下面的人物部分,可以按X键将前景色切换到白色,对擦坏的部分进行擦拭,可以将它再擦回来,类似于橡皮的反向工具。

相关主题
文本预览
相关文档 最新文档