object=ModuleFolder { ParentID=$868F9EA7 ObjectID=$86D6F3F9 Name=Addons } object=Module { ParentID=$86D6F3F9 ObjectID=$06F1F1E8 Name=Uvoz Alias=modAutoLoadUvoz Comment=Modul za pretvorbo krogov in lokov v poligone oz. polilinije. UsedIn=*;Show Module=/*##Uvoz modul####Avtor, datum:## Aleš Trtnik, Softdata d.o.o., 16.11.00##Opis:## V tem modulu se nahaja rutina za pretvorbo krogov in lokov v poligone oz.## polilinije. To je potrebno storiti po uvozu krogov oz. lokov iz ACADa, če## potrebujemo topološko čisto podatkovno plast##Namestitev:## Prenesite datoteko uvoz.sif in jo v SDMS uvozite z opcijo Uvoz SIF## datoteke. Modul se bo avtomatsko naložil v aplikacijo.##Uporaba:## V aplikaciji pritisnete presledek, da dobite ukazno okno. V njem napišete## ukaz CircleArcToPoly ([Ime podatkovne plasti]). Ta ukaz se lahko tudi vkljuci## v menije oz. orodne vrstice z uporabo metode SelectLayer.##*/####Sub CircleArcToPoly (L As TLayer)## Dim Error As Float Error = 0.05 // določa dovoljeno napako pri kreiranju točk#### Dim I, J as Long, CR As TRecord, PA As TPointArray## L.Filter.Clear## L.Filter.SQL = '(currec.TopologyType = ttCircle) Or (currec.TopologyType = ttArc)'## L.Filter.Execute## PA = CreatePointArray## For I = 0 To L.FilteredRecords.Count - 1## CR = L.FilteredRecords.Items (I)## Select Case CR.TopologyType## Case ttCircle## PA.Clear## For J = 0 to 359## PA.AddPoint (Cos (J * 2 * Pi / 360) * CR.Radius + CR.Y, Sin (J * 2 * Pi / 360) * CR.Radius + CR.X)## Next## PA.Generalize (Error)## L.EditRecord.Edit (CR)## L.EditRecord.SetPolygon## L.EditRecord.AddPointArray (PA)## L.EditRecord.Update## Case ttArc## PA.Clear## PA.AddPoint (Cos (CR.StartAngle * 2 * Pi / 360) * CR.Radius + CR.Y, Sin (CR.StartAngle * 2 * Pi / 360) * CR.Radius + CR.X)## For J = CR.StartAngle + 1 to CR.EndAngle## PA.AddPoint (Cos (J * 2 * Pi / 360) * CR.Radius + CR.Y, Sin (J * 2 * Pi / 360) * CR.Radius + CR.X)## Next## PA.AddPoint (Cos (CR.EndAngle * 2 * Pi / 360) * CR.Radius + CR.Y, Sin (CR.EndAngle * 2 * Pi / 360) * CR.Radius + CR.X)## PA.Generalize (Error)## L.EditRecord.Edit (CR)## L.EditRecord.SetPolyline## L.EditRecord.AddPointArray (PA)## L.EditRecord.Update## EndSelect## Next## PA.Destroy##EndSub## }