当前位置:文档之家› Visual Basic 6 中使用WinSock深入浅出

Visual Basic 6 中使用WinSock深入浅出

Visual Basic 6 中使用WinSock深入浅出
Visual Basic 6 中使用WinSock深入浅出

VB中使用WinSock控件编写网络程序

WinSock控件能够通过UDP协议(用户数据报协议)或TCP协议(数据传输协议)连接到远程的机器并进行数据交换。这两种协议都能用来创建客户端和服务端应用程序。就像定时器控件一样,WinSock控件运行时没有一个可视的界面。

可能的用途

创建客户端应用程序,它能在信息到达中央服务器之前把用户的信息收集起来。

创建服务端应用程序,它能作为来自多个用户的数据一个集中处理点。

创建“聊天”程序。

协议的选择

当我们使用WinSock控件时,首先要确定的是使用TCP还是UDP协议。它们之间主要的区别在于连接状态:

TCP协议控件是一个基于连接的协议,就像电话机一样,用户必须在通话之前建立连接;

UDP是一个无连接的协议,两台计算机之间的事务处理就像传纸条一样:一台计算机向另一台计算机发送消息,但是它们之间并没有一个明确的连接路径。另外,发送的单个信息量的大小取决于网络。

通常,你要创建的应用程序的类别就决定了你要选择的协议。以下是几个能够帮助你选择合适的协议的问题:

当发送或接收数据时,该应用程序需要从服务端或客户端获得认证吗?如果要的话,那么TCP协议就正好需要在发送或接受数据前建立明确的连接。

要发送的数据量大吗?(就像图片、声音文件之类)一旦建立了连接,TCP协议就会保持连接并保证数据的完整性。但是,这种连接会占用的更多的处理器资源,成本也会更高一些。

数据是陆续传输的,还是一次全部传完呢?比如,如果你要创建的应用程序在某些任务完成时会告知具体的计算机,那么选择UDP协议会更合适一些。UDP协议也更适合于发送小量数据。

协议的配置

配置你的应用程序所用到的协议:在设计阶段,单击工具窗口里的协议,选择sckTCPProtocol或sckUDPProtocol。你也可以在代码里配置协议,就像下面这样:

Winsock1.Protocol=sckTCPProtocol

确定你的计算机名

要连接到远程的计算机,你必须知道它的IP地址或别名。IP地址是一串用句点分隔的3位数字。通常,计算机的别名更容易让人记住。

按下面的步骤可以找到你的计算机名:

在“任务栏”里单击“开始”

在“设置”选项里单击“控制面板”;

双击“网络”图标;

单击“网络标识”

在“计算机名”中显示的就是你的计算机名。

一旦你找到你的计算名,它就可以作为远程主机的属性来用了。

TCP连接入门

当用TCP控件创建应用程序的时候,必须首先明确你的程序是作为服务端还是客户端。创建服务端程序就意味着你的程序能够在指定的端口进行“监听”,而客户端则能够提出请求,服务端能够接受请求并实现连接。一旦连接建立起来,客户端和服务端就能够自由地进行通信。

创建服务端程序

下面是创建一个简单服务端程序的步骤:

创建一个标准EXE工程;

把默认窗体(Default form)的名字改为frmServer;

把form的标题(caption)改为TCP Server;

把Winsock控件拉到窗体中,并命名为tcpServer;

在窗体中添加2个文本框,分别命名为txtSendData和txtOutput…

在窗体中加入下列代码;

Private Sub Form_Load()

' Set the LocalPort property to an integer.

' Then invoke the Listen method.

tcpServer.LocalPort = 1001

tcpServer.Listen

frmClient.Show ' Show the client form.

End Sub

Private Sub tcpServer_ConnectionRequest _

(ByVal requestID As Long)

' Check if the control's State is closed. If not,

' close the connection before accepting the new

' connection.

If tcpServer.State <> sckClosed Then _

tcpServer.Close

' Accept the request with the requestID

' parameter.

tcpServer.Accept requestID

End Sub

Private Sub txtSendData_Change()

' The TextBox control named txtSendData

' contains the data to be sent. Whenever the user

' types into the textbox, the string is sent

' using the SendData method.

tcpServer.SendData txtSendData.Text

End Sub

Private Sub tcpServer_DataArrival _

(ByVal bytesTotal As Long)

' Declare a variable for the incoming data.

' Invoke the GetData method and set the Text

' property of a TextBox named txtOutput to

' the data.

Dim strData As String

tcpServer.GetData strData

txtOutput.Text = strData

End Sub

上面就是创建一个简单的服务端应用程序的过程。然而,要完成整个过程,你还得创建一个客户端程序。

创建TCP客户端程序

在工程中添加一个新的窗体(form),并命名为frmClient;

将窗体的标题(caption)改为TCP Client;

添加一个Windsock控件到窗体中,命名为tcpCllient;

添加2个文本框控件到frmClient窗体,分别命名为txtSend和txtOutput;

添加一个按钮控件(CommandButton)到窗体,命名为cmdConnecti;

将按钮控件标题(caption)改为Connect;

在窗体中添加下面代码:

注:确保将远程主机属性(RemoteHost property)改为你的计算机别名。

Private Sub Form_Load()

' The name of the Winsock control is tcpClient.

' Note: to specify a remote host, you can use

' either the IP address (ex: "121.111.1.1") or

' the computer's "friendly" name, as shown here.

tcpClient.RemoteHost = "RemoteComputerName"

tcpClient.RemotePort = 1001

End Sub

Private Sub cmdConnect_Click()

' Invoke the Connect method to initiate a

' connection.

tcpClient.Connect

End Sub

Private Sub txtSendData_Change()

tcpClient.SendData txtSend.Text

End Sub

Private Sub tcpClient_DataArrival _

(ByVal bytesTotal As Long)

Dim strData As String

tcpClient.GetData strData

txtOutput.Text = strData

End Sub

以上代码就能创建一个简单的客/服应用程序。要试着让两者建立连接,可以运行工程,单击Connect。在任意一个txtSendData文本框中输入文本,同样的文本信息就会出现在另一个窗体的txtOutput文本框中出现。

接受多个连接请求

上面介绍的服务端程序智能接受一个连接请求。但是,通过创建一组控件,并使用同样的控件来接受多个连接请求也是可能的。在这种情况下,你不需要关闭连接,只要创建新的控件实例(通过配置它的索引属性),调用新的实例中的接受方法。

下面的代码中,假定在一个叫sckServer的窗体中有一个Winsock控件,它的索引属性设置为0。这样这个控件就是控件数组的一部分。在声明段中,生命一个模块级变量intMax。在窗体的载入事件中,intMax被设置为0,数组中第一个控件的本地端口属性被设置为1001。

监听方法在控件中被调用,它被作为“监听控件”。每个连接请求到来时,代码会测试看它的索引(Index)是否为0(监听控件的值),如果是0,监听控件中intMax值增1,并用这个值创建新的控件实例。新的控件实例被用来接受连接请求。

Private intMax As Long

Private Sub Form_Load()

intMax = 0

sckServer(0).LocalPort = 1001

sckServer(0).Listen

End Sub

Private Sub sckServer_ConnectionRequest _

(Index As Integer, ByVal requestID As Long)

If Index = 0 Then

intMax = intMax + 1

Load sckServer(intMax)

sckServer(intMax).LocalPort = 0

sckServer(intMax).Accept requestID

Load txtData(intMax)

End If

End Sub

UDP连接入门

创建一个UDP应用程序比创建TCP程序更简单,因为UDP协议不需要一个确定的连接。在上面的TCP应用程序中,其中一个Winsock控件必须明确的被设置为“监听”,而另一个必须用连接方法发起连接。

相反,UDP协议不需要明确的连接。要在2个控件之间传送数据,(连接的双方)必须完成三个步骤:

确定远程主机属性为对方的计算机名;

确定远程主机属性为第二个控件的本地端口属性;

调用约定方法指定要被使用的本地端口。(下面将详细讨论该方法)创建一个的UDP连接端

创建一个标准EXE工程;

将默认窗体命名为frmPeerA;

在窗体中添加一个Winsock控件,命名为udpPeerA;

在属性(Properties)页,单击协议(Protocol),改为UDPProtocol;

添加2个文本框控件窗体中,分别命名为txtSend和txtOutput;

在窗体中添加下面代码:

Private Sub Form_Load()

' The control's name is udpPeerA

With udpPeerA

' IMPORTANT: be sure to change the RemoteHost

' value to the name of your computer.

.RemoteHost= "PeerB"

.RemotePort = 1001 ' Port to connect to.

.Bind 1002 ' Bind to the local port.

End With

frmPeerB.Show ' Show the second form.

End Sub

Private Sub txtSend_Change()

' Send text as soon as it's typed.

udpPeerA.SendData txtSend.Text

End Sub

Private Sub udpPeerA_DataArrival _

(ByVal bytesTotal As Long)

Dim strData As String

udpPeerA.GetData strData

txtOutput.Text = strData

End Sub

创建第二个UDP连接端

添加标准窗体到工程中;

将窗体名改为frmPeerB;

将窗体标题改为Peer B;

在窗体中添加一个Windsock控件并命名为udpPeerB;

在属性页中单击Protocol,改为UDPProtocol;

添加2个文本框到窗体中,分别命名为txtSend和txtOutput;

在窗体中添加下面代码:

Private Sub Form_Load()

' The control's name is udpPeerB.

With udpPeerB

' IMPORTANT: be sure to change the RemoteHost

' value to the name of your computer.

.RemoteHost= "PeerA"

.RemotePort = 1002 ' Port to connect to.

.Bind 1001 ' Bind to the local port.

End With

End Sub

Private Sub txtSend_Change()

' Send text as soon as it's typed.

udpPeerB.SendData txtSend.Text

End Sub

Private Sub udpPeerB_DataArrival _

(ByVal bytesTotal As Long)

Dim strData As String

udpPeerB.GetData strData

txtOutput.Text = strData

End Sub

关于约定方法

上面代码中所涉及的,在创建UDP应用程序时必须调用约定方法。这个约定的方法保留了控件用到的本地端口。例如,当你绑定控件到端口1001时,其他的应用程序都不能用该端口监听。当你希望阻止其他的应用程序使用某端口的时候,这个就很有用。

这个约定方法也引起了争议。如果机器里有多个网络适配器,本地IP允许你指定用哪个适配器。如果你忽略了这个争议性问题,控件就会使用计算机控制面板设置中,在网络控制面板对话框里列出的第一个网络适配器。

在使用UDP协议时,你可以自由的切换远程主机和远程端口属性,同时保留本地端口范围。但是在使用UDP协议时,你必须在改变远程主机和远程端口属性时关闭连接。

--------------------------------------------------------------------------------

VB6.0开发网络应用的5个技巧

Visual Basic 6.0(以下简称VB 6)以其强大的功能为广大软件开发人员所喜爱,被用来开发各种应用程序。随着Internet的迅猛发展,VB 6在网络方面的应用开发也越来越多。本文介绍笔者在实际编程开发中总结的5个技巧,希望能为进行网络开发的朋友们提供一点参考。

连通检测

许多应用程序常常需要在程序中直接进行联网操作,以便进行一些必要的处理(如在线注册和在线帮助等),这就要求我们在程序中建立某些连接。很多软件在不知用户是否联网的情况下就启动浏览器查找网址,结果只能查出一错误网页,既浪费用户时间又没有任何效果。如果应用程序在查找网页之前能自动判断用户是否已经联网,就会节约许多时间,提高程序运行效率。

下面是实现网络连通检测的VB 6代码:

Private Sub Form_Load()

If IsConnected = TRUE Then

MsgBox (“您已经连通了Internet!”)

End If

If IsConnected = FALSE Then

MsgBox (“您还没有连通Internet!”)

End If

End Sub

Option Explicit

/*有关的API声明和定义*/

Public Declare Function RasEnumConnections Lib “RasApi32.dll” Alias “RasEnumConnectionsA” (lpRasCon As Any, lpcb As Long, lpcConnections As Long) As

Public Declare Function RasGetConnectStatus Lib “RasApi32.dll” Alias “RasGetConnectStatusA” (ByVal hRasCon As Long, lpStatus As Any) As Long

/*常数和变量的设定*/

Public Const RAS95_MaxEntryName = 256

Public Const RAS95_MaxDeviceType = 16

Public Const RAS95_MaxDeviceName = 32

Public Type RASCONN95

dwSize As Long

hRasCon As Long

szEntryName(RAS95_MaxEntryName) As Byte

szDeviceType(RAS95_MaxDeviceType) As Byte

szDeviceName(RAS95_MaxDeviceName) As Byte

End Type

Public Type RASCONNSTATUS95

dwSize As Long

RasConnState As Long

dwError As Long

szDeviceType(RAS95_MaxDeviceType) As Byte

szDeviceName(RAS95_MaxDeviceName) As Byte

End Type

/*函数IsConnected返回连通的状态,如果为True则表示已连通*/

Public Function IsConnected() As Boolean

Dim TRasCon(255) As RASCONN95

Dim lg As Long

Dim lpcon As Long

Dim RetVal As Long

Dim Tstatus As RASCONNSTATUS95

TRasCon(0).dwSize = 412

lg = 256 * TRasCon(0).dwSize

RetVal = RasEnumConnections(TRasCon(0), lg, lpcon)

If RetVal <> 0 Then

MsgBox “错误”

Exit Function

End If

Tstatus.dwSize = 160

RetVal = RasGetConnectStatus(TRasCon(0)

.hRasCon,Tstatus)

If Tstatus.RasConnState = &H2000 Then

IsConnected = TRUE

Else

IsConnected = FALSE

End Function

启动拨号网络中的连接

由于拨号网络不是一个可执行文件,所以要启动拨号网络,需要借助explorer.exe 。但若是要启动拨号网络中的某一个连接,则要借助rundll.exe 和rnaui.dll两个文件。启动方法如下(假定此连接名称为163):

Shell “rundll rnaui.dll,RnaDial 163”,vbNormalFocus

上面假定了连接名称,但在实际编程中我们是不知道连接名称的。在窗体上放置一个命令按钮(cmdCallConnect),在其单击事件中进行连接处理。下面的代码介绍如何取得默认的连接名称并启动它:

Option Explicit

/*有关的API声明*/

Private Declare Function RegOpenKeyEx Lib “advapi32” Alias “RegOpenKeyExA” (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Private Declare Function RegQueryvalueEx Lib “advapi32” Alias “RegQueryvalueExA” (ByVal hKey As Long, ByVal lpvalueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal szData As String, ByRef lpcbData As Long) As Long

Private Declare Function RegCloseKey Lib “advapi32”(ByVal hKey As Long) As Long

/*常数的设定*/

Const HKEY_CURRENT_USER = &H80000001

Const ERROR_SUCCESS = 0

在命令按钮(cmdCallConnect)中加入如下代码:

Private Sub cmdCallConnect_Click()

/*启动默认拨号连接*/

Shell “rundll rnaui.dll,RnaDial” +GetConnect, vbNormalFocus

End Sub

/*取得连接的函数(GetConnect)*/

Public Function GetConnect() As String

Dim hKey As Long

Dim SubKey As String

/*主键*/

hKey = HKEY_CURRENT_USER

SubKey = “RemoteAccess”

/*取得默认连接名*/

GetConnect=GetRegvalue(hKey,SubKey, “Default”)

End Function

/*取得注册的函数(GetRegvalue)*/

Public Function GetRegvalue(hKey As Long,lpszSubKey As String,szKey As String) As Variant

On Error GoTo ErrorRoutineErr:

Dim phkResult As Long

Dim lResult As Long

Dim szBuffer As String

Dim lBuffSize As Long

/*创建缓冲区*/

szBuffer = Space(255)

lBuffSize = Len(szBuffer)

/*打开注册键*/

RegOpenKeyEx hKey, lpszSubKey, 0, 1,phkResult

/*取得查询结果*/

lResult = RegQueryvalueEx(phkResult, szKey, 0, 0, szBuffer, lBuffSize)

/*关闭注册键*/

RegCloseKey phkResult

/*返回结果*/

If lResult = ERROR_SUCCESS Then

GetRegvalue = Left(szBuffer, lBuffSize -1)

Else

GetRegvalue =“”

End If

Exit Function

/*意外处理*/

ErrorRoutineErr:

GetR egvalue =“”

End Function

设计E-mail的接收部分

在VB 6菜单上点击“工程/部件...”,弹出“部件”对话框,在对话框的控件卡中选中Microsoft MAPI Controls 6.0控件,点击“确定”按钮后,工具箱上增加了MAPIMessage和MAPISession两个图标。

在Form上加入一个MAPIMessage控件,取名为MAPIMessage1;再加入一个MAPISession控件,取名为MAPISession1;再加入三个TextBox控件,分别取名为Subject、

Content和Indexno,将它们的Caption分别改为邮件标题、邮件内容和邮件索引号;在TextBox前各加入一个Label控件,将Caption分别改为标题、内容和索引号。

将MAPIMessage1的各项属性设置如下:

·DownLoadMail=TRUE;

·LogonUI=TRUE;

·NewSession=FALSE;

·UserName=“接收E mail”。

在Form上加入一个按钮(Getmail),将其Caption改为取邮件。

在Getmail_Click()事件中加入以下程序代码,程序的功能是使我们接收E mail。

MAPIMessage1.Fetch

Form1.Caption=MAPIMessage1.MsgCount

MAPIMessage1.MsgIndex=CINT(Indexno.text)

Subject.Text = MAPIMessage1.MsgNoteText

Content.Text = MAPIMessage1.MsgSubject

其中Fetch命令用来将信件抓到系统存储器的inbuffer中。我们将信件抓回来后,可以通过MsgCount属性知道信件数量,接着可以用MsgIndex设置要看哪一封信件的内容、标题等。

设计E-mail的发送部分

1.参数设置

进入Exchange系统,选择新增设置文件后屏幕上会显示所需要的信息服务,选择Internet Mail。

把设置文件的名称设为test。屏幕会显示两个选项,您可以选择以Modem方式或以Network 方式连接。笔者所用的是Modem方式;假若您是使Internet专线,就要选择Network 方式。

选择Modem方式后,Exchange会要求我们输入邮件服务器的IP地址。接着将Transform Message的模式设置为Automatic,这样当我们连接到邮件服务器时,新的信息会自动下载到本地端。接下来,将您所使用的E mail地址、全名、口令和下载路径等一一设置好。

2.程序设计

在Form上加入一个MAPIMessage控件,取名为MAPIMessage1;加入一个MAPISession控件,取名为MAPISession1;并加入三个TextBox控件,取名为Subject、Content和Addr。并在三个TextBox前各加入一个Label,将Caption分别改为标题、内容和地址。

将MAPIMessage1的各项属性设置如下:

·DownLoadMail=TRUE;

·LogonUI=TRUE;

·NewSession=FALSE;

·UserName=“发送E mail”。

这里将DownLoadMail设置为TRUE,当程序和邮件服务器第一次连接时,会将新的邮件下载到本地端。将LogonUI设置为TRUE,则当您程序中Logon名称输入错误时,系统会显示一个Message Box来让您输入正确的名称。

由于这个程序仅使用一个Session,所以可将NewSession设置成FALSE。如果您有许多Session要建立的话,则将它设置成TRUE。UserName中所填的,是我们在Exchange 中所新增的设置文件名称,如果没有填内容的话,系统将会显示一些Message Box请您输入文件。

在Form上加入三个按钮,Logon、Logoff和Send,并分别将它们的Caption改为登录、离网和发送。

在Logon_Click()事件中加入以下程序代码,程序的功能是使我们登录到邮件服务器:

MAPISession1.SignOn

MAPIMessage1.SessionID=MAPISession1.SessionID

sgBox “Your ID is” +Str

(MAPISession1.SessionID)

其中MAPISession1.SignOn是作登录的动作。在登录时,因为已经将MAPIMessage1控件的DownLoadMail属性设置为TRUE,所以可以在屏幕上看到Message Box,显示系统正在下载邮件。登录成功后,系统会传回一个SessionID,将该ID填入MAPIMessage1的SessionID中,这样就可以利用该Session来传送E mail,同时用Message Box通知用户发送成功。

在Logoff_Click()事件中加入以下程序代码,程序的功能是使我们离开邮件服务器:MAPIS1.SignOff

在Send_Click()事件中加入以下程序代码,程序的功能是使我们发送E mail:

https://www.doczj.com/doc/105155279.html,pose

MAPIMessage1.RecipDisplayName = Addr.text

MAPIMessage1.AddressResolveUI = TRUE

MAPIMessage1.MsgSubject = Subject.text

MAPIMessage1.MsgNoteText = Content.text

MAPIMessage1.Send

MsgBox “您发送成功啦!”

其中Compose命令的主要目的是使您可以改变RecipDisplayName的内容,将所需传送的E mail地址、主题和文章内容分别填入RecipDisplayName、MsgSubject和MsgNoteText,接着用Send命令发送出去

[b]访问Internet并调用Explorer

1.实现方法和控件介绍

首先在VB 6菜单上点击“工程/部件...”,弹出“部件”对话框,在对话框的控件卡中选中Microsoft Internet Controls控件,点击“确定”按钮后工具箱上增加一个WebBrowser图标,将它加到Form中。

该控件有以下几个重要的方法和事件:

·GoHome:装入IE设定的起始页;

·Navigate:装入页面,如Object.Navigate url,其中url为URL地址,如

https://www.doczj.com/doc/105155279.html,;

·GoBack:返回上一个页面;

·GoForward:进入下一个页面;

·Stop:停止载入页面;

·BeforeNavigate Event:在每次装入页面前调用该事件;

·StatusTextChange Event:每次浏览器的操作状态改变时调用该事件。

2.具体的访问方法

将WebBrowser图标添加到Form中。并在Form上添加4个命令按钮,Name属性分别为:GoButton、BackButton、ForwardButton和StopButton,通过这4个命令按钮可以实现对浏览器的操作。在Form上添加一个TextBox控件,用来输入和显示当前的页面地址。在Form上添加一个Label控件,用来显示当前浏览器操作状态。

/*载入Form*/

Private Sub Form_Load()

/*程序装入后进入IE设定的起始页*/

WebBrowser1.GoHome

End Sub

/*改变Form尺寸*/

Private Sub Form_Resize()

/*改变窗口大小后同时改变控件的大小*/

WebBrowser1.Width = Form1.ScaleWidth

WebBrowser1.Height = Form1.ScaleHeight -900

Label1.Width = Form1.ScaleWidth

Label1.Top = Form1.ScaleHeight -300

End Sub

Private Sub BackButton_Click()

/*返回上一个页面*/

WebBrowser1.GoBack

End Sub

Private Sub ForwardButton_Click()

/*进入下一个页面*/

WebBrowser1.GoForward

End Sub

Private Sub GoButton_Click()

/*浏览输入的页面*/

WebBrowser1.Navigate (Text1.Text)

End Sub

Private Sub StopButton_Click()

/*停止浏览*/

WebBrowser1.Stop

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

/*输入地址后进行浏览*/

If KeyAscii = 13 Then

WebBrowser1.Navigate (Text1.Text)

End If

End Sub

Private Sub WebBrowser1_BeforeNavigate(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Cancel As Boolean)

/*将当前显示的页面的URL地址显示在Text1上*/

Text1.Text = URL

End Sub

Private Sub WebBrowser1_StatusTextChange(ByVal Text As String)

/*Label1显示当前页面装入情况*/

Label1.Caption = Text

End Sub

--------------------------------------------------------------------------------

VB6实现局域网多站点互连完全手册

随着时代的发展,我们已经步入了信息化时代,网络的普及和应用,使得越来越多的编程人员加入网络软件开发的行列。不过现在对于比较完整的介绍在局域网中多个站点互连的文章,笔者还未见到,这篇文章较完整的介绍了如何利用Visual Basic 6的Winsock控件实现局域网中多个站点在客户机/服务器模式下的互连,并给出了几种连接方案进行比较,对于Winsock编程过程中遇到的一些问题做了解答。

这里对Winsock控件的属性、方法和事件的介绍限于篇幅就不介绍了,下面以最简单的C/S模式下一台服务器和一台客户机的连接来说明其整个连接过程。

用框图表示如图1所示。首先运行服务器端的程序,使TcpServer处于监听状态,然后运行客户机端的程序,单击【连接服务器】按钮后,客户机端调用Connect方法呼叫服务器(根据RemoteHostIP远程计算机IP地址和RemotePort远程计算机端口号两个参数),然后客户机便处于正在连接服务器状态,等待服务器的响应。客户机调用Connect方法触发了服务器ConnectRequest事件,这时服务器端可以在此事件中判断是否要接受客户机的请求,如要就调用Accept方法,并置标志位说明已成功连接客户机。服务器端调用Accept 方法后又触发了客户机端Connect事件,说明服务器端接受客户端的请求,双方已经建立连接了,这时再置客户机端的标志位,这就是一个完整的连接过程。当服务器或客户机调用Close方法关闭连接时,都会触发对方的Close事件,使其关闭连接。另外建立连接后发送数据的情况是客户机通过调用SendData方法发送数据给服务器,会触发服务器端的DataArrival事件,在这个事件中,服务器端可以调用GetData或PeekData方法把客户机

发来的数据保存起来。服务器给客户机发信息同理。要注意一点的是,在服务器的Close

事件中应该加上继续监听的代码,这样客户机才可以继续呼叫服务器。

Winsock控件实现多机互连方案

下面是实现多机互连的三种方案。这里以三台机(分别命名为1号机、2号机和3号机)为例介绍。

方案一:一台机作为服务器,其余两台机作为客户机

1号机作为服务器,用一个Winsock控件数组负责监听客户机的呼叫请求并用来与客户机建立连接。用TcpServer(2)和TcpServer(3)两个Winsock控件数组分别与2号机和3号机建立连接。

这里采用的是动态加载和卸载Winsock控件数组来实现连接的,也就是服务器一定要开着,下面的客户机才能与其通过Winsock控件实现通讯,当服务器已经与其中的一台建立连接后,其它客户机还要呼叫服务器时,服务器就会加载新的Winsock控件来与其建立连接,当客户机退出连接时,服务器再卸载该Winsock控件。服务器建立连接时是根据客户机的IP地址来接受响应的,所以可以方便的区分不同客户机的呼叫请求。

不过这种方案会遇到一些问题:比如只要服务器关闭,其它客户机之间就无法进行数据交换了,而在服务器开的情况下,可以通过服务器的转发来完成客户机之间的数据交换。

方案二:三台机同时作为服务器和客户机

1号机、2号机和3号机没有层次等级之分,采用C/S模式。比如1号机既可以作为服务器接受其它两台机的呼叫请求,又可以作为客户机对其它两台机进行呼叫。用1号机做个比方:在1号机程序窗口中用两个Winsock控件数组,分别命名为TcpServer和TcpClient,TcpServer(0)用来对客户机进行监听,TcpServer(2)和TcpServer(3)是动态加载用来接受相应的客户机的请求来建立连接的。而TcpClient(2)和TcpClient(3)不是动态加载的,而是在Form_Load初始化过程中加载,用来呼叫相应的服务器。

这样也是可以实现多机互连的,不过也有些问题。如果1号机作为客户机呼叫2号机并已经收到2号机的响应建立了一条通讯链路,这时1号机又作为服务器接收到2号机的呼叫请求,并且也建立了一条通讯链路。这样二台机之间建立了两条链路,理论上两台机只要有一条链路就可以正常通讯,现在建立了两条链路,收发数据是否正常呢?通过测试,收发数据不会出错:当1号机给2号机发数据时,是通过1号机的TcpServer(2)或TcpClient (2)发送数据给2号机,而2号机是通过其TcpClient(1)或TcpServer(1)接收1号机的数据,双方两条链路互不干扰。不过这种方案还是不太可取,因为加载控件需要占用内存资源,每两台机之间其实只需一条链路就能正常通讯,现在又多了条链路,这对系统有限的资源是极大的浪费。

方案三:三台机有差互连

先解释一下什么叫有差互连。具体做法是:1号机只作为服务器监听2号和3号机的呼叫请求而不呼叫它们;2号机既是客户机又是服务器:作为客户机只呼叫1号机,而作为服务器监听3号机的呼叫请求;3号机只作为客户机对1号机和2号机进行呼叫,而不具备服务器监听的功能。所以说这几台机的连接是有差的,这种连接方式不会在两台机之间建立两条链路,因为网络中任意两台机只有一台可以呼叫对方或监听对方的呼叫请求,这样无论如何都不会产生两条通讯链路,节省了系统资源,又满足了局域网中任意两台机互连的要求,由此看来这个方案是最优方案。

下面介绍方案三的实现过程。

1号机

1号机的窗体(Form)上放置两个Winsock控件,一个名为TcpLsn,负责监听2号机和3号机的呼叫请求,另外一个为TcpConn,这是个控件数组,Index为2,即已经加载了TcpConn(2),这个控件是为了和2号机建立连接。在初始化过程中(Form_Load)设置服务器的监听端口号(TcpLsn.LocalPort)并使其处于监听状态(TcpLsn.Listen),并置与客户机连接成功的标志(TcpConnected数组,布尔型常量)为False。当TcpLsn监听到某个客户机的呼叫请求后(具体是哪个客户机是根据客户机IP地址判断),在TcpLsn的ConnectionRequest事件中动态加载TcpConn控件并调用Accept方法接受客户机的请求,与其建立连接(如果客户机是2号机,则无需再加载控件,因为在Form_Load中已经加载过了)。要注意的是,TcpLsn只是用来监听客户机的呼叫请求,而不是用来与客户机建立连接的,TcpConn控件数组才是与客户机建立连接的。当某一客户机断开连接时,会触发Tcpconn控件数组的Close事件,在这里可以根据客户机的IP地址来调用Close方法关闭与其相连的Tcpconn控件,并动态卸载之。同样TcpConn(2)不能卸载,因为其不是动态加载的。

2号机

2号机窗体(Form)上也放置两个Winsock控件,一个名为TcpLsn,负责监听3号机的呼叫请求,另外一个为TcpConn,这是个控件数组,Index为1,即已经加载了TcpConn (1),这个控件是为了与1号机建立连接。在初始化过程中(Form_Load)同样要设置2号机作为服务器的监听端口号,然后使其处于监听状态,还要设置与其他几个站点连接成功的标志:TcpConnected(数组)。2号机作为服务器监听的过程同上,而呼叫1号机是通过VB6的定时器(Timer)实现的,定时器的作用是每隔一段时间(可自行设定间隔事件)触发Timer事件,即执行Timer事件中的代码,利用这个原理就可以实现一运行此程序就自动进行呼叫工作,首先将定时器间隔时间定为1000毫秒(定时器命名为TimConn,TimConn.Interval = 1000),然后在定时时间到事件中(TimConn_Timer)调用TcpConn 的Connect方法呼叫1号机,当然要加一个判断:当TcpConnected(1)=False且TcpConn (1).State=sckClosed时才进行呼叫。

在客户机调用了TcpConn方法后,其连接状态是sckConnecting(正在连接服务器,值为6)。如果此时1号机在一段时间内(连接服务器超时时间)没有接受请求或者根本没有开启,那么就会触发连接错误事件(TcpConn_Error),这时连接状态是sckError(连接错误,值为9),就无法再进行连接服务器的工作了,如果1号机此时打开,客户机也不会再呼叫服务器了。要解决这个问题,可以在TcpConn的错误事件中(TcpConn_Error)加上一条语句:TcpConn(Index).Close即在错误事件中关闭当前的连接,使当前TcpConn

评论

GENESIS2000入门教程中英文转换

?GENESIS2000入门教程 Padup谷大pad paddn缩小pad reroute 扰线路Shave削pad linedown缩线line/signal线Layer 层in 里面 out外面Same layer 同一层spacing 间隙cu铜皮 Other layer另一层positive 正 negative负Temp 临时 top顶层bot底层Soldermask 绿油层silk字符层 power 电源导(负片) Vcc 电源层(负片) ground 地层(负片) apply 应用 solder 焊锡singnal 线路信号层soldnmask绿油层input 导入 component 元器件Close 关闭zoom放大缩小create 创建 Reste 重新设置corner 直角step PCB 文档Center 中心 snap 捕捉board 板Route 锣 带repair 修理、编辑 resize (编辑)放大缩小analysis 分析Sinde 边、面Advanced 高级 measuer 测量PTH hole 沉铜孔NPTH hole 非沉铜孔output 导出 VIA hole 导通孔smd pad 贴片PAD replace 替换fill 填充 Attribute 属性round 圆square 正方形rectangle 矩形

Select 选择include 包含exclude 不包 含step 工作单元 Reshape 改变形状profile 轮廓drill 钻 带rout 锣带 Actions 操作流程analyis 分析DFM 自动修改编辑circuit 线性 Identify 识别translate 转换job matrix 工作 室repair 修补、改正 Misc 辅助层dutum point 相对原点corner 直 角optimization 优化 origin 零点center 中心global 全 部check 检查 reference layer 参考层reference selection 参考选 择reverse selection 反选 snap 对齐invert 正负调换symbol 元 素feature 半径 histogram 元素exist 存在angle 角 度dimensions 标准尺寸 panelization 拼图fill parameters 填充参 数redundancy 沉余、清除 层英文简写层属性 顶层文字Top silk screen CM1( gtl ) silk-scren 顶层阻焊Top solder mask SM1 ( gts ) solder-mask 顶层线路Top layer L1 ( gtl ) signal 内层第一层power ground (gnd) PG2 ( l2-pw ) power-ground(负片) 内层第二层signal layer L3 signal (正片) 内层第三层signal layer L4 signal (正片)

GENESIS基础——步骤

新建料号: 导入资料、查看并更正错误: 首先查看层,若出现细线或出现大块的图案为D码有问题!必须在Rep层中点击右键选择D码学习器去修改,打开后出现Wheel Template Editor窗口!若确认是单位错了,就在菜单Parms中选择Global 中修改单位,点击后出现Global Parameters Popup对话框,改了单位后点击Ok即可,然后Actions 菜单中选择Translate Wheel执行D码文件,若有红色问题,则要手工修改,选中问题点击Sym:,确认形状,输入对应的参数,点击Ok即可,完成此动作,在File中选Closs关闭文件。 用同样的方法一层一层的修改其它问题层,改完后最后修改drl钻带文件。首先确认尺寸,然后在Rep 层右键打开D码学习器去修改,确认单位,若有问题则同上方法修改,然后再查看有否连孔,若有则是格式不对,再查看孔位是否很散,若有则是省零格式错误。常用的几种格式:英制inch、mil有:2:3 2:4 2:.5 3:5公制mm有:3:3 4:4 在钻带层(drl)点击右键选择Aview Ascii查看文字档,看最长的坐标,数X、Y有几位数,看坐标如有八位数则用3.5和4.4去修改,在钻带层点击Parameters中选Numberef Fromat修改小数格式,坐标单位同时跟小数格式一改,同时钻带单位也要和坐标单位一致! 省零格式:Leading 前省零,None不省零,Trailing 后省零。 Gerber格式通常是前省零,钻带格式通常是后省零。 层命名、排序、定属性: 改完后点击Ok即可,所有格式改完后,打开所有层,执行进去。执行后,打开 Job Matrix特性表命名层名 层对齐: 打开所有影响层,在层名点击右键,选Register对齐,点击后出现Register Layer Popup窗口。在Referenee Layer:中选择参考层线路层。除了文字层和分孔层不能自动对齐外,其它层可自动对齐,自动对齐后马上关闭影响层。单一打开没有对齐的那层,抓中心,出现Sanp Popup窗口,选Center,然后选Edit→Move→Same Layer 同层移动,点OK,再点击外形框左下角,点击右键,接着打开参考层,按S+A 转换工作层,再点击原参考层外型框即可。图形相隔太远的,可以用Ctrl+A暂停,然后框选放大,确定目标时按S+A转换工作层,再电击原参考层左下角即可。 建外形框: 所有层对齐后,打开分孔图,用网选命令选中外型框,用Edit→Copy→Other Layer 复制到新层,重新命名层名为gko(外型框),点击OK。单一打开gko,框选板内所有不要的东西删除,改单位,然后用Edit→Reshape→Change Symbol更改符号,出现Chang Feetar窗口,其中Symbol(外型线线粗):R200。建Profile虚线: 更改后,用网选命令选中外型框,用Edit→Create→Profile创建虚线。

GENESIS 菜单入门教程

GENESIS2000入门教程 Padup谷大pad paddn缩小pad reroute 扰线路Shave削pad linedown缩线line/signal线Layer 层 in 里面 out外面Same layer 同一层spacing 间隙 cu 铜皮 Other layer另一层positive 正negative负 Temp 临时 top 顶层bot 底层Soldermask 绿油层 silk 字符层 power 电源导(负片) Vcc 电源层(负片) ground 地层(负片) apply 应用 solder 焊锡singnal 线路信号层 soldnmask绿油层 input 导入 component 元器件Close 关闭zoom放大缩小create 创建 Reste 重新设置corner 直角step PCB文档

Center 中心 snap 捕捉board 板Route 锣带repair 修理、编辑 resize (编辑)放大缩小analysis 分析Sinde 边、面Advanced 高级 measuer 测量PTH hole 沉铜孔 NPTH hole 非沉铜孔output 导出 VIA hole 导通孔smd pad 贴片PAD replace 替换fill 填充 Attribute 属性round 圆square 正方形rectangle 矩形 Select 选择include 包含exclude 不包含step 工作单元 Reshape 改变形状profile 轮廓drill 钻带rout 锣带 Actions 操作流程 analyis 分析 DFM 自动修改编辑circuit 线性 Identify 识别 translate 转换 job matrix 工作室

GENESIS脚本编程教材PERL

Perl学习笔记 (2) 1.Perl简介 (2) 2.数据类型 (4) 2.1概览 (4) 2.2命名空间(Namespaces)4 2.3标量(Scalars)5 2.4数组(Arrays)8 2.5关联数组(Hashes)11 2.6引用(References)12 2.6.1Perl引用简介 (12) 2.6.2创建引用 (12) 2.6.3使用引用 (13) 2.6.4符号引用 (14) 2.6.5垃圾回收与弱引用 (15) 2.7数据结构 (16) 2.7.1Arrays of Arrays16 2.7.2Hash of Arrays18 2.7.3Arrays of Hashes20 2.7.4Hashes of Hashes22 2.7.5Hashes of Functions24 3操作符(Operators) (25) 3.1概述 (25)

3.2Perl操作符一览 (25) 3.3各种操作符使用说明 (27) 3.3.1项与左赋列表操作符 (27) 3.3.2箭头操作符 (27) 3.3.3自增自减 (27) 3.3.4乘方 (27) 3.3.5表意一元操作符 (28) 3.3.6捆绑操作符 (28) 3.3.7乘操作符 (28) 3.3.8加操作符 (28) 3.3.9移位操作符 (29) 3.3.9有名一元和文件测试操作符 (29) 3.3.10关系操作符 (30) 3.3.11位操作符 (31) 3.3.12C风格逻辑操作符 (31) 3.3.13范围操作符 (31) 3.3.14条件操作符 (31) 3.3.14赋值操作符 (32) 3.3.15逗号操作符 (32) 3.3.16逻辑and,or,not和xor操作符 (33) 3.4与C操作符的比较 (33) 3.4.1Perl操作符的特别之处 (33)

genesis 全套最快速制作 操作步骤

Designer By:Anjie Date:2015-09-09 资料整理 1.检查整理资料(解压缩.zip,打印客户PDF等资料). 2.INPUT资料(注意钻孔D-CODE属性设置) 3.更改层命名,定义层属性及排序. 4.层对齐及归原点(最左下角). 5.存ORG. 整理原始网络 6.钻孔核对分孔图(MAP) 7.挑选成型线至outline层 8.工作层outline层移到0层. 9.整理钻孔(例如:将大于6.4mm钻孔移动到outline层, 其它层NPTH,SLOT移 动到DRL层) 10.整理成型线(断线、缺口、R8) 11.整理outline(将outline层需要钻孔的移动到drl层) 12.创建Profile. 13.板外物移动到0层. 14.核对0层成型线及板外物是否移除正确. 15.内层网络检查(如负性假性隔离) 16.防焊转PAD 17.线路转PAD

18.分析钻孔(检查线路PAD是否有漏孔、重孔修正,内层short) 19.定义SMD属性 20.存NET 21.打印原稿图纸. 编辑钻孔 22.补偿钻孔 (1)检查原始孔径是否正确(不能有“?”号) (2)合刀排序 (3)输入板厚与补偿值(PTH+4 /PTH+6) (4)定义钻孔属性(VIA,PTH,NPTH)主要定义VIA属性NPTH在整理原始网络前定义. (5)输入公差(注意单位). (6)检查最大与最小孔是否符合规范 (7)短SLOT孔分刀,8字孔分刀。(尾数+1 或-1) 23.校对钻孔中心(参照TOP防焊及TOP线路) 24.分析钻孔 25.短SLOT孔加预钻孔 26.挑选NPTH属性的孔移动到新建NPTH层. 内层负片编辑 1.检查有无负性物件(负性物件需要合并) 2.层属性是否为NEG 3.对齐钻孔(内层负片为影响层,参考钻孔层对齐)

GENESIS菜单入门教程

G E N E S I S菜单入门教程 The latest revision on November 22, 2020

GENESIS2000入门教程 Padup谷大pad paddn缩小pad reroute 扰线路 Shave削pad linedown 缩线 line/signal 线 Layer 层 in 里面 out外面Same layer 同一层spacing 间隙 cu 铜皮 Other layer 另一层positive 正negative负 Temp 临时 top 顶层bot 底层Soldermask 绿油层 silk 字符层 power 电源导(负片) Vcc 电源层(负片) ground 地层(负片) apply 应用 solder 焊锡singnal 线路信号层 soldnmask绿油层input 导入 component 元器件Close 关闭zoom放大缩小 create 创建

Reste 重新设置corner 直角step PCB文档Center 中心 snap 捕捉board 板 Route 锣带 repair 修理、编辑 resize (编辑)放大缩小 analysis 分析 Sinde 边、面Advanced 高级 measuer 测量PTH hole 沉铜孔 NPTH hole 非沉铜孔output 导出 VIA hole 导通孔smd pad 贴片PAD replace 替换 fill 填充 Attribute 属性 round 圆square 正方形rectangle 矩形 Select 选择include 包含 exclude 不包含step 工作单元 Reshape 改变形状 profile 轮廓 drill 钻带 rout 锣带 Actions 操作流程 analyis 分析 DFM 自动修改编辑circuit 线性

Genesis2000 培训教材

Genesis2000 应用 第一節 Genesis軟體的進入和CAM軟件各大菜单的介紹 Greate: 新建创建,文件名只能用小写字母数字.(料號) Database: 文件默认名称 Copy: 复制(料號) Dupiate: 自我复制 Move job: 移动文件包 Rename: 重新命名 Delete: 删除(Ctrl+B) Strip job: 导入脚本包 Export job: 输出文件包(TGZ) Import job: 导入文件包(TGZ) Archive 存檔①Secure 安全保持 ②Acquire 獲取料號 Save: 保存 Close job: 关闭文件包(退出料號) Script: 导脚本 Locks: 锁定 ①Cheek out: 上锁 ②Cheek in: 解锁 Locks statas: 锁定程序 Version: 版本号 Quit: 推出Genesis(關閉) Select: 选择 ①Select all: 选择所有 ②Unselect: 关闭选择、未使用选择 Open: 打开 Update window: 刷新窗口(Ctrl+F) Entity attribates: 实体属性 Input: 导入,导入Gerber Netlist anlyzer: 网络分析 Electical Testing 测试电源 ①Netlist Optimizer 网络优化(Ctrl+O) ②Electrical Test Manager 测试电源管理器(Ctrl+T) Out put: 输出文檔 Message: 信号 View Log: 查看记录 Auto drill manage:输出钻带管理器

GENESIS操作手册 文件

CAM操作手冊 1.客戶提供的壓縮檔案(*.ZIP,*.EXE,*.ARJ**.LZH)用PC電腦解壓縮, 先分析檔案(*.PDF,*.DWG,*.DXF,*.DOC,*.TXT等) 是可用列印的 那些是GERBER圖案檔(*.PHO,*.LGX,*.GBX,*.DPF,*.DXF *.PLT等) 可傳至工作站台解讀原稿檔案 2.進入GENESIS2000畫面 3.選出FILE/Create 出現室窗 在Entity name:輸入廠內料號 在DATABASE:輸入PSC-1(因SAMPLE及量產的料號有時沒有完整做好 固暫時放置於此, 量產的料號待暗房看好底片就會將料號搬到PSC(量產區) 我們有分量產區(也就是暗房看好的底片) DATABASE是PSC 之後在回到PC電腦將是GERBER的圖案(*.PHO,*.LGX,*.GBX,*.DPF,*.DXF *.PLT等)用CUTE ftp傳送資料至GENESIS工作站(JIA1,JIA2,JIA3,JIA4,JIA5) 路徑:/RAID/PSC-1/JOBS/JOBS/廠內料號/INPUT下

4. 在回到GENESIS2000畫面將該料號打開(用滑鼠點2下) 進入 在input 用滑鼠點2下打開進入出現下列的畫面 動作一.在PATH:路徑/RAID/PSC-1/JOBS/JOBS/廠內料號/INPUT按ENTER 就會出現GERBER檔案 二.按Identify(分析檔案的格式format內容) 三.在step:鍵入org(原稿存放區)再按Translate轉gerber圖案傳至step:org 裡, 再選按editor進入stupors(看圖檔的形態是否正常及尺寸比例)若是不符,則須返回input再次分析檔案的格式( format)內容 四.離開此畫面按close

Genesis 2000软件介绍

Genesis 2000软件介绍 Genesis 单词本身意思为:创始;起源;发生,生成 Genesis2000 是个线路板方面的计算机辅助制造软件,它是由以色列的Orbotech与Valor的合资公司----Frontline公司开发的,而且它还在不断开发更多功能,它还允许你可以自己开发设计适合自己规范的功能。 类似Genesis2000的线路板方面的计算机辅助制造软件还有很多,比如CAM350、V2000、GC-CAM、U-CAM、ParCAM等等,但这些软件跟Genesis2000相比: 1、功能没Genesis2000强大,最突出的是Genesis2000能自动修正许多错误。 2、没Genesis2000好学,学习难度大。 3、操作起来没Genesis2000简单,Genesis2000更形象直观。 由于Genesis2000的优势太多,被许多大小线路板厂和光绘公司广泛采用,买不起正版的也情愿用盗版的干活。必须明确的是:我们的培训不是教你设计线路板,而是把人家设计出来的线路板,根据厂里的机器能力,用Genesis2000去处理后,为生产各工序提供某些工具(比如各种菲林、钻带、锣带等),方便生产用,起的是辅助制造作用。也就是说学的是CAM范围,而不属于CAD范围。 一般来说,线路板厂接到客户订单时,客户会以电脑文件的形式提供他自己的样品资料,我们就是修正客户提供的原始资料文件,使它方便自己厂里的机器生产出符合客户要求的线路板。 举个例子说:钻孔部门的钻孔机是先把钻孔文件读进机器里,再按钻孔文件的内容去钻孔。假设客户要求某个型号的线路板上某类孔要钻40mil,有时厂里的钻孔机却读不懂客户提供的钻孔文件,因此无法直接用客户的原始文件去生产,即使有时钻孔机能读懂客户提供的原始钻孔文件,直接只钻40mil也是不行的,由于线路板制作过程中钻完孔后还要经过的后面几步会使孔壁再加上铜,最后做出来只会小于40mil。基于以上原因,我们把孔加大后再把钻孔文件输出为厂里钻机能读懂的文件即可。这就是计算机辅助制造(CAM)的作用,用来帮助实际生产的。 菲林是爆光工序用的,跟生活中的照相底片类似,爆光那道工序就是把底片上的线路图象印到铜面上,然后把不要的铜用药水蚀刻掉,留下有用的铜形成线路。而菲林是光绘机绘出来的,那么光绘机是怎么绘的呢?它是根据光绘文件的内容去做,而光绘文件实际是我们用Genesis2000做好的资料输出来的,我们的资料又是在客户提供的原始资料的基础上修改的,只不过修改的时候考虑到了厂里的机器能力。菲林按工序可分为内层菲林、外层菲林、防焊菲林、文字菲林。 菲林是感光后有图象的胶片,可以理解为你照相后得到的那张底片,只不过上面的图象不是人相,而是线路图象而已,当然它的大小比你的照相底片要大。 光绘文件是光绘机用来绘制菲林用的电脑文件,你用手摸不到的,存在电脑上,可以通过某种方式提供给光绘机用,它里面的代码内容机器能读懂,是告诉机器怎么控制光线照射,从而形成图象。 钻孔文件(又叫钻带)也是一种电脑文件,你摸不到它的,他里面内容是钻孔机要用的钻刀顺序、钻嘴大小、钻孔位置等 Genesis2000采用Valor Genesis 2000 CAM系统,可将CAM作业流程依不同之层数及工料规格,做成多项标准之模块,自动化分析,编修数据处理,减少人工错误并增加作业效率。 1. D-code及Gerber自动输入,避免人工输入错误的风险。 2. 原稿Net list与工作片Net list比较,避免CAM设计造成之人为疏失。 3. On line DRC(设计规则检查)设计全程,可避免功能信号被更动,线宽、间距信号,不因编修而变更。 4. 可分析检查PCB Gerber如: (1) PWR GND断、短路 (2) 钻孔是否遗漏 (3) 焊垫是否遗漏 (4) 防焊是否遗漏 (5) 焊垫是否超出至防焊面

Genesis2000入门教程

Keyou2007汇总Genesis2000入门教程及快捷键 基本单词 Padup paddn涨缩pad reroute扰线路 shave削(pad..)linedown缩线 line/signal线 layer层 in里面 out外面 same layer同一层 spacing间隙 cu铜 other layer另一层 positive正 negative负 temp临时 top顶层 bot底层 soldermask绿油层 silk字符层 power&VCC电源层(负片)ground地层(负片) apply应用 solder阻焊 singnal线路信号层soldnmask绿油层 input导入 component元器件 close关闭 zoom放大缩小 create创建 reset重新设置corner直角 step PCB文档 center中心 snap捕捉 board板 route锣带 repair修理、编辑 resize(编辑)放大缩小 analysis分析 sinde边、面 advanced高级 measuer测量 PTHhole沉铜孔 NPTHhole非沉铜孔 Output导出 VIAhole导通孔 Smd pad贴片pad Replace替换 Fill填充 Attribute属性 Round圆 Square正方形 Rectangle矩形 Select选择 Include包含 Exclude不包含 Step工作单元 Reshape改变形状 Profile轮廓 Drill钻带 Rout锣带 Actions操作流程 Analyis分析 DFM自动修改编辑 Circuit线性 Identify识别 Translate转换 Job matrix工作室 Repair修补、改正 Misc辅助层 Dutum point相对原点 Corner直角 Optimization优化 Origin零点 Center中心 Global全部 Check检查 Reference layer参考层 Reference selection参考选 择 Reverse selection反选 Snap对齐 Invert正负调换 Symbol元素 Feature半径 Histogram元素 Exist存在 Angle角度 Dimensions标准尺寸 Panelization拼图 Fill parameters填充参数 Redundancy冗余、清除 层次定义规则 层标号层属性 顶层文字Top silk screen1s(cm1、gtl)Silk-scren 顶层阻焊Top solder mask1m(sm1、gts)Solder-mask 顶层线路Top layer1a(L1、gt1)Signal 内层第一层Powerpround(gnd)2a(pg2、12-pw)Power-ground(负片) 内层第二层Signal layer3a(L3)Signal(正片) 内层第三层Signal layer4a(L4)Signal(正片) 内层第四层Power ground(vcc)5a(L5、15-vcc)Power-ground(负片)外层底层Bottom layer6a(L6、gb1)Signal 底层阻焊Bottom solder mask6m(sm6)Solde-mask 底层文字Bottom silk screen6s(cm6)Silk-scren

GENESIS 个人笔记版

新建料号: 在File→Create(创建),弹出Create Entity Popup对话框,其中Entity Name(输入料号)输入厂内料号,Database(文件库名),双击可获得,为固定的!点击Ok确定即可!导入文件:双击料号,进入Engineering Toolkit窗口 导入资料、查看并更正错误: 首先查看层,若出现细线或出现大块的图案为D码有问题!必须在Rep层中点击右键选择D码学习器去修改,打开后出现Wheel Template Editor窗口!若确认是单位错了,就在菜单Parms中选择Global中修改单位,点击后出现Global Parameters Popup对话框,改了单位后点击Ok即可,然后Actions菜单中选择Translate Wheel执行D码文件,若有红色问题,则要手工修改,选中问题点击Sym:,确认形状,输入对应的参数,点击Ok即可,完成此动作,在File中选Closs关闭文件。 用同样的方法一层一层的修改其它问题层,改完后最后修改drl钻带文件。首先确认尺寸,然后在Rep层右键打开D码学习器去修改,确认单位,若有问题则同上方法修改,然后再查看有否连孔,若有则是格式不对,再查看孔位是否很散,若有则是省零格式错误。常用的几种格式:英制inch、mil有:2:3 2:4 2:.5 3:5 公制mm有:3:3 4:4 4:2 在钻带层(drl)点击右键选择Aview Ascii查看文字档,看最长的坐标,数X、Y有几位数,看坐标如有八位数则用3.5和4.4去修改,在钻带层点击Parameters中选Numberef Fromat修改小数格式,坐标单位同时跟小数格式一改,同时钻带单位也要和坐标单位一致!省零格式:Leading 前省零,None不省零,Trailing 后省零。 Gerber格式通常是前省零,钻带格式通常是后省零。 层命名、排序、定属性: 改完后点击Ok即可,所有格式改完后,打开所有层,执行进去。执行后,打开Job Matrix特性表命名层名 art001代表顶层线路。在Layer中命名gtl art002代表底层线路。在Layer中命名gbl dd001代表分孔图。在Layer中命名gdd sm001代表顶层绿油,在Layer中命名gts sm002代表底层绿油。在Layer中命名gbs ssb00代表底层文字。在Layer中命名gbo sst00代表顶层文字,在Layer中命名gto

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