Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 11:56

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.
Автор Сообщение
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 02 мар 2014 19:40 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Повна конвертація IN4 в XML
Пропоную вашій увазі скрипт, який конвертує IN4 в XML. В результаті отримуємо повноцінний файл XML, який без проблем приймає НКС

Усі дані підтягуються із IN4. Необхідно ввести тільки дату видачі і ким виданий паспорт, а також вибрати тип техдокументації

Скрипт призначений (поки що) тільки для типових простих файлів IN4:
- без оренди/сервітутів/обмежень,
- власник - тільки фізична особа і тільки один
- цільове призначення - тільки ОЖБ, ОСГ, ТСГВ і для ведення садівництва
- тип документа, що посвідчує особу - тільки паспорт громадянина України
- підстава - тільки рішення органу місцевого самоврядування

Вимога до IN4:
- ПІП голови місцевої ради обов'язково у форматі Прізвище Ім'я По батькові

Якщо перераховані умови не виконуються то XML буде сформовано з помилками.

;виділяємо шар IN4 Квартал і копіюємо потрібні параметри
@Map.SelectLayer ID10000
$SrcParam1=@Map.Selected.GetParameter GL
$ParcelLocation=@Map.Selected.GetParameter BC
;виділяємо шар IN4 Ділянка і копіюємо потрібні параметри
@Map.SelectLayer ID20000
$SrcParam2=@Map.Selected.GetParameter AD
$SrcParam3=@Map.Selected.GetParameter KZ
$SrcParam4=@Map.Selected.GetParameter NM
$SrcParam5=@Map.Selected.GetParameter KF
$SrcParam6=@Map.Selected.GetParameter PP
$SrcParam7=@Map.Selected.GetParameter AU
$SrcParam8=@Map.Selected.GetParameter PZ
@Map.DeselectAll
@Map.SelectLayer ID30353
Перетворити | Петлю в складний полігон
@Map.DeselectAll
;виділяємо всі угіддя
@Map.SelectLayer ID30353
@Map.SelectLayer ID30050
@Map.SelectLayer ID30140
@Map.SelectLayer ID30080
@Map.SelectLayer ID30351
@Map.SelectLayer ID30580
@Map.SelectLayer ID30590
@Map.SelectLayer ID30110
Вибрати | Усю групу шарів
;перейменовуємо всі угіддя в шар IN4 Угіддля
@Map.ChangeSelectedLayer 4
@Map.DeselectAll
;виділяємо всі суміжники і копіюємо
@Map.SelectLayer ID50000
@Map.Selected.Copy
;конвертуємо в XML
@Map.In4ToXML
;обновляємо карту, щоби обновити всі шари (іншого способу не знайшов:)) )
@FileNew
@FileClose
@Window.Refresh
;вставляємо суміжники
@Map.Paste
@Map.CalculateRange
@Map.SelectAll
;заповнюємо типові параметри в XML (замінити на свої)
@Map.Selected.ChangeParameter ID7000003 Львівська регіональна філія ЦДЗК
@Map.Selected.ChangeParameter ID7000004 00694
@Map.Selected.ChangeParameter ID7000007 <Executor><CompanyName>МПП "Землемір"</CompanyName><EDRPOU>32631088</EDRPOU><License><LicenseSeries>АГ</LicenseSeries><LicenseNumber>579407</LicenseNumber><LicenseIssuedDate>2012-01-05</LicenseIssuedDate></License><Chief><ChiefName><LastName>Дудич</LastName><FirstName>Артур</FirstName></ChiefName><ChiefPosition>директор</ChiefPosition></Chief><Executor><ExecutorName><LastName>Вачевська</LastName><FirstName>Світлана</FirstName></ExecutorName><ExecutorPosition>інженер-землевпорядник</ExecutorPosition><ContactInfo><Phone>-</Phone></ContactInfo></Executor><Address><Country>804</Country><Region>Львівська область</Region><District>Дрогобицький</District><Settlement>село Снятинка</Settlement><Street>Зелена</Street><Building>9</Building></Address></Executor>
@Map.Selected.ChangeParameter ID7000009 <CoordinateSystem><SC63><X></X></SC63></CoordinateSystem>
@Map.Selected.ChangeParameter ID7000010 <HeightSystem><Baltic77></Baltic77></HeightSystem>
@Map.Selected.ChangeParameter ID7000011 <MeasurementUnit><M></M></MeasurementUnit>
;заповнюємо ПІП гололови місцевої ради
$t1=<LocalAuthorityHead><LastName>
$t2=@StringPart 1 $SrcParam1
$t3=</LastName><FirstName>
$t4=@StringPart 2 $SrcParam1
$t5=</FirstName><MiddleName>
$t6=@StringPart 3 $SrcParam1
$t7=</MiddleName></LocalAuthorityHead>
$result=@Calc $t1$t2$t3$t4$t5$t6$t7
@Map.Selected.ChangeParameter ID7000402 $result
;заповнюємо ПІП начальника Держземагенства
$t1=<DKZRHead><LastName>Бреньо</LastName><FirstName>Любомир</FirstName><MiddleName>Любомирович</MiddleName></DKZRHead>
@Map.Selected.ChangeParameter ID7000403 $t1
;місцезнаходження ділянки (введіть область і район вручну!)
$t1=<ParcelLocationInfo><Region>Львівська область</Region><Settlement>
$t2=@StringPart 1,$SrcParam2
$t3=</Settlement><District>Дрогобицький район</District>
;в межах чи за межами
@if "$ParcelLocation"<>"000" then $t4=<ParcelLocation><Urban></Urban></ParcelLocation>
@if "$ParcelLocation"="000" then $t4=<ParcelLocation><Rural></Rural></ParcelLocation>
$t5=<ParcelAddress><StreetType>
$vul=@StringPart 2,$SrcParam2
$typvyl=@StringPart 1.$vul
@if $typvyl=вул then $t6=вулиця
@if $typvyl=провул then $t6=провулок
@if $typvyl=вулиця then $t6=вулиця
@if $typvyl=провулок then $t6=провулок
@if $typvyl=пл then $t6=площа
@if $typvyl=площа then $t6=площа
$t7=</StreetType><StreetName>
$t8=@StringPart 2.$vul
$t9=</StreetName><Building>
$t10=@StringPart 3,$SrcParam2
$t11=</Building></ParcelAddress>
$t12=</ParcelLocationInfo>
@if "$vul"="-" then $result=@Calc $t1$t2$t3$t4$t12
@if "$vul"<>"-" then $result=@Calc $t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12
@Map.Selected.ChangeParameter ID7000500 $result
;цільове призначення
@if "$SrcParam3"="21 особисті підсобні господарства" then $t1=01.03
@if "$SrcParam3"="22 ділянки для будівництва та обслуговування житлового будинку та господарських будівель (присадибні ділянки)" then $t1=02.01
@if "$SrcParam3"="23 ###ДІЛЯНКИ ДЛЯ САДІВНИЦТВА" then $t1=01.05
@if "$SrcParam3"="19 ділянки для ведення товарного с/г виробництва" then $t1=01.01
@Map.Selected.ChangeParameter ID7000510 $t1
@if "$SrcParam3"="21 особисті підсобні господарства" then $t1=ОСГ
@if "$SrcParam3"="22 ділянки для будівництва та обслуговування житлового будинку та господарських будівель (присадибні ділянки)" then $t1=ОЖБ
@if "$SrcParam3"="23 ###ДІЛЯНКИ ДЛЯ САДІВНИЦТВА" then $t1=ведення садівництва
@if "$SrcParam3"="19 ділянки для ведення товарного с/г виробництва" then $t1=ТСГВ
@Map.Selected.ChangeParameter ID7000511 $t1
@Map.Selected.ChangeParameter ID7000517 <DeterminationMethod><ExhangeFileCoordinates></ExhangeFileCoordinates></DeterminationMethod>
@Map.Selected.ChangeParameter ID7000518 0.0005
;інформація про власника (ПІП, паспорт, адреса, підстава набуття)
$t1=<Proprietors><ProprietorInfo><Authentication><NaturalPerson><FullName>
$t2=@StringPart 1 $SrcParam4
$t2=<LastName>$t2</LastName>
$t3=@StringPart 2 $SrcParam4
$t3=<FirstName>$t3</FirstName>
$t4=@StringPart 3 $SrcParam4
$t4=<MiddleName>$t4</MiddleName>
$t5=</FullName>
$t6=<TaxNumber>$SrcParam5</TaxNumber>
$t7=<Passport><DocumentType>Паспорт громадянина України</DocumentType>
$nomerseria=@StringPart 3,$SrcParam6
$t8=@StringPart 2 $nomerseria
$t8=<PassportNumber>$t8</PassportNumber>
$t9=@Dialog.Ask Дата видачі паспорта (рік-місяць-число) Default=1997-10-21 Size=250
$t9=<PassportIssuedDate>$t9</PassportIssuedDate>
$t10=@Dialog.Ask Ким виданий паспорт Default=Дрогобицьким РВ УМВС України у Львівській області Size=400
$t10=<IssuanceAuthority>$t10</IssuanceAuthority>
$t11=@StringPart 1 $nomerseria
$t11=<PassportSeries>$t11</PassportSeries>
$t12=</Passport>
$t13=@StringPart 1,$SrcParam6
$t13=<Citizenship>$t13</Citizenship>
$t14=<Address>
$t15=@StringPart 1,$SrcParam7
$t15=<Country>$t15</Country>
$oblast=@StringPart 3,$SrcParam7
$t16=@StringPart 1 $oblast
$t16=<Region>$t16</Region>
$t17=@StringPart 4,$SrcParam7
$t17=<District>$t17</District>
$t18=@StringPart 5,$SrcParam7
$t18=<Settlement>$t18</Settlement>
$t19=@StringPart 6,$SrcParam7
$t19=<Street>$t19</Street>
$t20=@StringPart 7,$SrcParam7
$t20=<Building>$t20</Building>
$korpus=@StringPart 8,$SrcParam7
@if "$korpus"="-" then $t21=
@if "$korpus"<>"-" then $t21=<Block>$korpus</Block>
$kvartyra=@StringPart 9,$SrcParam7
@if "$kvartyra"="-" then $t22=
@if "$kvartyra"<>"-" then $t22=<BuildingUnit>$kvartyra</BuildingUnit>
$t23=@StringPart 1 $SrcParam3
$t23=</Address></NaturalPerson></Authentication><ProprietorCode>$t23</ProprietorCode><PropertyAcquisitionJustification><Document>001</Document>
;тут добавити різні підстави набуття права власності
$t24=@StringPart 2,$SrcParam8
$chyslo=@StringPart 1.$t24
$misyac=@StringPart 2.$t24
$rik=@StringPart 3.$t24
$t24="$rik-$misyac-$chyslo"
$t24=@DequoteText $t24
$t24=<DocumentDate>$t24</DocumentDate>
$t25=@StringPart 3,$SrcParam8
$t25=<DocumentNumber>$t25</DocumentNumber>
$t26=@StringPart 4,$SrcParam8
$t26=<ApprovalAuthority>$t26</ApprovalAuthority>
$t27=</PropertyAcquisitionJustification></ProprietorInfo></Proprietors>
$result=@Calc $t1$t2$t3$t4$t5$t6$t7$t8$t9$t10$t11$t12$t13$t14$t15$t16$t17$t18$t19$t20$t21$t22$t23$t24$t25$t26$t27
@Map.Selected.ChangeParameter ID7000520 $result
;вибираємо тип техдокументації
$t1=<TechnicalDocumentationInfo><DocumentationType>
$t2=@Dialog.ListSelect Виберіть тип техдокументації|001|002|003|004|005|006|007|008|009|010|011|012|013|014|015|016|017|018|019|020|021|022|023
$t3=</DocumentationType><DraftingDate>2014-02-18</DraftingDate><DocumentList>001</DocumentList><DocumentList>002</DocumentList><DocumentList>004</DocumentList><DocumentList>005</DocumentList><DocumentList>007</DocumentList><DocumentList>011</DocumentList><DocumentList>013</DocumentList><DocumentList>014</DocumentList><DocumentList>017</DocumentList><DocumentList>022</DocumentList><DocumentList>034</DocumentList><DocumentList>036</DocumentList><DocumentList>040</DocumentList><DocumentList>041</DocumentList><DocumentList>042</DocumentList></TechnicalDocumentationInfo>
$result=@Calc $t1$t2$t3
@Map.Selected.ChangeParameter ID7000522 $result
;Заповнюємо суміжники
@Map.DeselectAll
@Map.SelectLayer ID70010
@Map.Selected.Delete
@Map.SelectLayer ID50000
$N1=@Map.SelCount
$MC=@Map.Count
@if $N1=0 then @Break На карті немає суміжників
$N1=0
@Map.DeselectAll
%Pochatok2
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If $LID<>50000 then @Goto %Next2
$P1=@Map.Object[$N1].Parameter[ID20030]
@Map.SelectObject $N1
@Map.ChangeSelectedLayer 14
$t1=<Proprietor><NaturalPerson><FullName><LastName>
$t2=@StringPart 1 $P1
$t3=</LastName><FirstName>
$t4=@StringPart 2 $P1
$t5=</FirstName><MiddleName>
$t6=@StringPart 3 $P1
$t7=</MiddleName></FullName></NaturalPerson></Proprietor>
$t8=<Proprietor><LegalEntity><Name>
$t9=</Name></LegalEntity></Proprietor>
@if $t2=землі then $result=@Calc $t8$P1$t9 else $result=@Calc $t1$t2$t3$t4$t5$t6$t7
@Map.Selected.ChangeParameter ID7001003 $result
@Map.DeselectObject $N1
%Next2
@if $N1<$MC then @Goto %Pochatok2
@Map.SelectLayer ID50000
@Map.Selected.Delete
;Малюємо дві точки - закріплені межові знаки
;вибираємо шар XML:Земельна ділянка
@Map.SelectLayer ID70005
$Obj=@Map.SelCount
;координати 1-ої точки з XML:Земельна ділянка
$P=@Map.Object[$Obj].Point[1]
;створюємо перший точковий об'єкт в шарі "XML:Межові знаки, закріплені точки" з даними координатами
$PntObj=@Map.NewObject ID70001
@Map.Object[$PntObj].Point[1] $P
;заносимо номер точки та інші значення параметрів
@Map.Object[$PntObj].Parameter[ID7000100]=1
@Map.Object[$PntObj].Parameter[ID7000101]=Survey
@Map.Object[$PntObj].Parameter[ID7000102]=0,05
@Map.Object[$PntObj].Parameter[ID7000103]=0,05
@Map.Object[$PntObj].Parameter[ID7000104]=0,05
@Map.Object[$PntObj].Parameter[ID7000106]=+
@Map.RefreshObject $PntObj
;координати 2-ої точки з XML:Земельна ділянка
$P=@Map.Object[$Obj].Point[2]
;створюємо другий точковий об'єкт в шарі "XML:Межові знаки, закріплені точки" з даними координатами
$PntObj=@Map.NewObject ID70001
@Map.Object[$PntObj].Point[1] $P
;заносимо номер точки та інші значення параметрів
@Map.Object[$PntObj].Parameter[ID7000100]=2
@Map.Object[$PntObj].Parameter[ID7000101]=Survey
@Map.Object[$PntObj].Parameter[ID7000102]=0,05
@Map.Object[$PntObj].Parameter[ID7000103]=0,05
@Map.Object[$PntObj].Parameter[ID7000104]=0,05
@Map.Object[$PntObj].Parameter[ID7000106]=+
@Map.RefreshObject $PntObj
@Window.Refresh
;Виплавляємо угіддя, в яких замість 14 стоїть чомусь 17
@Map.DeselectAll
@Map.SelectLayer ID70009
$N1=@Map.SelCount
$MC=@Map.Count
@if $N1=0 then @Goto %End
$N1=0
@Map.DeselectAll
%Pochatok3
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If $LID<>70009 then @Goto %Next3
$P1=@Map.Object[$N1].Parameter[ID7000901]
@If $P1<>17 Землі тимчасової консервації then @Goto %Next3
@Map.SelectObject $N1
@Map.Object[$N1].Parameter[ID7000901]=14
@Map.DeselectObject $N1
%Next3
@if $N1<$MC then @Goto %Pochatok3
%End

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 04 мар 2014 14:30 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Серьезный скрипт, видно, что немало труда вложено. Спасибо, что поделились.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 25 май 2014 10:20 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
У файлах IN4, зроблених ще в програмі Інвент-Град у словах українська буква "і" писалася латиницею. Зараз, при конвертації такого файлу в XML, виникає проблема через це, бо в останньому всі символи мають бути кирилицею. Пропоную скрипт, який всі латинські символи "і" у параметрах IN4 у відкритій карті перетворює на кириличні. Також скрипт шукає і замінює у параметрі PZ (підстава набуття права власності) римські цифри на арабські

Код:
@Map.DeselectAll
@Map.SelectLayer ID10000
$GL=@Map.Selected.GetParameter GL
@Map.DeselectAll
@Map.SelectLayer ID20000
$AD=@Map.Selected.GetParameter AD
$NM=@Map.Selected.GetParameter NM
$TX=@Map.Selected.GetParameter TX
$AU=@Map.Selected.GetParameter AU
$PZ=@Map.Selected.GetParameter PZ
$TD=@Map.Selected.GetParameter TD
$New=@Calc Replace("$GL","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id10070 $New
$New=@Calc Replace("$AD","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20020 $New
$New=@Calc Replace("$NM","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20030 $New
$New=@Calc Replace("$TX","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20040 $New
$New=@Calc Replace("$AU","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20070 $New
$New=@Calc Replace("$TD","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20180 $New
$New=@Calc Replace("$PZ","XXX","30",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXIX","29",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXVIII","28",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXVII","27",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXVI","26",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXV","25",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXIV","24",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXIII","23",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXII","22",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XXI","21",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XX","20",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XIX","19",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XVIII","18",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XVII","17",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XVI","16",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XV","15",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XIV","14",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XIII","13",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XII","12",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","XI","11",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","IX","9",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","X","10",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","VIII","8",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","VII","7",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","VI","6",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","IV","4",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","V","5",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","III","3",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","II","2",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","I","1",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20160 $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Selected.ChangeParameter id20160 $New
@Map.DeselectAll
$MC=@Map.Count
$N1=0
@Map.DeselectAll
%Pochatok
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If $LID<>50000 then @Goto %Next
$P1=@Map.Object[$N1].Parameter[ID20030]
$New=@Calc Replace("$P1","I","І",1,0)
$New=@DequoteText $New
$New=@Calc Replace("$New","i","і",1,0)
$New=@DequoteText $New
@Map.Object[$N1].Parameter[id20030]=$New
@Map.DeselectObject $N1
%Next
@if $N1<$MC then @Goto %Pochatok

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 18 авг 2014 16:15 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Нахождение минимального расстояния между двумя объектами

$Obj1=@Map.NextSelected 0
@if $Obj1=0 @Break Выделите 2 объекта
$Obj2=@Map.NextSelected $Obj1
@if $Obj2=0 @Break Выделите 2 объекта
$MinD=@Map.MinObjectDistance $Obj1 $Obj2
@Dialog.Message Расстояние между объектами $MinDм


Функция @Map.MinObjectDistance реализована в версии Digitals начиная с 19.08.2014.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 19 авг 2014 08:05 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Нахождение средней высоты откоса

$Obj=@Map.NextSelected 0
@if $Obj=0 @Break Выделите откос
$Height=@Map.GetSlopeHeight $Obj
@Dialog.Message Высота откоса $Heightм


Функция @Map.GetSlopeHeight реализована в версии Digitals начиная с 19.08.2014.


Вложения:
Комментарий к файлу: пример откоса
Otkos.dmf [1000 байт]
Скачиваний: 899

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 21 авг 2014 11:04 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Нахождение высоты между 2-мя замаркированными точками объекта

Скрипт полезен при вычислении высоты откоса в произвольном месте. Замаркируйте точку на нижней и верхней кромке откоса и вызовите скрипт. Рассчитанная высота записывается в параметр с ID1 и выносится на карту в виде подписи.

$Obj=@Map.NextSelected 0
@if $Obj=0 @Break Выделите откос
$N=@Map.Object[$Obj].GetMarkedPointsCount
@if $N<>2 @Break Замаркируйте верхнюю и нижнюю точки откоса
$PntCount=@Map.Object[$Obj].Count
$ZArr=
$I=1
%Start
$Marked=@Map.Object[$Obj].GetPointMarked $I
@if $Marked=0 @Goto %NotMarked
$P=@Map.Object[$Obj].Point[$I]
$Z=@StringPart 3 $P
;это нужно если используется разделитель-запятая
;меняем запятую на точку
$Z=@Calc Replace("$Z",",",".")
$Z=@DequoteText $Z
;собираем высоты всех маркированных точек в одну строку
$ZArr=@Concat $ZArr, ,$Z
%NotMarked
$I=$I+1
@if $I<=$PntCount @Goto %Start
;высота первой и второй маркированных точек
$Z1=@StringPart 2 $ZArr
$Z2=@StringPart 3 $ZArr
;разница высот
$Height=@Calc Abs($Z1-$Z2)
;меняем точку на запятую
$Height=@Calc Replace("$Height",".",",")
$Height=@DequoteText $Height
;округляем до десятых
$Height=@RoundTo $Height 1
@Map.Object[$Obj].Parameter[ID1]=$Height
@Map.Object[$Obj].CreateCaption ID1 0 0 1 1 0 0
@Window.Refresh


Вложения:
Otkos.dmf [1.01 Кб]
Скачиваний: 632

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 22 авг 2014 11:05 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Построение отрезка, соединяющего 2 помеченных объекта по кратчайшему пути

$Obj1=@Map.NextSelected 0
@if $Obj1=0 @Break Выделите 2 объекта
$Obj2=@Map.NextSelected $Obj1
@if $Obj2=0 @Break Выделите 2 объекта
;получаем координаты кратчайшего отрезка в виде строки X1 Y1 Z1 X2 Y2 Z2
$Crds=@Map.ShortestSegmentBetweenObjects $Obj1 $Obj2
;добавляем объект в слой с ID1
$Obj=@Map.NewObject ID1
;координаты первой точки
$X=@StringPart 1 $Crds
$Y=@StringPart 2 $Crds
;объект создан уже с одной точкой в списке, меняем ее координаты
@Map.Object[$Obj].Point[1] $X $Y
;координаты второй точки
$X=@StringPart 4 $Crds
$Y=@StringPart 5 $Crds
;добавляем вторую точку объекта
@Map.Object[$Obj].AddPoint $X $Y
@Window.Refresh


Вложения:
Комментарий к файлу: пометьте 2 объекта в этой карте и вызовите скрипт
ShortestSegment.dmf [1.24 Кб]
Скачиваний: 895

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 27 авг 2014 10:47 
Специалист
Специалист

Зарегистрирован:
18 июл 2011 09:16
Сообщения: 43
Здравствуйте! Напишите пожалуйста скрипт: Извлечь файл в ин4 - сохранить в определенный каталог с именем которое вытягивается с параметра CM (додаткова інформація ID20100) что-то у меня не получается такого сделать. Заранее благодарен.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 28 авг 2014 11:30 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Vaho писал(а):
Здравствуйте! Напишите пожалуйста скрипт: Извлечь файл в ин4 - сохранить в определенный каталог с именем которое вытягивается с параметра CM (додаткова інформація ID20100) что-то у меня не получается такого сделать. Заранее благодарен.

$Path=d:\temp
$FE=@FolderExists $Path
@if $FE<>1 then @Break Путь "$Path" не существует
$SL=@Map.Selected.List
@Text[1].Text $SL
$SC=@Text[1].Count
@if $SC<1 then @Break Пометьте Іn4-участок(ки)
$SourceMap=@ActivateMap
@Map.DeselectAll
$I=0
%Loop
$I=$I+1
$SO=@Text[1].Line[$I]
$LID=@Map.Object[$SO].LayerID
@if $LID<>20000 then @Goto %Next
@Map.SelectObject $SO
$CadNumber=@Map.Object[$SO].CalculateFormula PARENT[DS](10000)PARENT[SD](10000)P[SC]
$FN=@Map.Object[$SO].Parameter[CM]
@if $FN= then $FN=$CadNumber
@if $FN= then @Goto %Next
Файл | Извлечь участок в In4
@Map.SaveToFile $Path\$FN.in4
@CloseMap
@ActivateMap $SourceMap
@Map.DeselectAll
%Next
@if $I<$SC then @Goto %Loop

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 04 сен 2014 08:47 
Специалист
Специалист

Зарегистрирован:
11 мар 2011 10:18
Сообщения: 40
Здравствуйте. Скрипт "Повна конвертація IN4 в XML" КЛАС !!! , но подскажите постоянно выбивает "На карті немає суміжників"


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 04 сен 2014 19:01 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
00zakachka00 писал(а):
Здравствуйте. Скрипт "Повна конвертація IN4 в XML" КЛАС !!! , но подскажите постоянно выбивает "На карті немає суміжників"


Взагалі цей сприпт, то був тільки початок). Я його вже вдосконалив десять раз. І він зараз конвертує фактично при будь-якій формі обмінного файлу ін4. В тому числі і при кількох співвласниках, кількох підставах набуття права власності, по оренді, з сервітутами і тому подібне. Але даний скрипт я просто так у вільний доступ не надам, бо я на його розробку витратив багато часу і зусиль.

Скиньте обмінний файл, який ви конвертуєте і я скажу, в чому проблема. Очевидно, щось із нумерацією шарів.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 07 сен 2014 12:17 
Гуру
Гуру

Зарегистрирован:
27 мар 2008 00:23
Сообщения: 188
fendak писал(а):
00zakachka00 писал(а):
Здравствуйте. Скрипт "Повна конвертація IN4 в XML" КЛАС !!! , но подскажите постоянно выбивает "На карті немає суміжників"


Взагалі цей сприпт, то був тільки початок). Я його вже вдосконалив десять раз. І він зараз конвертує фактично при будь-якій формі обмінного файлу ін4. В тому числі і при кількох співвласниках, кількох підставах набуття права власності, по оренді, з сервітутами і тому подібне. Але даний скрипт я просто так у вільний доступ не надам, бо я на його розробку витратив багато часу і зусиль.

яка ціна питання?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 11 сен 2014 11:52 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Guevara писал(а):
яка ціна питання?


лс

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 12 сен 2014 22:23 
Специалист
Специалист

Зарегистрирован:
15 мар 2009 18:45
Сообщения: 49
Откуда: Хмельницький
Неплохой такой скриптик по конвертации обменных файлов, чем то похож на мой. :)


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Библиотека полезных скриптов
СообщениеДобавлено: 23 сен 2014 11:21 
Специалист
Специалист

Зарегистрирован:
23 сен 2014 10:48
Сообщения: 10
Здравствуйте. Помогите пожалуйста нужен скрипт чтоб в XML в смежниках (юр. лицо) автоматом добавлялся ЕДРПОУ с номером (00000001). Заранее спасибо.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 211 ]  На страницу Пред.  1, 2, 3, 4, 5, 6, 7 ... 15  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB