Количество полей точно учёл? Для типа "08TP" (координаты) - 5 полей == 4+5*16 = 84символа+перевод строки. Для типа "09F1" (углы) - 6полей == 4+6*16 = 100символов + перевод строки. Плюс к этому шапку (поля "01..", "10..",....) копировать из существующей sdr-ки. Ошибёшься на один символ и запись прибор не прочитает. Пример генерации строк (в т.ч. SDR тип "08TP") из цифирь:
у меня не формируется такой тип. Вообще координаты только в строке данных о станции (чаще всего автоматом проставляется последняя определенная о-засечкой, ее и оставляю) 02TP - координаты, отметка станции и высота инструмента 07TP - начальное горизонтальное направление 09F1 - измерение КЛ (F2 - КП) 03NM - про высоту цели почему-то при открытии файла вот так, хотя в области предпросмотра в проводнике норм
А ACAD-овские строки нормально формирует? Или ошибка раньше? PS: Ошибка была в формировании текста из цифирь (TEXT). Я просто не в Excel делал таблицу:
Для углов заменить в генерации "08CO" на "09F1" и добавить одно поле с именем станции в начале, перед именем направления (потому 6 полей). Порядок следования величин после имени направления: наклонное расстояние, зенитное расстояние (в градусах, с десятичной дробной частью), горизонтальное направление (в градусах, с десятичной дробной частью). Все числовые величины с прижимом влево. Код в моём варианте пустой, но тоже можно что то вписать, вот только куда прижим (влево? вправо?) надо смотреть в сущ. sdr-ках. PS: И при превращении цифирь в текст для угловых величин в "ФИКСИРОВАННЫЙ" брать 7 знаков, а не 4. Удачи.
У тебя в строках "09F1" пять табуляций в конце строки. Откуда они вообще? Их быть не должно. Чтобы видеть подобные "напасти" пользуй notepad++для редактирования текста. В нём и длину строк контролировать удобно: 4+6*16 = 100 + 1(перевод строки). PS: Кажется понял. Ты выделяешь 6 столбцов для копирования строк, а надо всего 1 столбец выделять (первый из шести), в котором и находятся сгенерированные строки. При копировании добавляется табуляция, как разделитель ячеек. "Подшаманил" твою таблицу, чтобы не было "вопросов":
Оффтоп (Move your mouse to the spoiler area to reveal the content) notepad++ пользуюсь давно, по твоему, кстати, совету давно в какой-то ветке интересное дело, вот имеем два файла: ОК.сдр - это бывший настоящий файл сырых измерений в котором я заменил сами величины и имена точек. Кстати, удобная в нотепаде++ фишка выделять с зажатым Ctrl+Alt+Shift. Он нормально открывается в Кредо не ОК.сдр - это тот же файл, но я в нем удалил все кроме шапки и вставил строки из эксель. Не открывается, пишет как делал скрин выше, про единицы измерения. И на первый взгляд всё одинаково. Но не совсем это файл ОК это не ОК Кодировка разная, да? Я, если честно в этом не секу ничего. Но поменял в фиговом файле кодировку на ANSI и заработало!
Как то лажёво ты шапку скопипастил: Код: diff OK.SDR не\ ОК.SDR 1c1 < 00NMSDR33 V04-04.02 26-���-23 08:33 111111 --- > 00NMSDR33 V04-04.02 26-ея═-23 08:33 111111 Чтобы не пучеглазить на содержимое файлов и пытаться найти различие визуально, пользуй Meld для сравнения. Есть также плагин к notepad++.
Советую также заменить в формуле, генерирующей строки, "09F1" на ЕСЛИ(K2<180;"09F1";"09F2"). Где K2 - ячейка с зенитным расстоянием.
В формулу расчета дир угла добавил учет четверти румба. Вообще для достоверности надо еще сделать добавление во все измерения гор. направлений на каждой станции какую-то случайную величину, но одну для всех. А то получается что пришел, и как-то сразу так поставил прибор, что он оказался повернут четко на север твоей СК) И еще случайные косячки надо добавлять в засечку, а то неправдоподобно формула) (Наведите курсор, чтобы раскрыть содержимое) формула) (раскрыть) формула) (свернуть) =ЕСЛИ(И((F2-B2)>0;(G2-C2)>0);ABS(ГРАДУСЫ(ATAN((G2-C2)/(F2-B2))));ЕСЛИ(И((F2-B2)<0;(G2-C2)>0);(180-ABS(ГРАДУСЫ(ATAN((G2-C2)/(F2-B2)))));ЕСЛИ(И((F2-B2)<0;(G2-C2)<0);(180+ABS(ГРАДУСЫ(ATAN((G2-C2)/(F2-B2)))));ЕСЛИ(И((F2-B2)>0;(G2-C2)<0);(360-ABS(ГРАДУСЫ(ATAN((G2-C2)/(F2-B2)))))))))
Слишком как то "наворочено" вы сделали. Ни к чему. Да и хотелке что то там впаяить, типа "=(20*СЛЧИС()-10)/3600", такие "навороты" не способствуют. Так что "слегка" упростил вашу таблицу. Точнее не таблицу, а формулы.
да, формулы упростились, а таблица выросла. Я и хотел спрятать dx, dy и h внутрь формул, и г-проложение тоже, короче оставить видным только то что идет в запись сдр. Но это не важно, на само деле. Да, у вас лаконичней формулы Всё-таки хочу подумать как сделать эту беспалевку - случайное исходное направление в приборе после его установки на штатив и выполнение первого измерение по ГК с его учетом --- Сообщения объединены, , Оригинальное время сообщения: --- чего там думать! Добавил прибавку к румбу случайного числа 0...180 и всё-таки вшил промежуточные вычисления в окончательные Оффтоп (Move your mouse to the spoiler area to reveal the content) нейросеть как-то плавно вышла из чата
а зачем лисп? у меня рабочая табличка. Сейчас еще придумаю "кнопочку" внесения ошибки в засечку --- Сообщения объединены, , Оригинальное время сообщения: --- с вашей помощью --- Сообщения объединены, --- кнопочка конечна не получилась, но два поля куда можно вписать угловую и линейную ошибки сделал. вот у меня по 5" и 3 мм идет с разным знаком в оба пункта. Ниже СКО определения станции из Кредо
Только ты сделал систематические ошибки, а надо было случайные. Для углов систематическая вообще бессмыслена, получается добавка к A0. Рандомизировал это хозяйство:
круто! но я б в измерения пикетов не добавлял уже ошибки, только в засечку. Потому что задача обычно такая: кто-то (может быть даже ты!) сделал съемку (например, свай после погружения) в координатах, потом их срезали и ты не можешь доказать высотное их положение до срезки. А проверяющий снял часть, и нужно чтоб ваши съемки совпадали. Да, величины ошибок такие, что это (при разумных расстояниях) первые миллиметры. Но всё же. Еще бы добавить высоты вехи для каждого измерения, но это дополнительная строка в *.sdr. Плюс, можно ли сделать чтоб эксель реагировал на изменения значений в каком-то столбце формированием строки? 03NM - это код высоты вехи И вообще огонь будет сделать добавление строк при перемене станций 02TP - это строка координат и высоты станции 07TP - строка нулевого гор. направления. У меня всегда в нее записывается ГУ первого измерения, то есть примерно так 02TP..................ST1100.000.........200.000.........-1.711.........1.500 07TP..................ST1..............PK1180.00000......180.00000 03NM0.000 09F1..................ST1..............PK120.000..........94.48417........180.00000 с кол-вом пробелов мог косякнуть величины ошибок в пределах 10" и 5 мм в засечку дают адекватный результат при имитации работы пятисекундным прибором
Под засечкой имеется два первых направления с голубой заливкой? Не вопрос. Добавил столбец с флагом рандомизации (R).
что-то ругается при открытии... наверное что-то не работает из-за этого да? нету названий станций в итоговых строках