文档库 最新最全的文档下载
当前位置:文档库 › CAD_VBA例子

CAD_VBA例子

CAD_VBA例子
CAD_VBA例子

AutoCAD VBA

一、A u t o C A D V B A简介

?VBA(Visual Basic for Application)

VBA是AutoCAD的一种开发工具,具有强大的功能。Microsoft VBA是一种面向对象的编程环境,它与VB一样具有很强的开发功能。VBA与VB之间的区别就是VBA AutoCAD在同一处理

空间运行,为AutoCAD提供智能和快速的编程环境。VBA功能:创建对话框和其它界

面;

●创建工具栏;

●建立模块级宏指令;

●提供建立类模块的功能;

●具有完善的数据访问和管理能力;(ADO、DAO、RDO,C/S)

●能够使用Win32API提供的功能,建立应用程序与操作系统之间的通信;在AutoCAD中使用VBA的好处Visual Basic编程环境易学易用;

●VBA作为AutoCAD的一个过程运行,这使程序执行速度变得非常快;

●对话框结构快速有效,允许开发者在设计时启动应用程序并能得到快速反

馈;(易于代码纠错和维护)

●对象可以独立出来,也可以嵌入AutoCAD图形。灵活性很强。

二、理解类和对象在AutoCAD VBA界面中有许多不同类型的对象。例如:

●图形对象,如线、弧、文本和标注都是对象;

●样式设置,如线型和标注样式均为对象;

●组织结构,如图层、组合和图块也是对象;

●图形显示,如视图和视口都是对象;

●甚至图形和AutoCAD应用程序本身也是对象。对象是通过分层方式来组织的,应用程序对象为根对象。这种分层结构的视图被归结为对象模型。对象模型提供了你访问下一层对象的途径。

集合对象是预先定义的对象,它包含所有相似对象的实例(即这些对象的父对象)。集合对象有以下的对象:

文档(Documents)集合

包含所有在当前AutoCAD进程打开的文档。

模型空间(ModelSpace)集合

包含在模型空间中的所有图形对象(图元)。

图纸空间(PaperSpace)集合

包含在活动图纸空间布局中的所有图形对象(图元)。

图块(Block)对象

包含在指定图块定义中的所有图元。

图块(Blocks)集合

包含在图形中的所有图块。

字典(Dictionaries)集合

包含在图形中的所有字典。

标注样式(DimStyles)集合

包含在图形中的所有标注样式。

组合(Groups)集合

包含在图形中的所有组合。

超级链接(Hyperlinks)集合

包含提供图元的所有超级链接。

图层(Layers)集合

包含在图形中的所有图层。

布局(Layouts)集合

包含在图形中的所有布局。

线型(Linetypes)集合

包含在图形中的所有线型。

菜单条(MenuBar)集合

包含当前显示于AutoCAD的所有菜单。

菜单组(MenuGroups)集合

包含当前装载到AutoCAD中的所有菜单和工具栏。

注册应用程序(RegisteredApplications)集合

包含在图形中的所有注册的应用程序。

选择集(SelectionSets)集合

包含在图形中所有的选择集。

字型(TextStyles)集合

包含在图形中所有的文字样式。

UCSs 集合

包含在图形中所有的用户坐标系统(UCS)。

视图(Views)集合

包含在图形中所有的视图。

视口(Viewports)集合

包含在图形中所有的视口。

三、理解对象的属性和方法

每一对象都关联着属性和方法。属性描述着单个对象的外观,而方法是一种可在单个对象上执行的行为。当对象创建后,你就可通过属性和方法查询和编辑对象。

例如,一个圆对象有圆心属性。该属性以三维世界坐标系统的坐标描述了圆的圆心。更改圆的圆心,你只要简单地将该属性设定为新的坐标。圆对象也有称为偏移(Offset)的方法。该方法可在相对于现存圆的指定偏移距离创建一个新的对象。关于圆对象所有属性和方法的列表,请参考AutoCAD ActiveX和VBA参考中的圆对象。

四、开发实例

目录

1、程序和文档窗口设置 (4)

2、视图 (5)

3、二维图形绘制 (5)

4、图层 (7)

5、用户输入 (8)

7、栅格图像 Raster (10)

8、计算面积 (10)

9、加载菜单 (11)

10、‘增加菜单按钮和创建菜单按钮 (11)

11、加载线型 (12)

12、文件File (13)

13、控制命令输入窗口SendCommand (14)

14、三维绘图 (14)

15、块 (综合练习) (15)

16、运行宏 (17)

1、程序和文档窗口设置

'''***************************************************************************** Sub MyWindow()

MsgBox ThisDrawing.WindowTitle '= "杨彪绘图01"

ThisDrawing.WindowState = acMin 'acMax 'acNorm

End Sub

Sub SetMyAcadTitle()

Dim hw&

hw = GetParent(GetParent(ThisDrawing.hwnd))

SetWindowText hw, "杨彪地质编录出图子系统"

Call InitialDZBL '初始化

ThisDrawing.WindowState = acMax

End Sub

Sub SetMyAcadWindow()

ThisDrawing.Application.WindowState = acNorm

ThisDrawing.Application.WindowLeft = 100

ThisDrawing.Application.WindowLeft = 100

ThisDrawing.Application.Width = 600

ThisDrawing.Application.Height = 600

End Sub

2、视图

'''************************************************************************** Sub MyZoomView1()

ThisDrawing.Application.ZoomExtents

ZoomAll

End Sub

Sub MyZoomView2()

Dim VPn1 As Variant, VPn2 As V ariant

VPn1 = ThisDrawing.Utility.getpoint(, " 缩放窗口左下点:")

VPn2 = ThisDrawing.Utility.getpoint(, " 缩放窗口右上点:")

ThisDrawing.Application.ZoomWindow VPn1, VPn2

End Sub

3、二维图形绘制

‘addline

Sub Myaddline()

Dim ln As AcadLine

Dim startPt(2) As Double, EndPt(2) As Double

startPt(0) = 0

startPt(1) = 0

startPt(0) = 100

startPt(1) = 50

Set ln = ThisDrawing.ModelSpace.AddLine(startPt(), EndPt())

ln.color = acRed

ZoomAll

End Sub

‘LightWeightPolyline

Sub MyLightWeightPolyline ()

Dim MyPln As AcadLWPolyline

Dim Pnts(9) As Double

For I = 0 To 9

Pnts(I) = Rnd * 100

Next

' Pnts(0) = PntMin(0): Pnts(1) = PntMin(1)

' Pnts(2) = PntMin(0) + DWidth: Pnts(3) = PntMin(1)

' Pnts(4) = PntMin(0) + DWidth: Pnts(5) = PntMin(1) + DHeight

' Pnts(6) = PntMin(0): Pnts(7) = PntMin(1) + DHeight

' Pnts(8) = PntMin(0): Pnts(9) = PntMin(1)

Set MyPln = ThisDrawing.ModelSpace.AddLightWeightPolyline(Pnts)

Dim n As Integer

n = UBound(Pnts)

For K = 0 To (n / 2 - 1) '宽度设定

MyPln.SetWidth K, K / 5, Rnd * 10

Next

MyPln.color = acYellow

ZoomAll

End Sub

‘Polyline

Sub MyPolyline()

Dim MyPln As AcadPolyline

Dim Pnts(8) As Double '''必须是3*N的数组

For I = 0 To 8

Pnts(I) = Rnd * 100

Next

Set MyPln = ThisDrawing.ModelSpace.AddPolyline(Pnts)

Dim n As Integer

n = UBound(Pnts)

For K = 0 To (n / 3 - 1) '宽度设定

MyPln.SetWidth K, K / 5, Rnd * 10

Next

MyPln.color = acYellow

ZoomAll

End Sub

‘Light Circle and Hatch

Sub MyCircle()

Dim Cir(0) As AcadCircle

VPn1 = ThisDrawing.Utility.getpoint(, " 输入插入点:")

Set Cir(0) = ThisDrawing.ModelSpace.AddCircle(VPn1, 10#)

Set MyHatchObj = ThisDrawing.ModelSpace.AddHatch(0, "Solid", True) MyHatchObj.AppendOuterLoop (Cir)

MyHatchObj.color = 1

MyHatchObj.Evaluate

End Sub

Sub Mytext()

Dim MyTxt As AcadText

Dim StrTxt As String

Dim VPnts(2) As Double

StrTxt = "HoHai UniverSity 河海大学土木工程学院测绘工程系"

Set MyTxt = ThisDrawing.ModelSpace.AddText(StrTxt, VPnts, 100)

MyTxt.color = acRed

ZoomAll

End Sub

Sub MyPoint()

Dim Pnts(0 To 2) As Double

Dim I As Integer, J As Integer

Dim MyPoint As AcadPoint

Pnts(I) = 50

Pnts(I) = 60

Set MyPoint = ThisDrawing.ModelSpace.AddPoint(Pnts)

ZoomAll

End Sub

4、图层

Sub GetlayerName()

Dim MyLay As AcadLayer

Dim BLExist As Boolean

BLExist = False

Dim LayExit As Boolean

LayExit = False

For Each MyLay In https://www.wendangku.net/doc/6c4457734.html,yers

If https://www.wendangku.net/doc/6c4457734.html, = "ybNewLayer" Then LayExit = True

MsgBox https://www.wendangku.net/doc/6c4457734.html,, vbInformation

Next

If LayExit Then

MsgBox "图层:'ybNewLayer' 已经存在!", vbCritical

Else

https://www.wendangku.net/doc/6c4457734.html,yers.Add "ybNewLayer"

End If

https://www.wendangku.net/doc/6c4457734.html,yers("ybNewLayer").LayerOn = True

https://www.wendangku.net/doc/6c4457734.html,yers("ybNewLayer").Lock = False

ThisDrawing.ActiveLayer = https://www.wendangku.net/doc/6c4457734.html,yers("ybNewLayer")

'https://www.wendangku.net/doc/6c4457734.html,yer = "ybNewLayer"

https://www.wendangku.net/doc/6c4457734.html,yers("ybNewLayer").color = 1

End Sub

Sub Ch2_IterateLayer()

' 在图层集合中循环

On Error Resume Next

Dim I As Integer

Dim msg As String

msg = ""

For I = 0 To https://www.wendangku.net/doc/6c4457734.html,yers.count - 1

msg = msg + https://www.wendangku.net/doc/6c4457734.html,yers.Item(I).Name + vbCrLf

Next

MsgBox msg

End Sub

5、用户输入

'''*********************************************************************** Sub GetInput()

Dim VPn1 As Variant, StrTF As String, KwordList As String, Str1 As String

Dim Obj1 As AcadObject

VPn1 = ThisDrawing.Utility.getpoint(, " 输入插入点:")

Str1 = ThisDrawing.Utility.GetString(1, "请输入点号:")

KwordList = "Y N"

ThisDrawing.Utility.InitializeUserInput 1, KwordList

StrTF = ThisDrawing.Utility.GetKeyword(" 是否显示选点的坐标?(是Y)/(否N):")

If UCase(StrTF) = "Y" Then

MsgBox "点" & Str1 & ":" & "X=" & VPn1(0) & " ; " & "Y=" & VPn1(1) & " : " & "Z=" & VPn1(2), vbInformation

Else

End If

ThisDrawing.Utility.GetEntity Obj1, Pnt1, "选择一个对象:"

Obj1.color = 1

End Sub

Sub MyZoomView3()

Str1 = ThisDrawing.Utility.GetString(1, "请按回车键:")

ThisDrawing.Application.ZoomScaled 0.7, acZoomScaledRelative

End Sub

6、选择集合'''**** SelectionSets ***************************

Sub MySelectionSets()

Dim K As Integer

Dim ssetObj As AcadSelectionSet

Dim objCollection As AcadEntity

Dim ob As AcadEntity

Dim I As Integer

For I = ThisDrawing.SelectionSets.count - 1 To 0 Step -1

ThisDrawing.SelectionSets(I).Delete

Next I

' ThisDrawing.Utility.GetEntity objCollection, Pnt1, "选择一个对象:"

' objCollection.color = 1

Set ssetObj = ThisDrawing.SelectionSets.Add("ybssa")

' Set ssetObj = ThisDrawing.ActiveSelectionSet

ssetObj.Select acSelectionSetAll

If ssetObj.count > 0 Then

MsgBox "选择集中对象数目: " & ssetObj.count

For Each ob In ssetObj

ob.color = acMagenta

Next

End If

End Sub

7、栅格图像Raster

Sub InsertRaster()

Dim a As AcadRasterImage

Dim b(2) As Double

Dim ly As AcadLayer

Dim PicFileName As String

Dim factor As Double

factor = 2#

Set ly = https://www.wendangku.net/doc/6c4457734.html,yers.Add("底图")

PicFileName = "E:\图片\Bliss.jpg"

b(0) = 100

b(1) = 100

b(2) = 0

Set a = ThisDrawing.Application.ActiveDocument.ModelSpace.AddRaster(PicFileName, b, factor, 45)

a.Transparency = True

https://www.wendangku.net/doc/6c4457734.html,yer = "底图"

ThisDrawing.Application.ZoomExtents

ThisDrawing.SaveAs "E:\yangbiao.dwg"

End Sub

8、计算面积

'''************************计算面积**************************************

Sub Ch3_CalculateDefinedArea()

Dim p1 As Variant

Dim p2 As Variant

Dim p3 As Variant

Dim p4 As Variant

Dim p5 As Variant

' 从用户处取得点

p1 = ThisDrawing.Utility.getpoint(, vbCrLf & "第一个点: ")

p2 = ThisDrawing.Utility.getpoint(p1, vbCrLf & "第二个点: ")

p3 = ThisDrawing.Utility.getpoint(p2, vbCrLf & "第三个点: ")

p4 = ThisDrawing.Utility.getpoint(p3, vbCrLf & "第四个点: ")

p5 = ThisDrawing.Utility.getpoint(p4, vbCrLf & "第五个点: ")

' 由这些点创建二维多段线

Dim polyObj As AcadLWPolyline

Dim vertices(0 To 9) As Double

vertices(0) = p1(0): vertices(1) = p1(1)

vertices(2) = p2(0): vertices(3) = p2(1)

vertices(4) = p3(0): vertices(5) = p3(1)

vertices(6) = p4(0): vertices(7) = p4(1)

vertices(8) = p5(0): vertices(9) = p5(1)

Set polyObj = ThisDrawing.ModelSpace.AddLightWeightPolyline _

(vertices)

polyObj.Closed = True

ThisDrawing.Application.ZoomAll

' 显示多段线的面积

MsgBox "通过定义的点形成的面积为" & _

polyObj.Area, , "计算定义的面积"

End Sub

9、加载菜单

‘加载菜单

Sub MenuAutocad()

Dim acMenuGroup As AcadMenuGroup

For Each acMenuGroup In ThisDrawing.Application.MenuGroups

acMenuGroup.Unload

Next

Set acMenuGroup = ThisDrawing.Application.MenuGroups.Load("acad.mnc", True) End Sub

10、‘增加菜单按钮和创建菜单按钮

Sub CreateMenuFirst2()

Set acApp = ThisDrawing.Application

Dim acMenu As AcadPopupMenu

Dim acMenuItem As AcadPopupMenuItem

Dim NewacMenu As AcadPopupMenuItem

Set acMenu = acApp.MenuGroups(0).Menus("文件(&F)")

Set acMenuItem = acMenu.AddMenuItem(0, "杨彪", "._OPEN ")

Set acMenuItem = acMenu.AddMenuItem(0, "杨彪4", "-vbarun showpic2 ")

Set acMenu = ThisDrawing.Application.MenuGroups(0).Menus.Add("杨彪111") Set acMenuItem = acMenu.AddMenuItem(0, "放大", ".Z 1.5XP ")

Set acMenuItem = acMenu.AddMenuItem(1, "缩小", ".Z 0.7XP ")

Set acMenuItem = acMenu.AddMenuItem(2, "全景显示", ".Z A ")

Set acMenuItem = acMenu.AddMenuItem(3, "最大显示", ".Z E ")

Set acMenuItem = acMenu.AddMenuItem(4, "鸟瞰", "._DISVIEWER ")

Set acMenuItem = acMenu.AddMenuItem(5, "移动", ".PAN ")

acMenu.InsertInMenuBar 10

acApp.MenuGroups(0).SaveAs "d:\MyMenu.mnu", 1

End Sub

‘增加工具栏按钮和创建工具栏

Sub CreateToolFirst()

Set acApp = ThisDrawing.Application

Dim acToolbar As AcadToolbar

Dim acToolbarItem As AcadToolbarItem

Dim ToolbarItem As AcadToolbarItem

On Error Resume Next

Set acToolbar = ThisDrawing.Application.MenuGroups(0).Toolbars("常用")

Set ToolbarItem = acToolbar.AddToolbarButton(0, "杨彪22", "help1", "._OPEN ")

Call ToolbarItem.SetBitmaps("E:\图标\1.ico", "E:\图标\2.ico")

Set ToolbarItem = acToolbar.AddToolbarButton(0, "杨彪124", "help2", "-vbarun showpic2 ")

Set acToolbar = ThisDrawing.Application.MenuGroups(0).Toolbars.Add("杨彪1111") Set ToolbarItem = acToolbar.AddToolbarButton(0, "放大", "help3", ".Z 1.5XP ")

Call ToolbarItem.SetBitmaps("E:\图标\3.ico", "E:\图标\3.ico")

Set ToolbarItem = acToolbar.AddToolbarButton(1, "缩小", "help4", ".Z 0.7XP ")

Call ToolbarItem.SetBitmaps("E:\图标\4.bmp", "E:\图标\4.bmp")

Set ToolbarItem = acToolbar.AddToolbarButton(2, "全景显示", "help5", ".Z A ")

Set ToolbarItem = acToolbar.AddToolbarButton(3, "最大显示", "help6", ".layer ")

Call ToolbarItem.SetBitmaps("E:\图标\5.ico", "E:\图标\5.ico")

acToolbar.Visible = True

acApp.MenuGroups(0).SaveAs "d:\mymenu.mnu", 1

End Sub

11、加载线型

'加载线型的子程序

Sub MLoadLineTypes()

Dim BL0 As Boolean

Dim I As Integer, ILen As Integer

Dim Str1 As String

Dim StrLine As String, StrLin As String

StrLin = ThisDrawing.Application.Path + "\Support\" + "DZBL.lin"

If Dir(StrLin) = "" Then

MsgBox "没有找到线型文件" + StrLin + "不能进行操作", vbInformation, "错误"

End

End If

Open StrLin For Input As #1

On Error Resume Next

Do While Not EOF(1)

Line Input #1, StrLine

StrLine = Trim(StrLine & " ")

ILen = Len(StrLine)

If ILen > 1 Then

Str1 = Mid(StrLine, 1, 1)

If Str1 = "*" Then

For I = 1 To ILen

If Mid(StrLine, I, 1) = "," Then

Exit For

End If

Next

StrLine = Mid(StrLine, 2, I - 2)

BL0 = False

Call LineTypeExist(StrLine, BL0)

If Not BL0 Then '线型不存在则加载

ThisDrawing.Linetypes.Load StrLine, StrLin

End If

End If

End If

Loop

Close #1

'*FH3_LINE,FH3_LINE ----XXX----XXX----XXX----XXX

End Sub

12、文件File

'''**** File ***********************************

Sub Myfile()

Dim StrFilename As String

StrFilename = "C:\Documents and Settings\yb.LH\桌面\drawing2.dwg"

ThisDrawing.Application.Documents.Open StrFilename

For I = 0 To ThisDrawing.Application.Documents.count - 1

MsgBox ThisDrawing.Application.Documents(I).Name

Next

ThisDrawing.Application.Documents("Drawing5.dwg").Activate '''注意大小写

ThisDrawing.Application.Documents("Drawing2.dwg").Save

ThisDrawing.Application.Documents("Drawing2.dwg").SaveAs "d:\drawing2.dwg"

ThisDrawing.Application.Documents("drawing2.dwg").Close

End Sub

13、控制命令输入窗口SendCommand

'''****************************************************************************** Sub MySendCommand()

ThisDrawing.SendCommand Chr(13) '回车

ThisDrawing.SendCommand Chr(32) '空格

ThisDrawing.SendCommand Chr(27) 'ESC

ThisDrawing.SendCommand Chr(27) + "Z E "

ThisDrawing.SendCommand "_line "

ThisDrawing.SendCommand "_pan "

End Sub

14、三维绘图

Sub yb3DMap()

Dim pt(2) As Double, z As Double

Dim box As Acad3DSolid

pt(0) = 500

pt(1) = 500

pt(2) = -5

Set box = ThisDrawing.ModelSpace.AddBox(pt, 1500, 1500, 10)

box.color = acYellow

For I = 1 To 200

pt(0) = Rnd * 1000

pt(1) = Rnd * 1000

z = Int(Rnd * 300) + 50

pt(2) = z / 2#

Set box = ThisDrawing.ModelSpace.AddBox(pt, Abs(Rnd * 100) + 20, Abs(Rnd * 100) + 20, z)

box.color = Int(Rnd * 100)

Next

ZoomAll

ThisDrawing.SendCommand "-view _seiso "

ThisDrawing.SendCommand Chr(27)

ThisDrawing.SendCommand "_3dcorbit "

End Sub

3DMesh

Sub Example_Add3DMesh() ' This example creates a 4 X 4 polygonmesh in model space.

Dim meshObj As AcadPolygonMesh

Dim mSize, nSize, count As Integer

Dim points(0 To 47) As Double

'Create the matrix of points

points(0) = 0: points(1) = 0: points(2) = 0

points(3) = 2: points(4) = 0: points(5) = 1

points(6) = 4: points(7) = 0: points(8) = 0

points(9) = 6: points(10) = 0: points(11) = 1

points(12) = 0: points(13) = 2: points(14) = 0

points(15) = 2: points(16) = 2: points(17) = 1

points(18) = 4: points(19) = 2: points(20) = 0

points(21) = 6: points(22) = 2: points(23) = 1

points(24) = 0: points(25) = 4: points(26) = 0

points(27) = 2: points(28) = 4: points(29) = 1

points(30) = 4: points(31) = 4: points(32) = 0

points(33) = 6: points(34) = 4: points(35) = 0

points(36) = 0: points(37) = 6: points(38) = 0

points(39) = 2: points(40) = 6: points(41) = 1

points(42) = 4: points(43) = 6: points(44) = 0

points(45) = 6: points(46) = 6: points(47) = 0

mSize = 4: nSize = 4

'creates a 3Dmesh in model space

Set meshObj = ThisDrawing.ModelSpace.Add3DMesh(mSize, nSize, points)

'Change the viewing direction of the viewport to better see the polygonmesh

Dim NewDirection(0 To 2) As Double

NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1

ThisDrawing.ActiveViewport.Direction = NewDirection

ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport

ZoomAll

End Sub

15、块 (综合练习)

Sub MyBlock()

Dim MySS As AcadSelectionSet

Dim PntTxtSta(0 To 2) As Double, PntTxtEnd(0 To 2) As Double, DTxtAngle As Double '文字插入点,角度

Dim MyPln As AcadLWPolyline

Dim Str1 As String, Str2 As String

Dim StrLineType As String, DLineWidth As Double, LLineColor As Long '线型名称、宽度、颜色

Dim Pns As Variant, Pntsta As Variant, PntEnd As V ariant, Pntln(0 To 3) As Double

Dim ExpObj As Variant

Call DeleAllSelect '删除所有选择集

Set MySS = ThisDrawing.SelectionSets.Add("ssa")

MySS.Select acSelectionSetAll

If MySS.count < 1 Then

Exit Sub

End If

For I = MySS.count - 1 To 0 Step -1

Str1 = MySS(I).ObjectName

If Str1 = "AcDbBlockReference" Then

ExpObj = MySS(I).Explode

MySS(I).Delete

For J = 0 To UBound(ExpObj)

Select Case ExpObj(J).ObjectName

Case "AcDbPolyline"

Pnts = ExpObj(J).Coordinates

ExpObj(J).Delete

Set MyPln = ThisDrawing.ModelSpace.AddLightWeightPolyline(Pnts)

I1 = UBound(Pnts)

For K = 0 To (I1 / 2 - 1) '宽度设定

MyPln.SetWidth K, DLineWidth, DLineWidth

Next

StrLineType = "Continuous"

LLineColor = 2

MyPln.LineType = StrLineType

MyPln.color = LLineColor

Case "AcDbLine"

Pntsta = ExpObj(J).StartPoint

PntEnd = ExpObj(J).EndPoint

Pntln(0) = Pntsta(0): Pntln(1) = Pntsta(1)

Pntln(2) = PntEnd(0): Pntln(3) = PntEnd(1)

Pnts = Pntln

ExpObj(J).Delete

Set MyPln =

ThisDrawing.ModelSpace.AddLightWeightPolyline(Pnts)

StrLineType = "Continuous"

LLineColor = 3

MyPln.LineType = StrLineType

MyPln.color = LLineColor

'宽度设定

MyPln.SetWidth 0, DLineWidth, DLineWidth

Case "AcDbPoint"

Pns = ExpObj(J).Coordinates

ExpObj(J).Delete

ThisDrawing.ModelSpace.AddPoint (Pns)

Case Else

ExpObj(J).Delete '其他如文字、点不再进行处理

End Select

Next

End If

'不是块的不处理

Next

End Sub

16、运行宏

‘’’-vbarun

Sub hong()

ThisDrawing.Application.RunMacro "InsertRaster"

End Sub

VB下的AutoCAD自动化一、概念

自动化技术允许一个应用程序驱动另外一个程序。驱动程序被称为自动化客户,另一个为自动化服务器。

VB环境下的AutoCAD自动化就是指用VB驱动和操纵AutoCAD。VB为自动化客户

端,AutoCAD为自动化服务器。

程序界面

**********************程序源代码***************************

Dim nn As Integer

Dim RS As Recordset

Private Sub CommandButton1_Click()

Dim I As Integer

Const PDBCN As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="

Set PCN = New ADODB.Connection

Set RS = New ADODB.Recordset

PCN.Open PDBCN + "C:\Documents and Settings\yb.LH\桌面\移动拟合法内插\data1.mdb"

RS.Open "select * from DSMR", PCN, adOpenStatic, adLockOptimistic

Set Me.Adodc1.Recordset = RS

' Me.DataGrid1.DataSource = RS

nn = RS.RecordCount

If RS.RecordCount > 0 Then MSFlexGrid1.Rows = RS.RecordCount + 1 Else Exit Sub

Me.MSFlexGrid1.ColWidth(0) = 500

Me.MSFlexGrid1.ColAlignment(0) = 3

For I = 1 To 3

Me.MSFlexGrid1.ColWidth(I) = 2500

Me.MSFlexGrid1.ColAlignment(I) = 3

Next

Me.MSFlexGrid1.TextMatrix(0, 0) = "点号"

Me.MSFlexGrid1.TextMatrix(0, 1) = "X"

Me.MSFlexGrid1.TextMatrix(0, 2) = "Y"

Me.MSFlexGrid1.TextMatrix(0, 3) = "Z"

RS.MoveFirst

I = 0

Do While Not RS.EOF

I = I + 1

Me.MSFlexGrid1.TextMatrix(I, 0) = RS.Fields("ID")

Me.MSFlexGrid1.TextMatrix(I, 1) = RS.Fields("X")

Me.MSFlexGrid1.TextMatrix(I, 2) = RS.Fields("Y")

Me.MSFlexGrid1.TextMatrix(I, 3) = RS.Fields("Z")

RS.MoveNext

Loop

' RS.Close

CommandButton2_Click

End Sub

Private Sub CommandButton2_Click()

Dim meshObj As AcadPolygonMesh

Dim mSize, nSize, count As Integer

'Create the matrix of points

' For I = 0 To nn

mSize = Int(Sqr(nn) - 1): nSize = Int(Sqr(nn) - 1)

ReDim points(mSize * nSize * 3 - 1) As Double

If RS.RecordCount > 0 Then RS.MoveFirst

For I = 0 To mSize - 1

For J = 0 To nSize - 1

points((I * nSize + J) * 3) = I: points((I * nSize + J) * 3 + 1) = J: points((I * nSize + J) * 3 + 2) = RS.Fields("Z")

RS.MoveNext

Next

Next

'creates a 3Dmesh in model space

Set meshObj = ThisDrawing.ModelSpace.Add3DMesh(mSize, nSize, points)

'Change the viewing direction of the viewport to better see the polygonmesh

Dim NewDirection(0 To 2) As Double

NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1

ThisDrawing.ActiveViewport.Direction = NewDirection

ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport

ZoomAll

End Sub

Private Sub CommandButton3_Click()

ThisDrawing.SendCommand Chr(27) + Chr(27)

ThisDrawing.SendCommand "shademode 3d "

ThisDrawing.Regen acActiveViewport

End Sub

Private Sub CommandButton4_Click()

ThisDrawing.SendCommand Chr(27) + Chr(27)

ThisDrawing.SendCommand "shademode g "

ThisDrawing.Regen acActiveViewport

End Sub

Private Sub CommandButton5_Click()

Unload Me

End Sub

**********************程序源代码***************************

TOPSIS方法研究讲解

TOPSIS分析方法研究 摘要 本文主要介绍了TOPSIS分析方法理论及其主要思想,运用数学理论,对其算法进行了详细的分析,并指出原始方法存在的优缺点;在此基础上提出了一种改进的TOPSIS分析方法,给出具体求权重的方法,突出其客观公正性.本文还分析了TOPSIS方法逆序产生的原因及其改进的方法,突出其实用性,推广其应用范围. 关键词TOPSIS法; 改进的TOPSIS; 权重;逆序

TOPSIS ANALYSIS METHOD ABSTRACT This paper describes a method of theory—TOPSIS, and its main idea. Using mathematical theory, its algorithm for a detailed analysis and noted the advantages and disadvantages of the original methods. On this base ,an improved TOPSIS method is given, and specific for weight, in order to highlight its objective impartiality. The paper also analyzes the causes of TOPSIS Reverse and its improved methods, highlight its practicality and the promotion of its use. Keywords TOPSIS method; Improved TOPSIS; weight; Reverse

点面结合 场面描写

点面结合场面描写 场面描写指的是在某一特定时间和特定地点范围内以人物活动为中心的生活画面的描写。场面描写一般由“人”、“事”、“境”构成,它是叙事性作品的基本构成单位,是刻画人物、展开情节、表现主题的主要手段。常见的有劳动场面、战斗场面、运动场面以及各种会议场面等。那么如何写好场面呢?点面结合是进行场面描写最好的选择。 所谓“点”,指的是最能显示人事景物场面的形象状态特征的详细描写;所谓“面”,指的是对人事景物场面的叙述或概括性描写。点面结合就是“点”的详细描写和“面”的叙述或概括性描写的有机结合。点面结合一般有以下三种形式: 一、视角笔触横向化,就是要把观察的视线向横的方向展开。要看到整个场面在同一个时间里所发生的事,不能只集中看一点。如下面一段场面描写: “王励勤,加油,中国队,雄起!”随着观众此起彼伏的呐喊声,中国对韩国的世界杯乒乓赛决赛被王励勤与韩国柳承敏的几个大力远拉推向高潮,场内翻滚着一股热浪,坐在电视机前的我们,也目不转睛地看着电视,我、爸爸、哥哥戴着头巾,挥舞着乒乓拍,用力捶着茶几当起场外拉拉队来,王励勤又胜一局,在加油声中一路高歌,这时,对方柳承敏奋起反击,几个短摆,直线,反手对拉,利用王励勤侧身过多,迎头赶上,观众的叫声更响亮了,震耳欲聋,把电视机前的观众的心深深地震撼了。我们一家也急得直跺脚,索性脱掉衣服

在此挥舞,终于,王励勤不负众望,在掌声与欢呼中尽显他的王者风范,一声大叫,一个手势,又使他崛起赢得了比赛,我们也抑制不住兴奋之情,相互拥抱起来。 二、一面带多点,就是要有整体的概括,又有重点的具体描写。一般采用先总述再分述的方法。这也是我们进行场面描写时所常用的手法。如《十里长街送总理》第一段的描写。 天灰蒙蒙的,又阴又冷。长安街两旁的人行道上挤满了男女老少。路那样长,人那样多,向东望不见头,向西望不见尾。人们臂上都缠着黑纱,胸前都佩着白花,眼睛都望着周总理的灵车将要开来的方向。一位满头银发的老奶奶拄着拐杖,背靠着一棵洋槐树,焦急而又耐心地等待着。一对青年夫妇,丈夫抱着小女儿,妻子领着六七岁的儿子,他们挤下了人行道,探着身子张望。一群泪痕满面的红领巾,相互扶着肩,踮着脚望着,望着…… 作者为了把送总理的人很多这一特点写出来就用了“点面结合”的写法:其中“长安街两旁的人行道上挤满了男女老少。路那样长,人那样多,向东望不见头,向西望不见尾。”这是面的描写;“一位满头银发的老奶奶拄着拐杖,背靠着一棵洋槐树,焦急而又耐心地等待着。一对青年夫妇,丈夫抱着小女儿,妻子领着六七岁的儿子,他们挤下了人行道,探着身子张望。一群泪痕满面的红领巾,相互扶着肩,踮着脚望着,望着……”这是点的描写。这样,我们一读文章就能够深刻感受到来总理的自发群众是那样的多。细读之后,我们更能够感受到人民对总理的爱戴和无限悲思。难能可贵的是在这一段中,没有

梯形图逻辑基本概念

梯形图逻辑基本概念 收藏此信息打印该信息添加:用户发布来源:未知 接触点(Contacts) 梯形图逻辑编程法乃是一种仿控制系统常用的电工电路图演变出来的编程语言。一个电路控制系统的基本的目的乃是决定在某种情况下电路的各种负载是否应该被开通或被关闭。所以如要了解梯形图线路, 应该记住电路的流动概念- 当电流能流动到一个负载时它将被开通, 而当电流不能流动到一个负载时它将被关断。 梯形图的最基本元素是个"接触点" (contact) 。接触点只有两种状态: 开路或闭路。开路时电流将无法流过此接触点,但是闭路时电流将能通过它流向下一个元素。最简单的接触点是需要外力(比如人的手指)才可以改变状态的开关。限位开关则是被安置在移动机械设备不同位置的小开关, 当机械设备移动时便会将相应地点的限位开关设为开路或闭路状态。 如果接触点被连接到负载并且接触是闭路, 那负载将被启动。以下简单的例子可以大体说明基本的梯形图编程法: 如上图所示, 在左边的垂直线是"电源" 线, 电流必须流经"按钮1" 以开动负载"灯泡" 。(实际上, 在负载的右端那里应该有一条垂直线以让电流程回返到电源的负端, 但为了简化线路图起见则被省略了) 。现在, 如果您不是直接地将电源通过" 按钮1"开关然后接到灯负载"灯泡" 上, 而是将开关" 按钮1"连接到PLC's 开关量输入, 并且将"灯泡"连接到PLC's 开关量输出, 然后在PLC内编入上述梯形图程序, 那效果将是完全一样的。当然如果这只是您想要做的唯一控制那是没有必要使用PLC。我们接下来将看见PLC 能怎样简化复杂的电路。

注意: 显示在上述图内的接触点"按钮1" 被称为一个"常开" ( Normally-open N.O.) 接触. 现在, 比如说如果有必要使用3 个开关一起控制一个灯泡。如果要点亮灯泡, 那一个总开关"Master" 必须打开, 而两个控制开关"controlsw1" 和"controlsw2" 其中一个必须闭路s pecialfn.htm#2而另一个必须为开路。(想象您家里的三向开关您就会有点概念) 。我们能将所有3 个开关都连到PLC 的3 个开关量输入, 然后将负载“lamp” 连接到PLC的一个开关量输出。我们能写以下梯形图程序以执行这项操作: 图中的接触点如果有一"/" 横跨其身那是一种常闭(N.C.) 接触点. NC 接触点乃是负逻辑, 也就是说, 如果该输入在没有被启动时其接触点是在闭路状态,而当该输入启动时其接触点却反而是开路。 因此在上述梯形图里, 如"Master" 和"controlSW1"输入被启动但"controlSW2输入却没有被启动, 电流将从电源流过"Master", "controlSW1",及"controlSW2" (既然“ control SW2” 没有被启动,因此其N.C. 接触点乃是处于闭路状态)而启动“lamp”。 另一方面, 如果"controlSW1" 没有被启动, 而"controlSW2" 被启动, “lamp”还是会被启动,因为电流能流通过"Master", 然后通过并联的分支线路, 通过N.C. 的"controlSW1" 和N. O.的"controlSW2" 。另一方面,如"controlSW1" 和"controlSW2" 同时被启动, 那“la mp” 则会被关断。 注: 如图所示, 虽然"controlSW1" 开关只被连接到1个PLC的硬体输入, 但却在梯形图出现了两次。如果您不用PLC 而是作实际的电工接线, 那在上述电路的"controlSW1" 和"c ontrolSW2" 将必须是多极式和同时拥有常开及常闭的物理接触点。但如果您使用PLC, 那

场景描绘案例分享

简单、好用的“场景描绘” ——帮助顾客实现梦想 让我们先来看看买花的女孩是如何使用“场景描绘”的: 卖花女孩向一位路过的小伙子兜售鲜花。小伙子说,你的鲜花太贵了。卖花女郎说,送给女孩子最好的礼物 就是鲜花,而且要在众人面前送给她最漂亮的花!假如你捧着一束花去见她,你的女朋友会是什么样呢?我想她一 定会含情脉脉地看着你,脸上洋溢着幸福的笑容,会在众人羡慕的眼光中给你一个最热烈的拥抱的。听到这里, 小伙子立即掏出钱包了。 场景描绘,就是运用一些生动形象的语言给客户描绘一幅使用产品后带来好处的图像,激起顾客对这幅图的向往,有效刺激顾客的购买欲望。试想一下,听到这样一段有诱惑力的话,哪个顾客能不动心呢? 正是因为: 1.带感情色彩的语句能够在顾客心里产生震荡 人是有感情的,富有感情色彩的语句和平淡的语句在顾客心里产生的震荡肯定不一样。每一位顾客都有其特定的经历、经验,从而形成对事物的独特见解、看法和态度。富有感情色彩的语句可以使顾客把你的介绍和他的亲身经验结合起来,从而使得你所推销的物品(饰品)与顾客对于未来的期待和向往合二为一,这样顾客对此物品(饰品)就会产生一种依赖感和依存感,购买的兴趣就会大增。 2.让顾客感到自己的选择合情合理 顾客的购买行为主要是由感情力量引起的,他们仍然会感到有必要为自己的行为找到合理的依据,可能是为了必要时给别人一个解释,或者仅是为了让自己满意地感到自己是理智的。因此,你必须充分意识到这一点,并随时准备提供理由,满足顾客的需要,证明他们的行动是合理的。其实,对于你所提出的理由,顾客也绝对不会认真追问,因为这些论点是他们所需要的。这时候的顾客非常容易相信你的话,如果你能够用一些带有感情色彩的话来说服顾客的话,多半都会成功。 珠宝消费不同于售卖花朵,不是凭一两句场景描绘就足以让顾客“冲动”而消费的,因为它是高额消费品。正是因为它价格昂贵,所以受到重视,顾客对拥有首饰后能达到其目的的期望值会更高!因此“场景描绘”在整个销售过程中起着举足轻重“煸情”的作用,“心动而产生行动”。 那在我们的销售工作中,又要如何来进行呢? 描述时方法有两种: 1.第一种:你可以尝试使用以下三个句型,激发顾客想象力。 “您有没有感觉到/您看……?” “当……时候……” “……像……一样” 例如:“您有没有感觉到这件衣服的布料很柔软,也很保暖?当天冷的时候穿上它,肯定会像睡在羽绒被子里一样舒服和暖和的。” “您看,这枚戒指款式非常简洁,两股线条缠绕于指尖,您有没有感觉到它非常适合您的手型?不炫丽但看上去很舒服,就像您的先生一样,一直会温柔体贴的陪伴在身边,很幸福啊。” 2、第二种:向顾客直接描绘未来 例如:在商品快介绍结束时,推销员向准备为女儿买钢琴的母亲说:“我想用不了多久,您女儿一定能在学校的表演厅里为大家演奏曲子了。” 翡翠饰品快介绍完毕时,“您老公佩戴着这枚挂件,出门在外一定会平平安安的,摸到翡翠就会想起您的叮咛的。”

初学者的必须掌握的几个梯形图

初学者的必须掌握的几个梯形图 1。启动、保持、停止电路 x1 x2 |--||---|/|-----(y1) | | | y1 | |--||- | 2.三相异步电机正反转控制电路 | | x0 x2 x1 y1 |--||--------|/|------|/|-------|/|-------(y0) 正转| | | y0 | |--||------ | | x1 x2 x0 y0 |--||--------|/|------|/|-------|/|-------(y1) 反转| | | y1 |

|--||------ | 3.闪烁电路 x0 T1 |--||---|/|-----(To)k20 | | T0 |--||-----------(T1)k30 | | |-----(y0) 4.延时接通/断开电路 x0 |--||-----------------(T0)k90 | | y1 x0 |--||--------|/|------(T1)k30 |

|--||--------|/|------(y1) | | | y1 | |--||------ | 初学者应懂得的知识 学习PLC,除了懂得理论,重要在实践,再进行一些实际的梯形图编写、程序下载、调试等操作,增加对PLC的感性认识,很快就可以掌握PLC这项技术了。开始阶段可以先学习一种品牌的PLC,因为所有的PLC原理都是差不多的,掌握了一种PLC其它的只要翻阅一下手册也就能上手使用了。 初学时可以编一些简单的梯形图,如触点的与、或、输出等,在PLC的机器里运行一下。成功了就会增加你学习的兴趣、和信心。然后再把PLC的主要功能逐个运用一次,比如高速计数器,可以用PLC本身的脉冲输出端接到高速计数器的输入端,下载编好的梯形图,打开变量观察窗口,运行程序,观察计数的值是否正确。经过了这样的实践,基本上知道PLC到底能做哪些事情了,在实际的工控应用中就能做到胸有成竹了。 1.基础电路知识,各种元器件的作用,电阻,电容,电感,电源,还有一些常见的集成电路(如:74HCT165)。要很明确的知道这些元器件在电路中所起的作用,能根据这些个特性设计出自己需要

TOPSIS方法研究讲解

T O P S I S方法研究讲解 Prepared on 24 November 2020

TOPSIS分析方法研究 摘要 本文主要介绍了TOPSIS分析方法理论及其主要思想,运用数学理论,对其算法进行了详细的分析,并指出原始方法存在的优缺点;在此基础上提出了一种改进的TOPSIS分析方法,给出具体求权重的方法,突出其客观公正性.本文还分析了TOPSIS方法逆序产生的原因及其改进的方法,突出其实用性,推广其应用范围. 关键词TOPSIS法; 改进的TOPSIS; 权重;逆序 TOPSIS ANALYSIS METHOD ABSTRACT This paper describes a method of theory—TOPSIS, and its main idea. Using mathematical theory, its algorithm for a detailed analysis and noted the advantages and disadvantages of the original methods. On this base ,an improved TOPSIS method is given, and specific for weight, in order to highlight its objective impartiality. The paper also analyzes the causes of TOPSIS Reverse and its improved methods, highlight its practicality and the promotion of its use. Keywords TOPSIS method; Improved TOPSIS; weight; Reverse 目录 中文摘要 (Ⅰ) 英文摘要 (Ⅱ) 引言 (1) 1 一般TOPSIS分析方法 TOPSIS分析方法概念 (2) TOPSIS分析方法的一般解题步骤 (2) 应用实例 (4) 2 改进的TOPSIS法 一般TOPSIS解法的缺点 (5) 改进的TOPSIS法 (5) (5)

初中作文指导:细节描写案例【精品】

细节描写案例 教学目标:A知识技能目标:明确细节描写的内涵,学习细节描写的方法,初步学会运用细节描写。 B思想情感目标:养成良好的观察习惯,积累对百态人生的体验,做一个生活的有心人。 教学重点:细节描写的方法及运用 教学难点:通过细节描写表达真情实感 教学手段:多媒体课件 教学方法:体验法、启发式(教学过程中可以讨论法和演练法为主,充分发挥学生学习的主动性,培养学生的探究能力。)教学过程: 一、导入 著名文艺批评家兰色姆指出,使文学成为文学的东西不在于文学作品的框架结构、中心逻辑,而在于作品的细节描写,只有细节才属于艺术,也只有细节的表现力最强。其实,现在世界中细节的力量又何尝可以小觑?每增加一厘米的倾斜,都有可能导致比萨斜塔的倾覆;使人疲惫的不是远方的高山,而是鞋子里的一粒沙子。 今天,我们就一起来探讨一下细节描写对作文的影响作用。(多媒体课件展示课题,学生齐读课题:《一枝一叶总关情——作文指导之细节描写》。) 二、明确定义 细节描写是指抓住生活中的细微而又具体的典型情节,加以生动细致的描绘,它具体渗透在对人物、景物或场面描写之中。它是最生动、最有表现力的手法,是作者精心的设置和安排,不能随意取代。一篇文章,恰到好处地运用细节描写,能起到烘托环境气氛、刻画人物性格和揭示主题思想的作用。(多媒体课件展示课文片段 三、回顾我们课文中的细节描写 (多媒体课件展示课文片段) 1.(阿Q)要画圆圈了,那手捏着笔只是抖,于是那人将纸铺在地上,阿Q伏下去,使尽平生的力画圆圈。他生怕被人笑话,立志要画得圆,但这可恶的笔不但很沉重,并且不听话,刚刚一抖一抖的几乎合缝,却又向外一耸,成了瓜子模样了。”(鲁迅《阿Q正

plc梯形图实例

电气自动化技术网-电气技术-PLC- 学习PLC基本梯形图 1。启动、保持、停止电路 x1 x2 |--||---|/|-----(y1) | | | y1 | |--||- | 2.三相异步电机正反转控制电路 | | x0 x2 x1 y1 |--||--------|/|------|/|-------|/|-------(y0) 正转| | | y0 | |--||------ | | x1 x2 x0 y0 |--||--------|/|------|/|-------|/|-------(y1) 反转| | | y1 | |--||------ | 3.闪烁电路 x0 T1 |--||---|/|-----(To)k20 | | T0 |--||-----------(T1)k30

| | |-----(y0) 4.延时接通/断开电路 x0 |--||-----------------(T0)k90 | | y1 x0 |--||--------|/|------(T1)k30 | | t0 t1 |--||--------|/|------(y1) | | | y1 | |--||------ | 5. DF上升沿微分,DFI下降沿微分 概述 DF:当检测到输入触发信号的上升沿时,仅将触点闭合一个扫描周期。DFI:当检测到输入触发信号的下降沿时,仅将触点闭合一个扫描周期。程序示例 示例说明 在检测到 X0的上升沿(OFF→ON)时,Y0仅为 ON一个扫描周期。 在检测到 X1的下降沿(ON→OFF)时,Y1仅为 ON一个扫描周期。 描述

当触发信号状态从 OFF 状态到 ON状态变化时,DF 指令才执行并且输出仅接通一个扫描周期。 当触发信号状态从 ON状态到 OFF 状态变化时,DFI 指令才执行并且输出仅接通一个扫描周期。 若执行条件最初即为闭合,则 PLC接通电源,则不会产生输出。 编程时的注意事项 DF 和 DFI 指令的使用次数有限制,CX1-16R使用这两个指令的次数之和最多为 128 次。 6。微分指令的应用示例 如果采用微分指令编程,可以使程序调试更加简单。 自保持回路应用示例 使用微分指令可以保持输入信号。 7。交替回路应用示例 使用微分指令也可以构成一个交替变化回路,实现利用同一个输入信号切换进行保持或释放。 7、试着编绘简易梯形图:简易梯形图的编绘,一般以现有的电工原理图,根据其工作原理进行绘制,由浅入深,先求画出,再求简单明了,慢慢领会绘制梯形图心得。首先要理解电工原理图的工作原理,根据电工原理图的工作原理,再按PLC的要求进行绘制。应把握的

基于TOPSIS法评标方法

Value Engineering 0引言 经过数十年发展,我国招投标的发展逐步走向法制化,招投标制度得到不断的改进和完善。但由于我国建筑市场 机制不够健全,招投标过程中仍存在不规范行为[1], 招标和评价体系不规范,招投标过程易受到各种外界因素干扰,串、围标现象屡见不鲜[2],严重影响着招投标的公正、公平。 1目前评标方法介绍 1.1综合评分法[3]综合评分法是指在最大限度地满足招标文件实质性要求的前提下,采用综合评分的方法选择中标人,评标专家组按照招标文件中规定的各项因素进行打分,选择综合评分最高的投标人中标,评标时考虑的因素有投标报价、工期、财务状况、企业信誉等诸多因素。 1.2最低评标价法最低评标价法是指是指在技术标评审通过的前提下,投标报价最低者为中标人。 1.3合理低价中标法合理低价中标是指在招投标过程中,中标价是经过评标委员会评审认定,能够保证工程顺利实施的具有科学的,合理施工技术措施的最低报价。 以上几种评标方法各有优缺点,综合评分法通过专家对各个指标进行打分,虽全面考虑了各项指标,但同时很 程度上受到打分人主观因素影响。 采用该种评标方要想取得比较理想的效果,需要制定具体且具有可操作性的打分方法,尽量减少评标人在打分过程中的主观性。 最低评标价法也称无标底法。该中评标方法主要看投标方报价,报价最低者即为中标单位,虽然该种方法对于招标方来说选择了价格最低的投标方,但报价低很难保证工程质量,中标单位由于报价最低,只能通过各种理由索赔或通过降低工程质量的方法保证自己的利益。 合理低价中标法。该评标方法通过设定标底限制了投标单位报价不能低于成本价,一般投标单位越接近标的价越容易中标,这就使得投标单位想法设法获取标底价,不 利于招投标的公正、公平进行。另外设置标底价是把所有投标单位管理、 技术、施工水平放在同一高度考虑,对于一些具有管理、技术等优势的投标单位反而不公平,不利于招标方选择最理想的投标单位。 2TOPSIS 法 2.1TOPSIS 法介绍TOPSIS 法也称逼近理想解排序法是Hwang 和Yoon 在1981年提出的一种对多个方案的多指标进行比较选择的分析方法。TOPSIS 法就是分别计算各评价目标与理想值和负理想值的距离,理想值是设想的最好方案,其各个属性值都达到各方案中最好的值,负理想解是设想的最坏方案,然后求出各个方案与理想值与负理想值之间加权欧氏距离,最优方案应该是距离理想值最近,而离非理想值最远,以此作为评价方案优劣的标准。 2.2TOPSIS 法应用步骤2.2.1建立初始判断矩阵。使用TOPSIS 法评价多目标决策方案时,一般假设有m 可供选择的方案,每个方案有n 评价指标,将各个指标的取值表示成数学矩阵形式,建立初始判断矩阵U 。 2.2.2线性比例变化标准化。采用TOPSIS 法评价方案时,要求评价指标变化方向一致,通过线性比例变化可实现此目的,即经过线性比例变化后所有指标值都是越大越好。 通过线性比例变化标准化,建立同趋势化矩阵U ′: U ′=u ′11u ′12u ′13…u ′1n u ′21u ′22u ′23…u ′2n u ′31u ′32u ′33…u ′ 3n … … … … … u ′m1u ′m1u ′m3…u ′mn 效益型指标u ′ij =u ij f * j 成本型指标u ′ij =f 塄 j u ij 其中f * j =maxu ij f 塄 j =minu ij 1燮i 燮m 1燮i 燮m 2.2.3归一化处理。由于每个方案有多个评价指标,各个指标的量纲可能不同,需要对线性比例变化后的矩阵进行归一化处理。通过归一化处理后各个指标向量都具有单位模,并且每一个元素都是单位量纲。 由此得出归一化后的矩阵如下: ————————————————————— —作者简介:徐志舜(1985-),男,甘肃靖远人,研究生;刘振奎 (1969-),男,河北平泉人,兰州交通大学土木工程学院教授。 基于TOPSIS 法评标方法探讨 Discussion on Tender Evaluation Method Based on TOPSIS Method 徐志舜XU Zhi-shun ;刘振奎LIU Zhen-kui (兰州交通大学土木工程学院,兰州730070) (School of Civil Engineering ,Lanzhou Jiaotong University ,Lanzhou 730070,China ) 摘要:评标是招标投标活动中十分重要的阶段,能否选择一个理想的承包单位关系着项目的成败,评标的目的是选择出能够最 大限度地满足招标文件要求的投标方。TOPSIS 法作为一种数学评价方法应用于评标,对于减少一些外在因素对评标的影响有一定 作用。 Abstract:The bid evaluation is a very important stage of the bidding activity,whether to choose an ideal contract relate the success or failure of the project,the purpose of bid evaluation is to choose the most satisfied demand of the tender documents.TOPSIS method as a mathematical evaluation methods used in bidding.It's useful to reducing the impact of external factors. 关键词:TOPSIS 法;权重;评标方法;投标Key words:TOPSIS method ;weight ;tender evaluation method ;bidding 中图分类号:TU71文献标识码:A 文章编号:1006-4311(2012)33-0107-02 ·107·

记叙文细节描写篇分析

高三语文写作指导与训练系列二编号 GS YW XZ--002 记叙文写作之细节描写篇导学案 编写:徐明生审定:张明玺时间:2014-08-26 班级:组别:组名:姓名: 知识与技能:理解细节描写的概念及分类,掌握细节描写的方法,学会运用细节描写表现人物细腻的情感,为文章增色。 过程与方法:1.创设情境,赏析富有情趣的细节描写。2.例文引导,掌握细节描写的方法。 3.写作训练,将细节描写融入作文中。 情感态度与价值观:培养观察力、想象力,引导学生发现生活中的细节之美,形成热爱生活、积极的人生态度。 教学方法:揣摩、讨论、归纳、操练 课前准备:1.了解细节描写的相关知识点; 2.回顾所学过的记叙文(小说),初步体会细节描写的作用。 课时:2课时 导学过程:一、导语众所周知,记叙文的灵魂在于细节描写。同学们在作文里缺少的不是把某件事写完整的能力,而是缺少细节捕捉、描写的能力。这些缺失细节描写的文章读来生涩呆板,缺乏感染力。而高考作文评分在发展等级项中有明确的规定,即:“材料丰富,形象丰满,意境深远”,这“形象丰满”很大程度上依赖于考生对细节的描摹与刻画。细节描写之重要,不仅可以在“生动”上“出彩”加分,而且可以使作品形象丰满,使整个文章升格。所以作文缺少感人的细节实在是一个制约记叙文成绩提高的瓶颈。 一沙一世界,一叶一菩提。其实,纷繁的生活,是由无数小的细节构成的。细节虽小,却是美的源泉,情的聚焦。生活中的细节之美,看在眼里,便是风景;握在掌心,便是花朵;拥进怀中,便是温暖;写在笔端,便是精彩。今天这节课,我们来一起用双眼发现细节,用心灵感悟细节,用文字展现细节,让我们作文中的人与事如生活中一般于细处见情,微处见妙! 二、了解概念、分类,感受作用、魅力 (1)什么是细节描写? 细节描写就是某些细小的能很好表现中心的环节和情节,如对人物的一个动作、一种表情、一句话等以及事物发展的具体环节、环境中的细小物体,通过准确、生动、细致的描绘,使读者“如见其人”“如睹其物”。 细节描写如电影中的特写镜头,具体渗透在对人物、景物或场面描写之中。它将我们身边

TOPSIS方法介绍

TOPSIS 方法介绍 TOPSIS 法是C. L. Hwang 和K. Yoon 于1981年首次提出,是多目标决策分析中一种常用的有效方法。仍设有m 个备选方案,n 项评价指标,第i 方案的第j 项指标值为ij x ,TOPSIS 法基本步骤如下: (1)建立初始化决策矩阵 1112121 22 21 2n n m m mn x x x x x x X x x x ??????=?????? L L L L L L L (2)决策矩阵规范化处理 将最优指标规范化后为1,最劣指标规范化后为0,ij y 为规范化后的指标,规范化公式如(4-9)与(4-10),可以得到标准化判断矩阵: 1112 12122212 n n m m mn y y y y y y Y y y y ??????=??? ??? L L L L L L L (3)决策加权矩阵 根据4.4.1节熵值法获得的权重,得到属性权重矩阵: 12000000n B ωωω???? ? ?=??????L L L L L L L 则决策加权矩阵如下: 1112 11 1112 12122222122 212 12 0000=0 n n n n m m mn n m m mn y y y f f f y y y f f f F y y y f f f ωωω??????????????????=??????? ???? ??????? L L L L L L L L L L L L L L L L L L L L L (4)确定正理想解和负理想解 “正理想解”和“负理想解”是TOPSIS 法中的两个基本概念,其定义如下: 定义8 正理想解(positive ideal solution ):是指最优的方案,该方案的各个属性值都达到各备选方案中的最好的值。 定义9 负理想解(negative ideal solution ):是指最劣的方案,该方案的各个属性值都达到各备选方案中的最差的值。 正理想解j f * :

TOPSIS法

TOPSIS 法 一、统一各项评价指标的单调性,在此采用高优指标即数值越高越好,通常对于反向单调的指标可采用倒数法; 二、经步骤1处理后的各项参数值为: 构成数组如下: A = 三、矩阵归一化处理 利用归一化公式:y=(x-min x )/(max x-min x) /A = ???? ? ?? ? ?????? ??????????????999687857674281365683322143942475151??? ? ?? ? ?? ? ??? ??????? ??? ?????111625.0875.0625.0875.05.075.0625.075.0375.0125.0875.0025.0625.05.0625.0875.025.025.0125.0125.00375.025.01375.0125.0375.075.05.005.00

四、选取最优方案和最差方案;最优方案由每个指标都为最大值的数据构成,最差方案由每个指标都为最小值的数据构成。本例中的最优方案和最差方案分别为: 最优方案:1 1 1 1 最差方案:0 0 0 0 五、利用公式求每个待排序方案与最优和最差方案的距离;公式如附图所示,本例求得距离分别为: 分别计算各个评价对象与最优方案和最差方案的距离 ∑ ∑=--=+ +-=-=n j j ij i n j j ij i z z D z z D 1 12)^(2)^(

六、利用公式Dbest/(Dbest+Dwors)求得评价参考值,参考值越小代表评价结果越高,即方案最优,在本例中表现为工作综合标准系数越高。 综合所述,硬件工程师为最优工作方案

作文技巧:围绕中心写场面

作文技巧:围绕中心写场面 场面描写,那么什么是场面呢?场面一般是指集体活动中某一段时间内,呈现在人们面前的情景。就如同我们在话剧中看到的某一场、某一幕一样。生活中,有哪些场面是我们参加过或者看到过的呢?下面举一些例子供参考。劳动场面。我们在学校经常参加校办工厂、农场或服务性劳动,劳动中大家的热、干劲以及劳动中出现的好人好事是很多的。我们也经常去工厂、农村、商店参观、问,看到叔叔阿姨们是怎样劳动的,这些就是劳动场面。游戏场面。同学们在家里或校园里经常在一起做游戏,体育活动时老师也组织大家开展各种活动。这些游戏场面常常非常活跃,非常有趣,也是同学们比较熟悉的娱乐场面。在我们丰富多彩的课余生活中,娱乐活动是一项很重要的内容。文艺演出,联欢活动,观看影视,都有许多生动的场面值得我们记叙下来。典礼场面。每学期开学时,我们都要举行开学典礼。你所在的城市、村镇、有什么新的建筑落成,也常常举行典礼仪式。这些典礼的场面有意义、有教育性,应该认真观察,记录下这一值得纪念的时刻。运动场面。运动会上,运动员你追我赶,奋力拼搏,争取创造优异成绩;观众们为运动员鼓掌加油,欢呼助兴,这些激动人心的场面是令人难忘的。生活场面。在日常生活中有许多场面也是很有特点的。例如购买货物,家人团聚,乘车坐船,求医治病,盖房修墙,;,布置居室等等,都具有浓厚的生活气息。会议场面。班会、队会、校会,;,和英雄模范人物会见,参加各种庆祝会,纪念会,那会议的场面也往往给我们留下深采刻的印象。总之,练习场面描写,可以提高苛我们

观察认识能力、记叙描写能力。我们在记叙场面时要注意以下三点.1.认真观察。比如进行会议场面的描写,要仔细观察会场的环境:主席台在哪儿,会标是怎吞样写的,台上是怎样布置的,有哪些人在台上就座,他们的神态、动作、讲话、|内容是怎样的;会场有多大,有多少人参加,会场的气氛怎样;会议的议程怎样,怎样开始,哪时达到高潮,会议是怎样结束的等等,都应如实具体观察,认真积累写作的材料。2.抓住重点3;把人和事物写具体。场面描写常常离不开人物和事物,这是场面描写的主要内;:l容。人物的外貌、神情、语言、动作、心理,事物的起因、经过、高潮和结果,以及物体的i l形状、颜色、变化、活动情况等等,都应细致具体地加以描述,使读者如身临其境,这才是成功的场面描写。当然,场面描写也应围绕一个中心,不要想到什么写什么,这样就不集中了,这也是要注意的问题。

作文指导课场面描写教案

作文指导课——场面描写 平度经济开发区小学李荷英 课堂导入:我们上周刚刚举行了秋季阳光运动会,回忆一下那是一个什么样的场面(紧张、兴奋、热烈) 运动会是一个紧张、热烈的场面,那么,请列举一下你的生活中还有那些场面(赶集的拥挤热闹,球场的热烈火爆,下课的喧闹)场面的特点 看多媒体图片,看一下是什么场面,描述场面特点或者气氛 (比赛场面紧张激烈,阅兵场面宏大整齐,春运场面拥挤) 上周我们开完运动会后写了一篇日记,通过批阅,发现同学们对于场面描写有所欠缺,好多同学的日记我读完了之后看不出运动会是一个怎样的场面。今天我们一块儿来学习一下如何进行场面描写。 一,明确定义。什么是“场面描写” 场面描写,就是对一个特定的时间与地点内许多人物活动的总体 情况的描写。它是自然景色、社会环境、人物活动等描写对象的集中展现。 常见的有劳动场面、战斗场面、运动场面以及各种会议场面等。 二,场面描写的关键——写出特定气氛 场面描写的关键是什么呢我们先来看一段文字。刘成章的《安

塞腰鼓》。 个别学生读,其他学生思考:1,这是一个什么场面2、这是一个怎样的场面(场面特点、气氛)安塞腰鼓表演场面。气势壮阔,豪放火烈。 场面描写的特点——写出特定气氛 气氛是人在一定环境中看到的景象或感觉到的一种情绪或感情。无论什么场面,都会有气氛,如庆祝场面有欢乐的气氛;比赛场面有紧张的气氛;送别场面有难舍难分的气氛等等。 三,语段分析找方法 那么,如何才能写出场面氛围呢,我们来学几个小妙招。 1、以景衬情,营造氛围(板书) 例子一:春天到了,儿子种的花全都开了。春风吹来,姹紫嫣 红的花儿轻轻摇晃着,散发出阵阵芳香,引来了一只只小蜜蜂。 傍晚,彩霞染红了天空。高尔基坐在院子里,欣赏着儿子种的花,心里有说不出的高兴。瞧,那些盛开的花朵多像儿子红扑扑的脸庞啊!(高兴喜悦) 例子二:天灰蒙蒙的,又阴又冷。长安街两旁的人行道上挤满了男女老少。路那样长,人那样多,向东望不见头,向西望不见尾。人们臂上都缠着黑纱,胸前都佩着白花,眼睛都望着周总理的灵车将要开来的方向。一位满头银发的老奶奶拄着拐杖,背靠着一棵洋槐树,焦急而又耐心地等待着。一对青年夫妇,丈夫抱着小女儿,妻子领着六七岁的儿子,

PLC梯形图基本原理

前言、PLC 的发展背景及其功能概述 PLC ,(Programmable Logic Controller),乃是一种电子装置,早期称为顺序控制器“Sequence Controller”,1978 NEMA(National Electrical Manufacture Association)美国国家电气协会正式命名为Programmable Logic Controller ,PLC),其定义为一种电子装置,主要将外部的输入装置如:按键、感应器、开关及脉冲等的状态读取后,依据这些输入信号的状态或数值并根据内部储存预先编写的程序,以微处理机执行逻辑、顺序、定时、计数及算式运算,产生相对应的输出信号到输出装置如:继电器(Relay)的开关、电磁阀及电机驱动器,控制机械或程序的操作,达到机械控制自动化或加工程序的目的。并藉由其外围的装置(个人计算机/程序书写器)轻易地编辑/修改程序及监控装置状态,进行现场程序的维护及试机调整。而普遍使用于PLC 程序设计的语言,即是梯形图(Ladder Diagram)程序语言。 而随着电子科技的发展及产业应用的需要,PLC 的功能也日益强大,例如位置控制及网络功能等,输出/入信号也包含了DI (Digital Input)、AI (Analog Input)、PI (Pulse Input)及NI (Numerical Input),DO (Digital Output)、AO (Analog Output)、PO (Pulse Output)及NO (Numerical Output),因此PLC 在未来的工业控制中,仍将扮演举足轻重的角色。 1.1 梯形图工作原理 梯形图为二次世界大战期间所发展出来的自动控制图形语言,是历史最久、使用最广的自动控制语言,最初只有A (常开)接点、B (常闭)接点、输出线圈、定时器、计数器等基本机构装置(今日仍在使用的配电盘即是),直到可程控器PLC 出现后,梯形图之中可表示的装置,除上述外,另增加了诸如微分接点、保持线圈等装置以及传统配电盘无法达成的应用指令,如加、减、乘及除等数值运算功能。 无论传统梯形图或PLC 梯形图其工作原理均相同,只是在符号表示上传统梯形图比较接近实体的符号表示,而PLC 则采用较简明且易于计算机或报表上表示的符号表示。在梯形图逻辑方面可分为组合逻辑和顺序逻辑两种,分述如下: 1. 组合逻辑: 分别以传统梯形图及PLC 梯形图表示组合逻辑的范例。 传统梯形图 PLC 梯形图 X0X1Y0X4 Y1X2X3 Y2 X0 Y0 X1Y1Y2 X2X3 X4 行1:使用一常开开关X0(NO :Normally Open )亦即一般所谓的〝A 〞开关或接点。其特性是在平常(未 按下)时,其接点为开路(Off )状态,故Y0不导通,而在开关动作(按下按钮)时,其接点变为导通(On ),故Y0导通。 行2:使用一常闭开关X1(NC :Normally Close )亦即一般所称的〝B 〞开关或接点,其特性是在平常 时,其接点为导通,故Y1导通,而在开关动作时,其接点反而变成开路,故Y1不导通。

场面描写最重要的是学生要掌握描写中的细节描写1

场面描写的方法 一些人物在一定时间、一定地点所发生的某件事中的一个生动画面,这就是场面。比如师生一同庆祝教师节,生日聚会,一场比赛等等。场面描写离不开人物,人物不能只是一个,众多的人物的共同活动才构成场面。 写好场面要注意以下四点: 第一,要交待清楚场面的背景。如活动场面发生的时间、地点、环境等,这样人们才知道场面是在怎样的社会或自然环境中发生的。

第二,要在写好总体的基础上写具体。写场面时,要对场面有总体概括,使读者对总体面貌有所了解。但场面同时也应该有重点部分,对这部分要写详细、写具体,做到有点、有面。 第三,要写出气氛。气氛是人在一定环境中看到的景象或感觉到的一种情绪或感情。无论什么场面,都会有气氛,如庆祝场面有欢乐的气氛;比赛场面有紧张的气氛;送别场面有难舍难分的气氛等等。 第四,写场面要有顺序。场面是由人、事、景、物组合起来的综

合画面,不可能几笔就同时都写出来。因此,写场面时要安排好先后的顺序。一般来说,场面描写可以按照由面到点来安排顺序。比如,描写庆祝教师节的场面,可以先写欢庆活动的总体气氛,勾勒“面”的情况,然后分别写校长、老师、同学的表现。这样就能点面结合、条理清楚。场面描写即把活动的场面和情景有重点地具体地进行描写。关键是在场面描写中要写出应有的气氛,展示一幕幕精彩的场面,使人有种身临其镜的感觉。

场面描写最重要的是学生要掌握描写中的细节描写,因此可以先进行一个场面的片段练习: 例:(单字句式)瞧!阳光灿烂,鲜艳的少先队旗在晨风中摇摆,多么醒目的黄色;看!少先队员们排着整齐的方队,站得笔直,他们的胸前飘荡着红领巾,多么醒目的红色,几千双眼睛目光坚定仿佛在表明:我们一定不辜负祖国的期望,好好学习,将来为国家建设作出贡献;听!雄浑的少先队歌奏响了,一声声童稚的宣誓声在操场上空响起,

TOPSIS方法研究讲解

T O P S I S方法研究讲解文档编制序号:[KKIDT-LLE0828-LLETD298-POI08]

TOPSIS分析方法研究 摘要 本文主要介绍了TOPSIS分析方法理论及其主要思想,运用数学理论,对其算法进行了详细的分析,并指出原始方法存在的优缺点;在此基础上提出了一种改进的TOPSIS 分析方法,给出具体求权重的方法,突出其客观公正性.本文还分析了TOPSIS方法逆序产生的原因及其改进的方法,突出其实用性,推广其应用范围. 关键词TOPSIS法; 改进的TOPSIS; 权重;逆序 TOPSIS ANALYSIS METHOD ABSTRACT This paper describes a method of theory—TOPSIS, and its main idea. Using mathematical theory, its algorithm for a detailed analysis and noted the advantages and disadvantages of the original methods. On this base ,an improved TOPSIS method is given, and specific for weight, in order to highlight its objective impartiality. The paper also analyzes the causes of TOPSIS Reverse and its improved methods, highlight its practicality and the promotion of its use. Keywords TOPSIS method; Improved TOPSIS; weight; Reverse 目录 中文摘要 (Ⅰ) 英文摘要 (Ⅱ) 引言 (1) 1 一般TOPSIS分析方法 TOPSIS分析方法概念 (2) TOPSIS分析方法的一般解题步骤 (2) 应用实例 (4) 2 改进的TOPSIS法 一般TOPSIS解法的缺点 (5) 改进的TOPSIS法 (5) (5) 指标权重的确定 (6) 各方案优劣排序 (7)

相关文档