Головна » Файли » Готові скрипти

Пошук неортогональних об'єктів
01.03.2023, 12:57

Скрипт шукає всі об'єкти, в яких хоча б один з кутів не дорівнює 90 градусів. При цьому існує допуск +-1 градус.

$Drib=2
@Map.DeselectAll
$MC=@Map.Count
$N=0
$I=0
@Progress.Start $MC Пошук неортогональних об'єктів
%Start
$N=$N+1
$LID=@Map.Object[$N].LayerID
;@If ($LID<>44210000) then @Goto %Next
$P=0
$PC=@Map.Object[$N].Count
$PC=$PC-1
%StartPoint
$P=$P+1
$P2=$P+1
@if $P2>$PC then $P2=1
$Angle1=@Map.Object[$N].LineAngle[$P]
$Angle1=@ReplaceChar ,.$Angle1
$Angle2=@Map.Object[$N].LineAngle[$P2]
$Angle2=@ReplaceChar ,.$Angle2
$Angle=$Angle1-$Angle2
$Angle=@RoundTo $Angle $Drib
@if $Angle<0 then $Angle=$Angle*-1
@if ($Angle>0) and ($Angle<1) then @Goto %Next
@if ($Angle>89) and ($Angle<91) then @Goto %Next
@if ($Angle>189) and ($Angle<191) then @Goto %Next
@if ($Angle>269) and ($Angle<271) then @Goto %Next
@if $Angle>359  then @Goto %Next
@Map.SelectObject $N
$I=$I+1
@if $N<$MC then @Goto %Start
%Next
@if $P<$PC then @Goto %StartPoint
@Progress.StepBy 1
$Canceled=@Progress.Canceled
@if $Canceled=1 then @Goto %Finish
@if $N<$MC then @Goto %Start
%Finish
@Progress.Stop
@Break Оброблено $N об'єктів|Виділено $I неортогональних об'єктів

Категорія: Готові скрипти | Додав: Микола
Переглядів: 336 | Завантажень: 0 | Рейтинг: 0.0/0
Всього коментарів: 0
avatar