Мини-Чат

2024-05-14, 19:46:01
Max: УРА !

2024-05-08, 17:17:17
ИИррииннаа: 5 га въезды

2024-04-18, 16:29:33
Иштиль: КТП внутри обвалования куста скважин

2024-03-05, 17:57:41
андрей алексендрович: вопрос: площадь озеленения - это сумма всех элементов озеленения в пределах участка, включая площади под выступающими (консольными) элементами?

2024-02-23, 20:49:54
Darya@: Павел, напишите мне на почту Darya_grishina@inbox.ru

2024-02-22, 15:33:54
Павел Еремин: Подработка для генпланиста. 2 и 3 категория сложности. Интересут лист вертикалки и сетей. Откликнитесь спецы!

2024-02-22, 15:33:54
Павел Еремин: Подработка для генпланиста. 2 и 3 категория сложности. Интересут лист вертикалки и сетей. Откликнитесь спецы!

2024-02-16, 08:36:01
vargrah: Слава, мы все давно в телеге сидим. Тут редко вопросы задаются

2024-01-25, 16:19:52
Горошинка: Здесь я) Привет! Редко захожу, но иногда прям надо поискать что-то. И только здесь знаю, что найду

2024-01-22, 12:49:59
Max: Лампочки дед Мороз забрал. В марте и снег тоже закончится)


176 гостей, 1 пользователь
Пользователи
  • Всего пользователей: 10 225
  • Latest: knv1111
Stats
  • Всего сообщений: 50 886
  • Всего тем: 2 711
  • Online today: 176
  • Online ever: 756 (26 апреля 2024, 03:46:29)
Сейчас на форуме
  • Users: 1
  • Guests: 176
  • Total: 177
  • Max
Яндекс.Метрика

Считалка длин и площадей для AutoCAD и не только

Автор vargrah, 22 октября 2010, 17:02:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

vargrah

программка написана знакомым.
одно время задолбало считать длины поребриков по каждому типу покрытий да и площади, когда участков подсчёта выходило от нескольких сотен до тысяч


команда _list выдаёт всю нужную инфу в виде:


HATCH     Слой: "Штрих Газон"
                            Пространство: Пространство модели
Масштаб типа линий =      5000
                        Метка = 35835
                 Образец штриховки GRASS
                 Аннотативный: Нет
                 Масштаб штриховки       500
                 Угол наклона штриховки      0
                 Неассоциативная
                 Площадь      89258754
                 Исходная точка    X=        0  Y=        0  Z=        0


                  HATCH     Слой: "Штрих Газон"
                            Пространство: Пространство модели
Масштаб типа линий =      5000
                        Метка = 35830
                 Образец штриховки GRASS
                 Аннотативный: Нет
                 Масштаб штриховки       500
                 Угол наклона штриховки      0
                 Неассоциативная
                 Площадь      78527483
                 Исходная точка    X=        0  Y=        0  Z=        0

выборку вручную делать муторно и легко ошибиться.


в архиве находится несколько файлов.
нас интересуют 3 из них:
data.txt - в него копируем всю белеберду, выданную командой лист. сохраняем!!!!
dlina.bat - следующим этапом запускаем двойным кликом этот бат.
data_out.txt - тут сохраняются результаты в виде:


s=128953101

l=15497
p=89258

где
s - площадь объекта
l - длина
p - периметр


копируем. вставляем в эксель. Ctrl + H - заменить S= или P= или L= на пробел - данные готовы к обработке.
предварительно желательно отсортировать данные по имени.


особенность - данный вариант предназначен для русифицированного автокада. т.е. все параметры впри команде "лист" выдавались по русски: "дляна, площадь, периметр"
для пользования англоязычных версий открываем dlina.bat из блокнота
получаем:


@rem = '--*-Perl-*--
@echo off
if "%OS%" == "Windows_NT" goto WinNT
perl -x -S "%0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
:WinNT
perl -x -S %0 %*
if NOT "%COMSPEC%" == "%SystemRoot%\system32\cmd.exe" goto endofperl
if %errorlevel% == 9009 echo You do not have Perl in your PATH.
if errorlevel 1 goto script_failed_so_exit_with_non_zero_val 2>nul
goto endofperl
@rem ';
#!/perl
#line 15


open(DATI, '<data.txt') || die "Файл не найден!";
open(DATO, '>data_out.txt') || die "Файл не найден!";


@FF = <DATI>;


foreach (@FF)
    {
     $a = $_;
     if (/Длина/gi || /длина/gi)
       {
        $a =~ /(\d+)/;
        print DATO "l=".$1."\n";
       }
     if (/площадь/gi || /Площадь/gi)
       {
        $a =~ /(\d+)/;
        print DATO "s=".$1."\n";
       }
     if (/периметр/gi)
       {
        $a =~ /(\d+)/;
        print DATO "p=".$1."\n";
       }
     }


close (DATO);
close (DATI);




__END__
:endofperl

где и заменяем русские названия на английские или дописываем свои параметры, которые хотим выбрать.


ps
числовые параметры программкой выбираются до запятой или точки. т.е. округление в меньшую сторону!
поэтому желательно отмасштабировать группу объектов перед "выборкой данных"
в экселе потом всё приводится в нужный вид делением результата (суммы по столбцу) на 1000 (длины) или 1000000 (площади) в случае черчения в миллиметрах или в соответствии с проведенным масштабированием.


pps
- изменение названий фалов недопустимо.
- расположение - в одной общей папке
- место расположения папки и её название не имеет значения

Post Merge: 22 октября 2010, 17:05:54

фактически данная штука может служить для выборки необходимой информации в любом тектовом файле
Как говорила моя наставница: "Если у инженера появилось свободное время - это повод перечитать нормативы!"