baigiangvbaforautocad bai 3
DESCRIPTION
Bài giảng VBA for AutoCADTRANSCRIPT
-
LP TRNH VBA TRONG AUTOCAD
-
Thot khi chng trnh AutoCAD ng bn v Lu bn v To bn v mi M bn v c McBn vCc thao tc c bn caAutoCad
-
M bn v c object.Open Name[, ReadOnly]
s dng phng thc Open c trong tp i tng Documents
Object y l tp i tng Documents hoc mt i tngc kiu l Document. ngha ca cc tham s nh sau:
Tham sGii thchNameL chui k t cha ng dn y n tp bn v cn m.ReadOnlyL tham s tu chn. Nu gn tham s ny bng TRUE, bn v c m ra vithuc tnh ch c, ngha l ngi dng khng th lu bn v. Gi tr mc nh ca thuc tnh ny l FALSE. C phpGhi ch
-
M bn v c Sub OpenDrawing() Dim dwgName As String dwgName = "C:\Program Files\AutoCAD 2002\Sample\campus.dwg" On Error Resume Next Application.Documents.Open dwgName If Err.Description "" Then MsgBox "File " & dwgName & " does not exist." Err.Clear End IfEnd SubV DM bn vBy li
-
To bn v miSet RetVal = Documents.Add([TemplateName])
s dng phng thc Add c trong tp i tng Documents
Tham sGii thchTemplateName Tham s tu chn. L chui k t cha ng dn y n tp bn v mu (tp *.dwt). Nu khng nhp tham s ny, AutoCAD s to bn v da trn tp bn v mu mc nh (thng c tn l Acad.dwt). RetVal i tng kiu Document cha bn v va mi to. C phpGhi ch
-
To bn v miSub NewDrawing() Dim docObj As AcadDocument Set docObj =Documents.Add End SubV DM tTo bn v mi
-
Lu bn vObject.Save Object.SaveAs FileName[, FileType]
s dng phng thc Save hoc SaveAs
Tham sGii thch
Object i tng kiu Document, l bn v s c lu. FileName L chui k t cha tn tp s c lu (bao gm c ng dn y ). Nu khng ch ra ng dn y ,tp bn v s c lu vo th mchot ng ca AutoCAD FileType Tham s tu chn, l hng s xc nh kiu tp bn v s c lu C phpGhi ch
-
Lu bn vSub SaveActiveDrawing() ThisDrawing.Save ThisDrawing.SaveAs "MyDrawing.dwg" End SubV DLu bn v sn cLu bn v mi
-
Lu bn v
Sub TestIfSaved() If Not (ThisDrawing.Saved) Then If MsgBox("Do you wish to save this drawing?",_ vbYesNo) = vbYes Then ThisDrawing.Save End If End If End Sub V d sau s kim tra xem bn v c lu hay cha v s hi ngi dng xem c ng lu bn v hay khng, nu khng ng , s thot khi chng trnh. Nu ng , s s dng phng thc Save lu bn v hin hnh
-
ng bn vobject.Close([SaveChanges][, FileName])
s dng phng thc Close c trong i tng Document
Tham sGii thch
Object i tng kiu Document, l i tng chabn v cn ng . SaveChanges Tham s tu chn, xc nh xem c cn phi lu bn v li trc khi ng hay khng. Nu bng TRUE, s lu bn v, ngc li l FALSE. Gi tr mc nh ca tham s ny l TRUE. FileName Tham s tu chn, xc nh tn ca bn v s c lu trong trng hp bn v cha c lu ln no C phpGhi ch
-
ng bn v
Sub CloseDrawing() If MsgBox("Bn c mun ng bn v: " & ThisDrawing.WindowTitle, _ vbYesNo + vbQuestion) = vbYes Then If ThisDrawing.FullName "" Then ThisDrawing.Close SaveChanges:=True MsgBox(ThisDrawing.Name & " cha c lu nn khng th ng!") End If End If End Sub V d sau s hi ngi dng c mun ng bn v hay khng, sau kim tra xem tp c lu ln u cha, tip mi thc s ng bn v li s dng phng thc Close c trong i tng bn v hin hnh
-
Thot khi chng trnh AutoCAD Application.Quit Thc hin phng thc Quit c trong i tng Applicaton
Sub Thoat_AutoCAD() Application.Quit End Sub C phpV dPhng thc ny s ng tt c cc bn v v d n VBA trong AutoCAD li, nu c bn v hoc d n no chac lu, n s nhc ngi dng lu bn v, sau mi thc s thot khi AutoCAD
-
ZoomWindowZoomPickWindow ZoomPrevious ZoomAll ZoomExtents Mcca sAutoCadCc thao tc c bn caAutoCadZoomScaled
-
ZoomExtentsApplication.ZoomExtents Thc hin phng thc ZoomExtents
Sub VD_ ZoomExtents() Application.ZoomExtents End Sub C phpV dPhng thc ny s phng mn hnh bn v theo vng bao ca tt c cc i tng trong bn v, ngha l gip ta c thquan st c tt c cc i tng hnh hc hin ang c vi kch thc ln nht
-
ZoomAllApplication.ZoomAll S dng phng thc ZoomAll
Sub VD_ ZoomAll() Application.ZoomAll End Sub C phpV dTrong ch 2D, phng thc ny s phng mn hnh bn v theo gii hn ca bn v hoc theo vng bao tt c cc i tng tu thuc vo vng no rng hn. Cn trong ch 3D, phng thc ny tng ng vi phng thc ZoomExtents.
-
ZoomPreviousApplication.ZoomPrevious S dng phng thc ZoomPrevious
Sub VD_ ZoomPrevious() Application. ZoomPrevious End Sub C phpV dPhng thc ny s chuyn mn hnh bn v v trng thi trc . Khi ngi dng thc hin lnh Pan hoc cc lnhlin quan n thu phng mn hnh bn v
-
ZoomPickWindow Application.ZoomPickWindow S dng phng thc ZoomPickWindow
Sub VD_ ZoomPickWindow() Application.ZoomPickWindowEnd Sub C phpV dPhng thc ny s phng mn hnh bn v theo mt hnhch nht do ngi dng chn trn mn hnh bng kch chut
-
ZoomWindow Application.ZoomWindow Di_Tri, Trn_Phi S dng phng thc ZoomWindow C php
Tham sGii thch
Di_Tri Mng 3 phn t kiu Double, xc nh to im gc di bn tri ca hnh chnht s thc hin phng i.Trn_Phi Mng 3 phn t kiu Double, xc nh to im gc trn bn phi cahnh ch nht s thc hin phng i.Ghi ch
-
Sub VD_ZoomWindow() Khai bo bin cha to cc im gc Dim point1(0 To 2) As Double Dim point2(0 To 2) As Double Gn to cho cc im gc point1(0) = 1.3: point1(1) = 7.8: point1(2) = 0 point2(0) = 13.7: point2(1) = -2.6: point2(2) = 0 Thc hin phng thc ZoomWindow ZoomWindow point1, point2 End Sub V dPhng thc ny thc hin thu phng mn hnh bnv theo mt hnh ch nht c xc nh trc ZoomWindow
-
ZoomScaled Application.ZoomScaled Scale[, ScaleType] S dng phng thc ZoomScaled C php
Tham sGii thch
Scale Tham s xc nh t l thu phng mn hnh bn v ScaleType Tham s tu chn, xc nh cch thc p dng hs t l , C th bng mt trong cc hng s sau:
acZoomScaledAbsolutetng i so vi vng v (drawing limits).acZoomScaledRelativetng i so vi mn hnh bn v hin hnh.acZoomScaledRelativePSpacetng i so vi n v ca khng gian m hnh.Ghi ch
-
Sub VD_ZoomScaled() Dim ti_le As Double Dim kieu_phong_dai As Integer ti_le = 2 kieu_phong_dai = acZoomScaledRelative Thc hin phng thc ZoomScaled ZoomScaled ti_le, kieu_phong_dai End Sub V dPhng thc ny thu phng mn hnh bn vtheo mt t l c xc nh trc ZoomScaled
-
gii thiukhi hc VBTrnh bytrong bi ny
-
GetDistance GetAngle GetInteger, GetReal GetString GetEntity Nhp d liuPrompt Cc thao tc c bn caAutoCad
-
Prompt Utility.Prompt Message S dng phng thc Prompt ca i tng Utility (l mt thuc tnh ca i tng Document) C php
Tham sGii thch
Message l on vn bn s c hin th trn dng lnh ca AutoCAD .Ghi chPhng thc ny ch n gin l gi mt on vn bn ndng lnh ca AutoCAD v thng c s dng thngbo cho ngi dng bit mt ni dung no trc hoc sau mt thao tc vi chng trnh
-
Prompt V d
-
GetString RetVal = Utility.GetString(HasSpaces[, Prompt]) S dng phng thc GetString ca i tng Utility C php
Ghi ch
-
Phng thc ny c s dng ngi dng nhp vo mt chui k t. AutoCAD s dng li cho n khi ngi dng nhp vo mt gi tr no
Sub VD_GetString() ' V d minh ho cc cch s dng phng thc GetString Dim returnString As String ' Nhc ngi dng nhp Gi tr nhp vo khng th cha du cch returnString = ThisDrawing.Utility.GetString _ (False, "Nhp chui (nhn SPACE hoc ENTER kt thc): ") MsgBox "Chui va nhp l: '" & returnString & "'" ' Nhc ngi dng nhp Gi tr nhp vo c th cha du cch returnString = ThisDrawing.Utility.GetString _ (True, " Nhp chui (nhn ENTER kt thc): ") MsgBox "Chui va nhp l: '" & returnString & "'" End Sub V dGetString
-
GetInteger, GetReal RetVal = Utility.GetInteger([Prompt]) RetVal = Utility.GetReal([Prompt]) S dng phng thc GetInteger, GetReal ca i tng Utility C php
Ghi ch
-
Phng thc ny c s dng khi mun ngi dng nhp mt s nguyn (phng thc GetInteger) hoc mt s thc (phng thc GetReal)
Sub Example_GetReal() ' V d sau s dng phng thc GetReal v phng thc GetInteger ' ngi dng nhp vo s thc v s nguyn. Dim returnReal As Double Dim returnInteger As Integer ' Nhc ngi dng nhp vo s thc, ' sau hin th kt qu c nhp vo. returnReal = ThisDrawing.Utility.GetReal("Enter an Real: ") MsgBox "S thc va c nhp: " & returnReal & vbCrLf & _ "(Tip tc nhp gi tr.)" ' Nhc ngi dng nhp vo s nguyn, ' sau hin th kt qu c nhp vo. returnInteger = ThisDrawing.Utility.GetInteger("Nhp s nguyn: ") MsgBox "S nguyn va c nhp: " & returnInteger End Sub V dGetInteger, GetReal
-
GetAngle RetVal = Utility.GetAngle([Point][, Prompt]) S dng phng thc GetAngle ca i tng Utility C php
Ghi ch
-
Phng thc ny c s dng khi mun ngi lp trnh nhp vo mt gi tr gc bng cch nhp gi tr ngay trn dng lnh hoc chn mt gc trn mn hnh V dGetAngle
-
GetPoint RetVal = Utility.GetPoint([Point][, Prompt]) S dng phng thc GetPoint ca i tng Utility C php
Ghi ch
-
Phng thc GetPoint c s dng ly mt im do ngi dng nhp vo bng cch nhp ta trc tip t dng lnh hoc chn im trn mn hnh. Gi tr tr v ca phng thc c kiu Variant, l mt mng gm 3 phn t s thc cha ta ca im c chn trong h ta WCS V dGetAngle
-
GetDistance RetVal = Utility.GetDistance([Point][, Prompt]) S dng phng thc GetDistance ca i tng Utility C php
Ghi ch
-
Lu GetDistancePhng thc GetDistance c s dng ngi dng nhp vo gi tr khong cch. Ngi dng c th nhp mt s thc trc tip t dng lnh hoc c th chn hai im trn mn hnh bn v, AutoCAD s t ng tr v gi tr s thc l khong cch gia hai im
-
GetDistanceV d
-
GetEntity Utility.GetEntity Object, PickedPoint[, Prompt] S dng phng thc GetEntity ca i tng Utility C php
Ghi ch
-
Lu GetEntityPhng thc GetEntity c s dng ly mt i tng ca AutoCAD bng cch cho php ngi dng chn trc tip bng chut trn mn hnh ha
-
GetEntityV d
-
Lm g ?
-
Phng thc GetVariable S dng c gi tr bin h thng RetVal = object.GetVariable(Name) C php
Ghi ch
-
Phng thc GetVariable V d
-
Phng thc SetVariable S dng xc lp gi tr bin h thng object.SetVariable Name, Value C php
Ghi ch
-
Phng thc SetVariable
-
V dSetVariable
-
u khng phi l ci ti khng y !Nhi ng ny s ra ng kia !Hc cng l mtkhoa hc