ࡱ> q__SRP_0 _r.__SRP_1__SRP_2 r"__SRP_3s$h @X hH @8 ( @ PX P@ P( @ f8`@m`z `hp h` p=Root Entryj{VBA_Project 8/ݿj{VBA_Project_Version(VBA@?/ݿ Y . !"#$%'()*+,-/0123456789:;<=>?@BlCDEFGHIJKLMNOPQRSTUVWXYZ[\]kj`abcdefghinmpoA~tuvwxyz{|}^ / ( !"#$%&'*+0-.123456789:;<=>?@n,pqrsID="{698656A7-40E0-4F22-A52F-8AF27E1B3734}" Document=ThisDrawing/&H00000000 Module=ExtendedData Name="ACADProject" HelpContextID="0" VersionCompatible32="393222000" CMG="F7F535215D21F725F725F725F725" DPB="8D8F4FC7735C745C745C" GC="2321E1757676767689" [Host Extender Info] &H00000001={3832D640-CF90-11CF-8E43-00A0C911005A};VBE;&H00000000 [Workspace] ThisDrawing=66, 66, 661, 514, C ExtendedData=110, 110, 688, 584, Z PROJECTwm MPROJECTThisDrawing )__SRP_4o__SRP_5mExtendedData &{_VBA_PROJECTE dir rU~}  kalThisDrawingThisDrawingExtendedDataExtendedData޲0* pHd ACADProject8@ = t   p=( J< rstdole>stdole f%\*\G{00020430-;C 0046}#2.0#0#C:\WINDOWS\SYSTEM\c2.tlb#OLE AutomatioFn^MSForms>BSFEr@ms3DD452EE1-E08F-1 01A-8-02608C4D0BB4DFM20.DLL#Microsoft 9" \ Ob Library/;C1sA00}#0#Gj0rAB89669 C8-1E647F2-A348-24BB1FB7198A6c:\windows\WP\VBE\DOp.exd`7.E .`M Excel> Excl,D`20813D1 .2gram Files\_Office\EXCEL8.O LB1# 8.0h"BThisDraIgG ThiDrawng 2 HB1Z"@B,C"*"B+BExtendedDa`taG@AUtU@Unne`rU $`$`$`$`$!`$I`$q`nrU~| .RIE 0   ph$ ,QhlCdld$ ld$ +'''$:TNDD 6D$p,dl hD$0 8  0  0   0  0 p  MDt5`2o@dm1!cblB#<ьJnu!= &ztdImwxzV`tdImwьJnME(SLSS6"N0{8E75D913-3D21-11D2-85C4-080009A0C626} (%H` % %`h8@tt p=$*\Rffff*083c9b1c0c4 xpаAttribute VB_Name = "ThisDrawing" Bas0{8E75D913-3D21-11D2-85C4-080009A0C626} |@GlobalSpacFalse dCreatablPredeHclaIdTru BExposeTemplateDerivBustomizD2Option /licit  %8p  Yxhh``x 8`((ph Vh  ^ P  "@ H X++h ( "(  $ @` 5 x Example 18-unnumbered. Example 18-9.f ] .X X!" AutoCAD busyA@8ntd`k0o( AutoCAD idleA@8 ]]o 8.`ample" Sub newProc() 6'^o thh,010530'b ^ x = 128 ^ 2 6'^ ^MsgBox x 6'^ ^Dim x as Integer 6'^indo ^End Sub 6'^ ^ `%<!>B@@X  Attribute VB_Name = "VBAinterface" Option Explicit ' _MsgBox "AutoCAD idl!Else(bu sysnd Ipf Ebu9pnew()'010530?objVBEObjec끀 =E4Sng ׀B Proc()" & vbCr# & "@x as Iger x128 ^ 2 `x X ?.CodePa@nes(1)Module.In@sertLi@ p500,=>JklB#<ьJnu!= &ztdImwxztdImwьJnME(SLSS6"rU @nQQ94arU am  *\G{000204EF-0000-0000-C000-000000000046}#4.0#9#C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA6\VBE6.DLL#Visual Basic For Applications*\G{C094C1E2-57C6-11D2-85E3-080009A0C626}#1.1#0#C:\Program Files\AutoCAD 2000i\ACAD.TLB#AutoCAD 2000 Type Library*\G{00020430-0000-0000-C000-000000000046}#2.0#0#C:\WINDOWS\SYSTEM\stdole2.tlb#OLE Automation*\G{0D452EE1-E08F-101A-852E-02608C4D0BB4}#2.0#0#C:\WINDOWS\SYSTEM\FM20.DLL#Microsoft Forms 2.0 Object Library*\G{B89669C8-1E8F-47F2-A348-24BB1FB7198A}#2.0#0#c:\windows\TEMP\VBE\MSForms.exd#Microsoft Forms 2.0 Object Library.E .`M *\G{00020813-0000-0000-C000-000000000046}#1.2#0#C:\Program Files\Microsoft Office\Office\EXCEL8.OLB#Microsoft Excel 8.0 Object Library   p=BThisDrawing083c9b1c0cThisDrawing"ExtendedData313d7121c4ExtendedData1@d8X4ҨgDSو:WG~!jJcUH`:+4J\S As b=dimCEachDElseHendifTFor^GoTo_IfbInjIntegerObjectOnOrPrivateReDimResumeSetstopSubThenAutoCAD"VBAWin16~Win32MacVBA6# ACADProjectstdole`MSFormsC ThisDrawing5 _Evaluate ExtensibilityRXData܅AcadLineeP1^P2^ ModelSpace_AddLine8GpCodeAGpDataVrealsSetXDataxgCodekxgDatawgetXDatai`MsgQvbCr$MsgBoxR AcadDocumentZExample_AddXRecordTrackingDictionary #AcadDictionaryTrackingXRecord AcadXRecordXRecordDataType XRecordDatao ArraySizeiCountlDataType%?Data; TYPE_STRINGGTAG_DICTIONARY_NAMETAG_XRECORD_NAME8DCREATEM Dictionaries|s GetObjectzGetXRecordDataVarTypepvbArray]9Now%SetXRecordDatazvbCrLf vbInformationnAddr AddXRecord&Itemz%Ch10_AttachXDataToSelectionSetObjects^sset/. SelectionSetsSelectOnScreenappNameKpxdataStrc xdataTypeent݉Ch10_ViewXData6xd_xdimsgstr3 AcadEntityivbEmpty˜ ObjectNameExample_SetXdatalineObjmstartPt'endPtyZoomAllm$reals3]worldPos;xdataOutpNxtypeOuttExample_GetXDatam _B_var_LoopStr _B_str_Strz _B_var_on6XXXonerror_B_var_onerrornErroNumber- Description SourceGIsArray _B_var_IfPCh10_ViewXData_modifiedD viewXDataM~Example_RegisteredApplicationsA RegAppCollAcadRegisteredApplications"RegisteredApplications RegAppObjAcadRegisteredApplicationY seekRegAppsM _B_var_ForjLRgAppsRegApp+RegAps.RegApl'RegApcRegApo*RgaCol]PRgaObjcolRegfXobjRegtRapCol zRapObjSBoxy_B_var_RegAppObjY _B_var_AcadRegisteredApplicationxgItemH_AppNam̽SelSetAcadSelectionSetEntity SelSetDeletesnewSSetRDeletex addToolbar7BMenuGrp AcadMenuGroup_AToolBar2 AcadToolbarl  Application* MenuGroupsToolbarsSBmpLBmplpathVBATButton7AcadToolbarItemAddToolbarButton- SetBitmaps<Visible addFlyout,FAttachToolbarToFlyouti AddSeparatorXLAYERChrK~ _B_var_Chr\; _B_str_Chrm#_B_var_pathVBA _B_var_SBmp9ja delRegAppobjGroups _B_var_objzdef) _B_var_def:@ AcadObject RegAppsView RegAppDel3x XDataMake XDataViewq RegAppDelete CatPlineXDataLyrCol AcadLayersOLyrObj! AcadLayer  SaveLstate$LayersFreeze"LayerOn  PlineType} ProcessPlinesf} RestoreLstateRegen acActiveViewportrN FilterType FilterData SSet1VacSelectionSetAll. ss1Entity[kblwpCoordc%wnpCoord-xCoordߠyCoord\Layer Coordinates!kSortAsckCtrPntSSet2VSelectByPolygonlacSelectionSetWindowPolygoncCount0vss2txtT%AcadText~ss2text?InsertionPoint TextString ss1PlinejAcadLWPolylinelsmObjj!AcadLayerStateManagerGetInterfaceObject]) SetDatabaseSave acLsFrozen%acLsOnZRestore>exportXData_CSVBXDtStr$aXxoX_Code1PX_Data|X_Item  clearXData _B_var_Sub _B_str_MidXobjectsLHandleValAreaB _B_str_LeftVClearPlineXDataRoomNo _B_var_SetAddTextQ AlignmentIacAlignmentMiddle)TextAlignmentPointopUpdateColor2FacGreenb _B_var_ObjectjPgRi AddCircle AcadCircle, EntityType catalogXData"YProcessEntities} exportXData!RmNumStrŒRoomTxi_B_var_AcadSelectionSetm_B_var_Restore Blstate@Right  _B_str_Right#(acCyanpacYellowsxCodesxData^ X_DataDimgxCode:gxDataFN _B_var_RoomTx_Module1b VBAinterface ExtendedDataNExample_GetInterfaceObjectf ERRORHANDLEROpolyExample_GetAcadStateState AcadStateUM GetAcadState  IsQuiescentdExample_LoadDVBUSFileNamejLoadDVB,RunMacroX UnloadDVBExample_RunMacroqExample_IsQuiescentym Example_VBEVBEModelm newRoutineVBEvbTabc9 CodePanes CodeModule InsertLinesDynamic_ProcedureRelativeC_B_var_RelativeRM^ SendCommandc_B_var_SendCommandDRMdlNHsim _B_var_sim acadapp CheckStateaState^GExcel+activevbproject[`newSub?_objVBEvneesub> _B_var_neesubnnewProcvbCrEnd`   Z $,.f.:d B1xMEH@ P<DL< (   (x(`O 8@(( @ " ^`8_ b F8`8x @b Pp @ P@| @l @\ l`XX hbf `( h@ P`88t @p 8pP `@N L  x (h P p `< @, `@ @ @ @ `@@`(t @p ((X H PXl ` (X @H @8 (@( @ @ @ @ @ Hp@ @ @ @ @ (@x @h @X 0@H @8 @@( @ 0 @ `hpx@ (@ @ @ @ @ x@ @x @h @X @H @@8 (@( @ 8@ @@ @ @ @ @ h@ @ @ @x @h @X (X@H @8 (@( @ @ @ @ @ @ @ @ @ x@ @x @h @X @H @@8 @( 8 @ @ @ &@HH0  X @ @ P@ @x @h @X P@H @8 @( @ @ @ @ @@ p @ @ H( @ @HO $\D @@ ( 8< P8o @`p% ) F`!  @ @ h @ (@ @ @ @ @x @h @X (!@H @8 @( @ !@ @ @ @ !@ @ @ @ `) @x @h @X "@H @8 @( @ #@ @ @ @ p#@ @ @ @ #@ @x @h @X 0$@H @8 @( @ $@ @ @ @ $@ @ @ @ P%@ @x @h @X %@H @8 @( @ &@ @ @ @ 80)p (@ @ 0)( @ @HO & &D &'@ '('< @' 0)8o P'`'%)8@8 P P((()t ((, @(X @ @ @O )) (0)  "(P)  ))8`DV) X  p=$*\Rffff*313d7121c4~ 6 P * P  Rp R R  N"  0 " H  (82*H@7 (<.X0%4%04! 2X< "0  " ".h  #X   $X 0@(FPx 08 H >sx  h x4F"0 P " 8@HPXh " x "   21$2 %@"50 ( 8 H  X (h x   *    0 5 A-AREA-IDENu!= &q. LWPOLYLINE POLYLINE SelSet1 A-AREA-ROOMCoordinates()`5  w  :AutoCAD.AcadLayerStateManager Lstate , XData objects found. M3 600 7  E @  h `  .  0 `8 @ . (X &P    x  D   .  06  0  #0  4H h  x ,  !  !      8  H          6+  6+0  h h 6x     0  .      ( 0@H Xhx  0 2a(!0P&O`   &=  0   00$-`"$">ZP8L8L8Th*0p     &  ,f       0  H "  H 1    .(H "X!p  h " , p``@x  ".  (08@HP Xpx   .S#8)P#p11&## (  8  HX `"0p  " 0HP0 @P@X ( "      !! ! (! "@! H!X!`!$! !!! "(" X 0X# "px>8 x 0(# "> H8" L" """( #x Example 18-2.F]x]]`']]8 Example 6-13.Re]@ !X B@ojoH   ! %.] ] ]@ AppNam = "RecordID"atio+$FA character string in Xdata+&+$F0+&:layer+$FcU׭WH+&;real+$F_B+&7distance.+$F+&5 16-bit Int/+$F+&5 32-bit Int+$Fd+&4 scaleFactor+$FAnother string of characters+&+(Ey?+(n]z?+( +$F ( +& $ & B@*+F+F+oLstate   B@]o] ]] ]]]]k      B@0nd $` If   $ 4 2$   6'4d` * 4 6 2$ ) 6 2$  ) $,$,$ 6 2$  )'4k 2 '2le itiali]] 2 '24  $o]hoh0@]'2F'4v%](p Example 18-8.%]  !.   4 ! 6'4 newSelSet !v%l. newSelSet !v%pB@p B@xHP#`#P#x### 2   XData objects found.A@88## !RecordID !FacilityProject B@kXP 4AcDbRegAppTableRecord(s)A@8o X ] #$$ Example 18-4.]x]A@V !X.N R N R(,unlock all layerswin R(Z,freeze all layers to R(\Web !X%p(Z !X%p.R f B@d A@0 '2]A] 2+$t](0 $'h &'j#create selection set of lwpolylinesity]@( SelSet1 !v%pB@ SelSet1 !v%l.l n h j lB@Hrig]`]]]]P,centerpoint coordinatesna p ld p!| A-AREA-ROOM~1 >convert lwpline coordinates to window polygon coordinate array P p!~'tOG (convert 2D coordinates to 3D coordinatesa 2$t 2+v 0 2 $t 2 +v 2 '2t 2 %calculate centerpoint within lwplines j = v xt i'2 2 vund(wn 2$v 2+x 2 $v 2+z 2 '2np 2(]P,window polygon coordinates], lightweight polyline coordinateswp x'rd. r xA@l r zA@e]$x r$x$x  +$z r$z$z  +a+t 0create selection set of entities within lwplineso]HSelSet2 !v%pB@SelSet2 !v%l. 2 +vth !'ror r'2 r]h]X    22 2 '2At oSelecSelSet2 !v%pB@ 2 r~ 2 $% 2$% 5 2$. 2 '2_ 2$ 2 2 2 '2n 2$% % o  2 2k  2ta'2$! 2$ :Ĥ 2 '2] p. ] +FFacilityProject++F p!+ 100+FM3+ 0+F600+tity+F7+ X_Dat+F$!$ ++F$!$ + +F ! +7) = M +.T  +2)   pB@*kk pSelSet1 !v%pB@oo AutoCAD.AcadLayerStateManager ! %. Example 6-14.AutoCAD.AcadLayerStateManager ! %.10 !X B@8Lstate B@yerSLstate B@%/ VBA for AutoCAD 2002: Writing AutoCAD Macros Jeffrey E. Clark],  , : H V d r "$(Handle"$(,"$(Complex"$(,"$(Building"$(,"$(Floor"$(,"$( Room Number"$(,"$(Level ID"$(,"$( Sequence ID"$(,"$( Program Area"$(,"$( Polyline Area"$(,"$(CtrPnt-X"$(,"$(CtrPnt-Y"$(,"$(CtrPnt-Z"$(' ]( newSelSet !v%l. B@x]]]H]]] FacilityProject']X '2  '2F'4F'    B@0 $`    2$1000 "$( "$(,' 2$1005e &H ,' 2$1010e $,' $,' $' 2$1040e  ,'k  2 '2   2 '2k  newSelSet !v%pB@W o  ] ] ] 2 r 2 $ 2$ 2$' 2 '2_ 2$ 2 + 2 '2 2$   2 +k 2o  without interruption.ge # Copyright 2002 Prentice Hall PTR-ROOMx!J This software may be freely copied and used so long as this disclaimer,K together with the above copyright notice, are included in all copies andB@L any accompanying documentation. These example programs are made available K "as-is" without any explicit or implied warranty. Neither the author nor1 `] %!p" B@ROOM N  (H] add room number text$ A-AREA-RMNO (|0! A-AREA-IDEN !X%p(ZO" c A-AREA-RMNO !XB@l!$h! 2  XData on  !: h 4A@8(" LWPolyline+&, EntityType! 2 tCoord( v zound Example 18-6.-- Example 18-Sidebar.---' Example 18-5.-- newSelSet !v%p.------ newSelSet !v%pB@------  v B@ lwpliA@b t t  v`X!  A-AREA-RMNO %X("A-ARE AppNam = "FacilityProject"Proj8!'!] $  (!FacilityProject   pB@0".+F$!$! $ $+!+F$! 2 $ +$  $  ! %. +$FRecordID+&!C:\A2K2_VBA\FacilityData.txth! Example 18-1. Example 18-3. Example 18-7.`! Example 18-unnumbered.p ]0 .X X!" AutoCAD idleA@8d AutoCAD busyA@8k o  Example 18-9.] 8.`]@ Sub newProc() 6'^ ^Dim x as Integer 6'^ ^ x = 128 ^ 2 6'^ ^MsgBox x 6'^ ^End Sub 6'^ ^ `%<!>B@@oxpA This procedure may be used to remove an existing selection setF resulting from the unexpected termination of any of these examples.G publisher warrant that these programs are error free or will operate"* This procedure is used by Example 18-6.* This procedure is used by Example 18-3."] # Attribute VB_Name = "ExtendedData" Option Explicit ' A for AutoCAD 2002: W@riting*M acrosbJeffrey E.@ Clark*CopyrightA Prentice Hall PTRoThis software may be Oely copied and usso lBoas t6disclaimer,ttogether withe above$FnoB, 6 inclu iln J7s7&any accomp~documca. These example progr,amcd=va@ilable'"@as-is"Mout3y i#wranty. Necfi authnor&publisuarwatyIEerrTAwi_operat%J#int ,up7gED718-1.Sub XMake() Dim Object As AcadCi rc>EP(0 To 2)Do/@R @ )5: P(1F= 0CR3(Set=disDrawk.ModelSpace.AdD$(P, RD-.GpC (9(IntegfeZ(Gp=VariiGVrexals:31`001: A"RecordID@D ?@ 0F B"A chararc@l sXdb&3""0"n'layD34G"3.14159265358979E+40 ' "$4$G"58745576160(00#D'`ztancC$5#7g"3276716-bit 7j6$g"-214748364'3227#47$'scaxleF3au8#0""Ay9of;sAEK!$`D#D.15470054dB=v73205081*"\= 101"C#Cz.l"~Vd,W Ep2kViewiSrvd  dKzIsz("newC"z l OnScpreen !~iA|jApp`MASBmMs@sr X_$nX_TItemN d B(  (ilityPr.oY$Exty/ZsFbEach $In,iW@#A1#. x"# , GqIf Type(#) <> vbEmp uT X_ 'IsApqy3FYeb_ u Q&4 (i) & R"`5T& CaElsDKYyvbCr")" _O {s+; |) P /(0b ,W QvC +4 '9CIf1%i Next1  Box i0ac'@ (3L2 :1 LfPkj-jk ss=djD"c ors@und.4QeJOs.IM`.DeleSubV-3VcxlogWA?LyrColE?L~sOp¢rQRes SaveLst\\}F=@=s1.Lock0<q'unlq2 KF`zeTrueq5'Q0 ' c0)._" rd!0n! ?#A-AREA-IDEN"; z$ 0 ("RMNOu0s.%c=@Yellow ZoomAll$GoU #($J@~z:vwjLWPolypline;es'Ǔ=hwF8 0pXH8TD4/Dj PUcL1kjDP%lj@l t6 j@lBt`5kjDPl.l(<%l @l %l6 l(Pl"l @lo`k<]t5q!l(P%o`k,%l5 jdL (l h.p!t$ d t x lp="x)tp!t$ h Qt[px "pK*mrU ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~g _eJX%   I; X ACADProject ThisDrawing ExtensibilityF@C:\PROGRAM FILES\COMMON FILES\MICROSOFT SHARED\VBA\VBA6\VBE6.DLLVBA 1 Y0W & 'C:\Program Files\AutoCAD 2000i\ACAD.TLBAutoCAD Qy@0FC:\WINDOWS\SYSTEM\stdole2.tlbstdoleSetXData AiP.E .`M C:\WINDOWS\SYSTEM\FM20.DLLMSForms aa`iGH$c:\windows\TEMP\VBE\MSForms.exd 9aapXData u!= &.LwEvu!= &)Al.m~Xh{ _ AcadDocument @(x`5%^I`5()`5  getXData Application_ID 6A character string in Xdata 0 8Another string of charactersW[`5     VBE6.DLL  S Example_AddXRecord .ObjectTrackerDictionary (ObjectTrackerXRecord:դ c2 c()`5 8The data in the XRecord is:  3   " xdata %Ch10_AttachXDataToSelectionSetObjectsCh10_ViewXData SS1~a! c MY_APPW[`5 :  NONE  xdata on  :SelectOnScreen $This is some xdataExample_SetXdataExample_GetXData   pfĤIx8<     ,  >  ,  >     | |   ) )  viewXDataExample_RegisteredApplications seekRegAppsBդ c()`5 TESTq. HA new registered application called  t has been added to the Registered Applications collection. <RegisteredApplications Example .Registered Applications *AcDbRegAppTableRecord 0AcDbRegAppTableRecord(s) 2AcDbRegAppTableRecord (s)  GpData on   XData on ~a! c newSSet SSet SelSetDelete newSelSet addToolbar addFlyoutu!= &PaY &RaY & VBAutilsZaY &\aY & <C:/PROGRA~1/AUTOCA~1/VBAmacro/ Relative VBAutilF XLayer SelSet2 tPerform Copy/Move/Draw functions Relative to a base point. -VBARUN ,Relative.dvb!Relative ^aY & Relative16.bmp Relative32.bmp Bitmaps: Small:  Large:  BatchPlot ACAD Standard Toolbar Object Snap fOutput multiple drawings to a Device or to the Web. .BatchPlot.dvb!PlotDocs BatchPlot16.bmp BatchPlot32.bmp Facility NConnect to a Facility Program in Access 2FacilityProject.dvb!FP01 Facility16.bmp Facility32.bmp& eXecutive Layer Manager Version 2.5 (c) Copyright 1996, Planning_Systems 8^c^c(if (not c:XLAYER)(load  DC:/PROGRA~1/AUTOCA~1/System/XLAYER )) XL  PC:/PROGRA~1/AUTOCA~1/System/XLayer16.bmp  `  delRegApp()`5 0(if (not c:XLAYER)(load  XLAYER.LSP FacilityProject (XData objects found. * XData objects found. P 'FacilityProje#x ("a h(xtpp.p!t$ d t x lp="x)tp!t$ h Qt[px "p #x ," #x 0" p(xtp0    Cx ! Cx ! \lxF,@\M, @M, K0:,%$   X)K.$  ,l=il01, {g%338=v'ip3 s0>cאt lwpt ,ASP"19iCaor Resume Next  ThisDrawing.SelectionSets.Item ("L41").2DttejrOn ErrGoTo 00V S` = AddYG95 ac All, FilterType,  Data?Dim ss1Entity As` Acad  i Integer j k lwp CoordVa`riant'lightwe polyline cinat$es=wn'()(Double'"'dow$gon$xJ #2y A 'ceErpoi4* 'A Examp'1@8-4. F!Each_In'CIf.Layer@"A-AREA-ROOdM"en  'convert C\MP to E `array mClearPlineXData A-AREA-RMNOAddLine()`5 CIRCLE catalogXData exportXData clearXData LWPolyline pC:\Program Files\AutoCAD 2000i\VBAmacro\FacilityData.txt Handle Complex Building Floor Room Number Level ID Sequence ID Program Area) '%',% HlX Xl0/I:,M %M, % ( 0:,%$   X) r&@;al  ance. x\ Int/ct' XData objects found. R 'FacilityProject' XData objects found. RNo 'FacilityProject' XData objects found. FacilityProject2 1000 XDataMake XDataView RegAppsView RegAppDelete CatPlineXDataSortAsc SaveLstate RestoreLstateexportXData_CSV ClearXData c()`  9=?H"Ed"2D _ 3J Re Fx0 UBound(E#) + ((1) / 2))Kj@ME* _iRStep 2 !j)`y(i K`=1Ji" 2! ׌ aj3 ik'cal(culh iVwithineEDl aC1dd 1!11ge A14g4 ! 44 +m %/L}?/k`EdU#TSortAsc k, c cgCtrPnt(/@I຃+aM(@Uakk) - kR"\)DB&X1^5A2a'creZse set of itiesX\%2aK?6|~5|?et2?F~a2$H 2Ă8ByPu!q[Winr, 3,y.C Y4e !2kw l!5jBs@s2txtTrU~|  >q I- .1.)3.I49/9)i//I/ 01'(y 11 22!2qy01)14Q'5556A6666A777 8A81 rU $`$`$`$`$!`,I`//$q`$`$`$ `nn0 X  ,.p$t$ t ,lp=x)tp'P%'`%x TClx (`%C0@l $@^&0 $ 'FlFP @@:( :)|`16 |l)*F @@:P*:)| @@\(l L<:,+( % :,(% |:l,\(L% ,: ) @@(:*`16,\|L<|\,(`  s'''<lF`:P- >F:|:.\lFlL /6|\L< kp ZF'''k#(*#l*#0*F /260p:`$%t$ t p X)tp,P8 @x0 xtp|\L<|\,0 H  p$ @lp=3xplxtd4%lh`t P4l`*#\)*1h2`\`t P4l`0/`x t , td4..'' :<5N,,hML@ /6, 8 dhltx$`\p, h1`:d$%t$ t l`=x)t`0`:d$%t$ t ` X)t`h(xt` 8 K p$ 4lp=xplxtlk t t t \ t d tl:2X(\%p$ 4p PX \)pX1X(\%p$ 4p PlX=t)pX2X:\%p$ 4p PX \)pX%X2p$ 4p \)pX5X:\2%p$ 4p PX T)pX $ K CT  CT  $ $  8lTF\8M\ M\ K0X:\%p$ p X X)pXK.Xp$ p ,lX=)pX'%'\% Hl  Xl0/ W lT 065I5I붫 (\#(x5Ii(\pX @B"l54(\%8B(xH"l6H8(\"l5(\ X} lT 0}5I#(x5Ii(\p} @B"l54(\%8B(xH"l6H84(\%8B(xH"l6H8 !l!l (\ (xli(\p="l"l (\"l"l5(\ lpM`M\@ M`M\@ +lkll붫+lkll붫K0X:\%p$ p X X)pX.Xp$ p ,lX=)pX 'x%'%lM\ % P lp kD\ k* ll"(\ 0X:\%p$ p X X)pX(xkDhAa(%H(\"AX HT(t%8"AX 8Dg6H8TD4"(\!"(\"5(\O(\%"AX 8(x%H HTg6H8Tl(\"5 ~K (\=AX ("l  #0=205(\Q l=,:\ >FR5:\:\:\UAX (\HHl  #0 kR205H>AX (l  FHR/6H>AX (l  FHR/6HZAX 0AX l0Jl # k\R20 ", ok\ R M\ M %M\ % (AX (\HHl  #0 tX9M %o#p$ p 1lX=20)pX5H M\ %  2 \   v0X:\%p$ p X X)pX8 "lhX(x  ,t T8Ra,Y8888 \0 `  0   0 p  0   K p$ 4lp=xplxtlk t t t \ t d tl:2X(\%p$ 4p PX \)pX1X(\%p$ 4p PlX=t)pX2X:\%p$ 4p PX \)pX%Xp$ 4p \)pX5X:\%p$ 4p PX T)pX $ K @:\ $@M\ $M\ K0X:\ %p$ p X X)pXK.X p$ p ,lX=)pX'%'\% Hl  Xl0/ W65I5I붫 (\#(5Ii(\p`T @B"l54(\%@B(P"l6P@(\"l5(\ `!l!l (\ (li(\p "l"l (\"l"l5(\  lpM`M\@ M`M\@ +lkll붫+lkll붫K0X:\%p$ p X X)pX.Xp$ p ,lX=)pX '%'%lM\ % P lp kD\ k ll"(\ t0X:\%p$ p X X)pX(kDha(%P(\"AX P|(%@"AX @lg6P@|l "(\!"(\"5(\O(\%"AX @(%P P|g6P@|ll(\"5 ~K (\=AX ("l  #X=2X5z(\& l=T<:\ < >F R5<:\ <:\ <:\ <LAX (\PPl  F@ R/6P@<>AX (l  FP R/6P<>AX (l  FP R/6P<ZAX XAX lXJl # k\ R2X <"T ok\  R <M\   M %D<T< 8HDTdLh|lh,HXH8(xhH8(xhH8(xhH8(xhH8(xhH8(@0    >xhH8( lhE .'$  ,l=)'%'l% TChpRlLH (lT!Cd!Ch|lhL $^(|l8 T @X:F]35XSlhTeq(1A[5ADTw34w^"q ABB B- BBB0/""fO A 2|3e"2t>1).InsЃPAA<$)& 5A eqyj/%Doqv3qz4 iILoop WhiPW    End If'jA-4Mid$( $9StrA , i, a<> ":"BaWend_^a6g^aq#C1PBLWMo3 rdev10H5sqy1001: sx"FacilProjgoCo =: 5.Handl( "y0"M3?53D 7"6060OE4N"7/%_ w(xt(6(p=7EFl"X 8XHl8"( 8(:.`1h6 XH8( T @X:G]35X)lhH*FXlH:l.8`1h6XH8 T @X:I]35X{1lhF(l%lXH:.8`1h6XH81lhF(l%lXH:.8`1h6XH8&lhF(l%lXH`1h6XH T @X:J]35X#lhFllX:.H`1h6XHT(lXT l8 lhE kRpR LH0:l'%$   X)>D<T< 8HDTdLh|lh,HXH8(xhH8(xhH8(xhH8(xhH8(xhH8(@KCx !LCx ! \lxF,@\M, @M, K0:, %$   X)K. $  ,l=) '%',% Hlp3 XlM0 Xl02a:,M %M, % ( 0:, %$   X) ,x@  T \ > > > Polyline Area CtrPnt-X CtrPnt-Yrm CtrPnt-Z  1005 &H 1010 1040 One  Two  wnpCoord  CtrPnt  j 2 ]Ij6`䠑oЩNc , >FacilityProject, gxCode, gxDataModule1 VBAinterface ExtendedDataExample_GetInterfaceObject "pa6{-ta(6) = Mid$(ss2text(2).T8String, 1, 6)  sxCode(7|1000: sxDa"8, 28P4PVal(Left5 _c Len%) - 1)P9Pss1Pline.Area / 14410!10CtrPnts1Entity.SetnX, E`nd If 'add room number Dim gB} As Vari~a&#ID.gE."Facil3Project"^,!R@*No!Acad@E = Thi sDraw.MAlSpacidI(gí5)(^0.Alignment͌acF@dleK!D ' PoiD# Laya= "A-AREA- RMNO"R UpXdatzN GF\ICSel-ion%s.Item("`1") .D% RestoreLst @Regen !ctiveViewporVSub 'oExample 18-SidebarB.APriv  SAsc(k, a0Jia=hInt rjxDoub1 For j52 0To kIf a(j} >A)`Eenx vbEmptybbP D X' 1#(i""/ &;)P7!?Else05f "&H3/F 105&pa>,܏ (1?beood 4 E pnO 0/Á LbDa5jшGc2ϢˢLClos0?~868EqER`apColAPi@steredlicatsC ObHDZZ?o_R@ @SSJQ& S.Xe"vbCDq0;NRecordyOr|yW,FI RapObj.Delete End IfxNextdMsgBox , , "AcDbRegAppTableRecord(s)" ASub 'Example 18-unnumbered.& CheckS@tate()nDim a As` Acad Set= Get If.IsQuiescent Then>"AutoCAD` idle[ E ls busy/v u9pnewtnobjVBEnecm |= X S`tring = "/ Proc()" & vbCr & "(x as In teger x = 128 ^ 2 Lx DN ?.CodePan es(1)Module.Ins ertLi@ 5x00,=>ʜa6-13aThis pHedure used by  P(riv AUSaveLsMlsmncLayerႨManaTC^s =@isDra wo.lication. _ @AdrfaceÅ(Ũ."C.Databa|seC  "C", acLsFrozen +Of[*4* ~6*Restor+++ ++ 8+9+df+.hL,Tmay be "Uto remove an exist`I sc!I !]resulfrom thnexp^terminO onyFec6s5_elJ߂a`S`_is.Item("!" . eF()h8@tt p=$*\Rffff*083c9b1c0c4 xpаAttribute VB_Name = "ThisDrawing" Bas0{8E75D913-3D21-11D2-85C4-080009A0C626} |@GlobalSpacFalse dCreatablPredeHclaIdTru BExposeTemplateDerivBustomizD2Option /licit xample 18-5.-- newSelSet !v%p.------ newSelSet !v%pB@------  v B@ lwpliA@b t t  v`X!  A-AREA-RMNO %X("A-ARE AppNam = "FacilityProject"Proj8!'!] $  (!FacilityProject   pB@0".+F$!$! $ $+!+F$! 2 $ +$  $  ! %. +$FRecordID+&!C:\A2K2_VBA\FacilityData.txth! Example 18-1. Example 18-3. Example 6-13. Example 6-14. Example 18-7. Example 18-1.`!Attribute VB_Name = "ExtendedData" Option Explicit ' vbEmptyE4 fX_"%`)G E@ IsAprray@ dF@e #&d@(i) & "& Cx%xEls$a v8bCrb !D )" _j+u) _!(0,W !uB+  + 204 '9AIf1%i Next4  Box i0ac' (7K :1 LfנPkj-jk ssdjD" 3 oBs found.49IN s.L.Delet%Ua3Uc~logUA?LyrColE?LQ}sOPrrAResuSaveL zA ZZ}F=@=s1.Lock0<!q'unlall  F_zeTrueq5'fQ0 ' c0)." rd!0l! ?#A-AREA-IDEN" PPGG$ ("RMNOss.%"= acY ellow Zo`omAll$GoU #(Jyg:vwv:LWPolyline;es'=h1wFil1, {g%338=F'a@js0>cs@l\wpt ,ASP"19iCa: #/G("00#G:) *0%?c R" P", ?iSss>135!, k>$Co$$v'ligh(tweQ  cainpwn-('0dowg`j@xR i y- 'cerpoint %ample 18-4. For Each ss1Entity In S0Set1Ifx.Layer = "A-AREA-ROOM" 0Then`h'convert lwpline coordinates to window polygon array LCC>w}.P - 2DA3 ReD@im wnp3(0 To UBound(F) + (( 1) /P 2))(j^0 i .Ste8p 2Jj)F(i7 UKv=cC4iBY2A -2j3Next iK'calcul@ centerpoint@thinŊs bxbBb1L? y+ 6ii BA ,iE i) @W4AE^(_^kdU#TSortAsc k, c 1cgCtrPntg@IAs Douxble+aM(@Uakk) - kR"\)DBG&X1^ '@/E:x5A2a'creZselecti set oDf \iti`wNiX\%2 `$AcadS@K @On Err`Resume ?ThisDra g. s.Item("` 2").D t2 k B2 Iw AddH G, dByPdacWd,& ǁY%untAdkK@A5/ss2txtT0T@k (15)ቤcdp.D - ABB0/`,""$`O A 2|3u"2t>1).InsЃPbA "<:"BWend_^a6^aqE1PB]LWMo3* rdev10HI`gerDataVaria=T sqy10010: sx"FacilProj0ooCo t= 5HxandM"y0c"M3?53D 7"600OE4N"7/%_ w(xt(6(p=7?E6~#J2).-1, 67W 8,?$4!84gVal(Leftg85k _ǁ?Len&=!1-Q 9 3@'8.AP144/ $41Ѐ0#.@=X,+S 'add room numbps;+A>g;=' Dim gxData As Variant  ss1Entity.getX"Facil$Project",CodeB RoomNoAcadTeBx eSet #= ThisDra@wing.MVlSpace.AdE8((5)n(10 20) wO.Alignment = ac MiddleOPoi:5 Layer0"A-AREA-RMNO"Updat)en xut(jL~i@B Doa(i +s(iiA!Loop WhiGA(xH|j ]6-13O\avu(+UlsmOb\A؂S~Manage`  lApp licat@K. "_'Get!8rfp O("AutoCAD. "D .basez#  "CV`acLsFrozU+@ULsO?%4%j`%te%A%ce%`2%Br%d% )h&z7&yexA"e%Op`/"C:\A2K2_VBA\%a.txt" wOutput{ #1!RXDtS|tr'#= Chr(34) & "Han`"@,HQqTCoAx BpuildFploorj Numbe?HLevel ID Sequence?m)|gra@m AreaO&Aolylinre "/xCthhvba.Relative &Polycad.Application 4GetInterfaceObject ExampleExample_GetAcadStateExample_RunMacro Example_VBE .Sub Dynamic_Procedure()   2MsgBox "Isn't this cool!" End SubCodePanesCodeModuleInsertLines TC:/PROGRA~1/AUTOCA~1/VBAmacro/Relative.dvb0 We just added a new subroutine to the top of the current VBA script called Dynamic_Procedure!Dynamic_Procedure Isn't this cool!RunMacro lc:\program files\autocad 2000i\sample\vba\drawline.dvb Module1.Drawline "Relative.RelativeztdImw pathvba.Relative hc:\program files\autocad 2000i\VBAmacro\Relative.dvb rWe just loaded, ran, and unloaded a VBA sample from code! $!Relative.Relative hc:\Program Files\AutoCAD 2000i\VBAmacro\Relative.dvb "Relative!Relative QުD|/ 2pathvba.Relative.Relative $.Relative.Relative% c:\Program Files\AutoCAD 2000i\VBAmacro\Relative.dvb!Relative.Relative xC:/PROGRA~1/AUTOCA~1/VBAmacro/Relative.dvb!Relative.Relative fC:/PROGRA~1/AUTOCA~1/VBAmacro/Relative.dvb!RelativeRM !Relative .Relative <Relative.dvb!Relative.RelativeRXK`5 *AutoCAD is quiescent. 2AutoCAD is not quiescent. Module1.Relative Tc:\PROGRA~1\AUTOCA~1\VBAmacro\Relative.dvb TC:\PROGRA~1\AUTOCA~1\VBAmacro\Relative.dvb &!Relativex.Relative $Relativex.Relative <ACADproject.Relativex.RelativeRMdl Drawlinek=@edXGIVPs "-VBARUN drawline "-VBARUN Relative  VC:\PROGRA~1\AUTOCA~1\VBAmacro\Relative1.dvb $Relative2.RelativeB<FQbN: Xc:\PROGRA~1\AUTOCA~1\sample\vba\drawline.dvb CtrPnt-X//oYoooZh#)l ~#1, )SS,v,!O6x3@N 4[Us("new?R}OnScreEnX_:R6_8X_ˠ0LNs 9Msgm| = ~ #!kjz2DEach Ind x0: A ":0"ؖ bq1WApType() <> vbEmpty_2O  Xb' 1#Q 1000"/ tR&K) 6?Else05f "&H2F "101/ 3(0`,l=&e0doo2q 4 HmO -h- "_Ka5jGAc2_Ƈ[xKzClosu80ǀ8٘RapColAPistered5sC IQY[YogcQ@ @SOS1JQ& S.We"vbCq0;NRecordOrLx-/FƲe End IfxNextMsgBox , , "AcDbRegAppTableRecord(s)"  Sub  'Example 18-1.(6 SelSetDelete()|'001008Dim newS9 As AcadGectxion$$= ThisDra wing. +s.Item(")l")(._#xclearXDat"aw 'w521FxEntit yTypeyStre = "C`IRCLEGoProces"siesLWPOLYLIN`Exit q:,GpCode(0),IntpegerIACV`arianę =$ 0 Gp = <FilterG,  J = heckState AutoCAD idle AutoCAD busyjؖ2D%x8wwM'EmX/' "Excel.Application &AutoCAD.Application tC:\Program Files\Microsoft Office\Office\Excel.ApplicationF x = 128 ^ 2 3C:\Program Files\Microsoft Office\Office\EXCEL8.OLBExcel W XyXm*tBd5&qL{DactivevbprojectDescriptionфK]EE=CO6H5nCA.L(ayea"`Or _@A-AREA-ROOMq!X_Oa?=aTE= (100'@X_oRecord ID,jFacilgj/LG<"" #fcNl` NRet urӨn256 ^ 2ьJn 8C:\A2K2_VBA\FacilityData.txtn