Categories
VB.NET

ПИНМ – версия 1.0.1

pinm-adjustment-result

Страница: Параметрично изравнение на нивелачни мрежи

Връзка: ПИНМ_v1.0.1

Описание:

Програмата служи за параметрично изравнение на нивелачни мрежи по МНМК.

Примерно съдържание на входен файл с дадени репери:

нр2000 470

Примерно съдържание на входен файл с измервания (нивелачни ходове):

нр2000 нр500 0 37 0
нр500 нр600 5 30 0
нр500 нр700 0 54 0
нр500 нр800 5.0001 82 0
нр600 нр700 -5 30 0
нр600 нр800 0.0000 54 0
нр700 нр800 5 31 0
нр800 нр450 -5.0003 693 0
нр450 нр250 0 35 0
нр450 нр350 5 30 0
нр450 нр150 4.999 70 0
нр250 нр350 4.9999 34 0
нр250 нр150 5 51 0
нр350 нр150 0.0001 42 0

Примерен резултат след изравнение на мрежата:

ПАРАМЕТРИЧНО ИЗРАВНЕНИЕ НА НИВЕЛАЧНА МРЕЖА

Неизвестни (Параметри) = [8]; Измервания (Уравнения) = [14]; Свръхизмервания = [6];
Дадени репери = [1];

ИЗЧИСЛЯВАНЕ НА ПРИБЛИЗИТЕЛНИТЕ ВИСОЧИНИ НА НОВИТЕ РЕПЕРИ

Приблизителна височина на нр500    = 470.000[m], изчислена от нр2000
Приблизителна височина на нр600    = 475.000[m], изчислена от нр500
Приблизителна височина на нр700    = 470.000[m], изчислена от нр500
Приблизителна височина на нр800    = 475.000[m], изчислена от нр500
Приблизителна височина на нр450    = 470.000[m], изчислена от нр800
Приблизителна височина на нр250    = 470.000[m], изчислена от нр450
Приблизителна височина на нр350    = 475.000[m], изчислена от нр450
Приблизителна височина на нр150    = 474.999[m], изчислена от нр450

РЕЗУЛТАТ ОТ ИЗРАВНЕНИЕТО

Нивелачен ход      Изм. прев.[m]     mh[mm] Изр. прев.[m]     mh[mm]      v[mm]     mv[mm]
нр2000  ->нр500           0.0000       0.25       0.00000       0.25       0.00       0.00 
нр500   ->нр600           5.0000       0.23       5.00001       0.18       0.01       0.14 
нр500   ->нр700           0.0000       0.31       0.00002       0.20       0.02       0.23 
нр500   ->нр800           5.0001       0.38       5.00003       0.22      -0.07       0.31 
нр600   ->нр700          -5.0000       0.23      -5.00000       0.17       0.00       0.15 
нр600   ->нр800           0.0000       0.31       0.00002       0.20       0.02       0.23 
нр700   ->нр800           5.0000       0.23       5.00001       0.18       0.01       0.14 
нр800   ->нр450          -5.0003       1.09      -5.00030       1.09       0.00       0.00 
нр450   ->нр250           0.0000       0.25      -0.00012       0.18      -0.12       0.17 
нр450   ->нр350           5.0000       0.23       4.99981       0.17      -0.19       0.15 
нр450   ->нр150           4.9990       0.35       4.99968       0.21       0.68       0.28 
нр250   ->нр350           4.9999       0.24       4.99993       0.18       0.03       0.17 
нр250   ->нр150           5.0000       0.30       4.99979       0.20      -0.21       0.22 
нр350   ->нр150           0.0001       0.27      -0.00013       0.19      -0.23       0.19 

ОЦЕНКА НА ТОЧНОСТТА

[PVV] = 0.943
СКГ за единица тежест Me = 0.40[mm]

ДАДЕНИ РЕПЕРИ

Репер    Височина[m]
нр2000   470.0000

НОВИ РЕПЕРИ

Репер    Височина[m] mH[mm]
нр500    470.00000   0.25
нр600    475.00001   0.31
нр700    470.00002   0.32
нр800    475.00003   0.33
нр450    469.99973   1.14
нр250    469.99962   1.16
нр350    474.99954   1.16
нр150    474.99941   1.16
Categories
VB.NET Упътвания

Вграждане на dll в assembly

Примерен код на VB.Net

1. Добавяне на Event Handler преди извикване на ресурс от dll файла

AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf AssemblyResolve

2. Функция за извикване на dll файла

Private Function AssemblyResolve(ByVal sender As Object, ByVal e As ResolveEventArgs) As Assembly
Dim resourceFullName As String = String.Format("Seo.{0}.dll", e.Name.Split(","
  c)(0))
Dim thisAssembly As Assembly = Assembly.GetExecutingAssembly()
Using resource As Stream = thisAssembly.GetManifestResourceStream(resourceFullName)
If resource IsNot Nothing Then
Return Assembly.Load(ToBytes(resource))
End If
Return Nothing
End Using
End Function

Private Function ToBytes(ByVal instance As Stream) As Byte()
Dim capacity As Integer = If(instance.CanSeek, Convert.ToInt32(instance.Length), 0)

Using result As New MemoryStream(capacity)
Dim readLength As Integer
Dim buffer(4096) As Byte

Do
readLength = instance.Read(buffer, 0, buffer.Length)
result.Write(buffer, 0, readLength)
Loop While readLength > 0

Return result.ToArray()
End Using
End Function
Categories
VB.NET

TIN Surface

Поддържани изходни формати във версия 0.7

  • скриптов файл за AutoCAD – експортира повърхнината като 3D линии
  • ESRI Shape файл – за ArcGIS, QGIS и други ГИС програми
  • XML файл – поддържа се LandXML, експортират се точките и триъгълниците

Формат на входния файл

Пълен формат:

[point id] [north] [east] [elevation] [point code]

11415 4572370.166 9462415.219 112.055 road

Само North, East, Elevation

[north] [east] [elevation]

4572369.179 9462409.152 112.190

С Point ID

[point id] [north] [east] [elevation]

11415 4572370.166 9462415.219 112.055

За разделител се използва интервал.

Връзка за сваляне:

[download id=“1074″]

Визуализация на създадена повърхнина с триъгълници и върхове:

tin surface triangles with vertices

Повече за програмата: TIN

Categories
VB.NET

Създаване на TIN с MapWinGIS

Примерен код на VB.NET за създаване на TIN* модел с MapWinGIS

* TIN – Triangular Irregular Network, Нерегулярна мрежа от триъгълници

Dim utils As New Utils()
Dim tin As New Tin()
tin.CreateTinFromPoints(points.ToArray())
Dim shapefile As New Shapefile()
shapefile = utils.TinToShapefile(tin, ShpfileType.SHP_POLYGON)
Categories
VB.NET

Нова версия на Гаусова проекция

Новата версия на програмата за преобразуване от географски координати (географска ширина и географска дължина) в проекционни Гаусови координати можете да свалите от следната връзка Гаусова проекция v1.2.1

За да работи програмата изисква версия 4.0 на Microsoft .Net Framework.

Categories
VB.NET

Обновяване на Vbox7 Downloader

Програмата Vbox7 Downloader, предназначена за сваляне на видео файлове от сайта Vbox7.com, е обновена до версия 0.6, като е добавена нова функционалност:

  • възможност за директно отваряне на файловете от списъка със свалени файлове;

Можете да свалите последната версия на Vbox7 Downloader от тази връзка Vbox7 Downloader

Програмата изисква да имате инсталиран .Net Framework 4, за да работи.

Categories
VB.NET Упътвания

Показване на точки в MapWinGIS

' дефиниране на нов точков shp файл
Dim pointShapeFile As New Shapefile
If pointShapeFile.CreateNewWithShapeID(String.Empty, ShpfileType.SHP_POINT) = True Then
    ' начален индекс на обектите в shp файла
    shapeIndex = 0
    ' за всеки връх (vertex) от списъка с върхове се създава нов точков обект в shp файла
    For Each vertex As Vertex In triangulation.VerticesList
        ' дефиниране на нов точков обект
        point = New Point
        ' координатите на точката съвпадат с координатите на върха
        With point
            .x = vertex.X
            .y = vertex.Y
        End With
        ' дефиниране на нов shp обект
        shape = New Shape
        With shape
            ' дефиниране на нов точков обект
            .Create(ShpfileType.SHP_POINT)
            ' вмъкване на точков обект
            .InsertPoint(point, 0)
        End With
        ' вмъкване на shp обекта в shp файла
        pointShapeFile.EditInsertShape(shape, shapeIndex)
        ' увеличаване на индекса с единица
        shapeIndex += 1
    Next vertex
    ' дефиниране на настройките за изобразяване на точковия shp файл
    With pointShapeFile.DefaultDrawingOptions
        ' тип на условния знак за точка
     .SetDefaultPointSymbol(tkDefaultPointSymbol.dpsCircle)
        ' запълващ цвят на условния знак
        .FillColor = color.ColorByName(tkMapColor.Blue)
        ' размер на точката
        .PointSize = 10
    End With
    ' добавяне и показване на точковия слой върху картата
    With Map
        .AddLayer(pointShapeFile, True)
        .ZoomToMaxExtents()
    End With
Else
    Throw New Exception("Не може да създаде нов shape файл с точки!")
End If
Categories
VB.NET

Задача: Sand-glass

Описание

Имало едно време един могъщ магьосник. Неговото име било Гуеногфрин. Не след дълго той станал велик магьосник. Добросърдечен бил той. Използвал магията си единствено, за да защитава хората от злите вещици, идващи през нощта. Гуеногфрин, въпреки това, бил миролюбив и не искал да се бие или нарани вещиците, затова той измислил друго решение. Щял да хваща вещиците и да ги заключва в пясъчни часовници (единственият затвор, от който  вещица не може да избяга). За нещастие, пясъчните му часовници били на привършване. Помогни на Гуеногфрин да залови всички вещици като направиш свои собствени пясъчни часовници.

Пример

Sand-glass

Решение

Categories
VB.NET

Задача: Fir Tree

Описание

Бъдни вечер наближава, така че дори и програмистите трябва да се подготвят.

В духа на празника твоята задача е да напишеш програма, която отпечатва елха в конзолата.

Форматът на дървото е показан в примера по-долу.

Пример

Fir Tree

Решение

Categories
VB.NET

Задача: Ship Damage

Описание

За дефинирането на диагонала не е от значение реда на въвеждане на двете срещуположни точки, както и самите точки.

Визуализация

Ship Damage

Решение