hudozhnik Posted November 1, 2022 Report Share Posted November 1, 2022 Добрый день. Столкнулся с интересным поведением десятичного разделителя в универсальных выносках. Какое-то время работал с УВ и в качестве десятичного разделителя у меня были точки, но в один прекрасный момент точки начали конвертироваться в запятые, в основном при копировании или при создании аналога. Изначально УВ выглядит вот так При копировании УВ, точка превращается в запятую Где найти настройку по десятичному разделителю в УВ? Вот тут поставил, разделять точкой, но эффекта ноль Quote Link to comment Share on other sites More sharing options...
Boroda888 Posted November 1, 2022 Report Share Posted November 1, 2022 Всй правильно. Работает. Повторить не смог - даже на русской раскладке на цифровой панели (где всегда зпт) Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 1, 2022 Report Share Posted November 1, 2022 30 минут назад, Boroda888 сказал: на цифровой панели (где всегда зпт) Там не всегда запятая, а всегда десятичный разделитель, принятый в системе. Если в настройках винды будет точка, то и там будет точка. 2 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 1, 2022 Report Share Posted November 1, 2022 33 минуты назад, EdwardSt сказал: Если в настройках винды будет точка, то и там будет точка. Спойлер добавлено через 5 минут Вангую, гдето в дебрях nanoxml это настраивается, по аналогии с масштабами ,пакетной обработкой и альбомами.. Ручками в блокноте 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 1, 2022 Report Share Posted November 1, 2022 А может и никак, учитывая, штатный костыль https://www.spds.ru/info/faq/qa_0051.html 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 1, 2022 Report Share Posted November 1, 2022 5 часов назад, hudozhnik сказал: При копировании УВ, точка превращается в запятую Возможно отцепляется связь?? Проверь По фото гадать, это к Ванге добавлено через 1 минуту Кстати, а почему выноска, а не маркер площади? Там разделитель настраивается Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 1, 2022 Report Share Posted November 1, 2022 4 часа назад, doctorraz сказал: Вот даже не знаю... (Показать контент) Это идет перехват уже после ввода числа. Последовательность примерно такая: 1. Сначала производится запрос вещественного числа. Винда нажатие точки на цифровой панели ест не как точку или запятую, а именно как разделитель разрядов. 2. Винда формирует вещественное число уже во внутреннем формате (float, double и т.п.) и передает его приложению 3. Приложение само решает, как отображать принятое значение: может, как принято в системе (например, в MS Office по умолчанию, в различных БД) всегда с точкой (функции printf в С, вещественные числа в LISP-программах); может перехватывать нажатие каждой клавиши, и точки в том числе, (в командной строке АС) и интерпретировать каждый символ по-своему. Т.е., говорить, что точка на цифровой клавиатуре - всегда запятая - некорректно. Это всегда разделитель разрядов, принятый в системе, если преобразование в вещественное число осуществляет винда, и что угодно, если вводом рулит приложение. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 1, 2022 Report Share Posted November 1, 2022 (edited) 6 минут назад, EdwardSt сказал: что угодно, если вводом рулит приложение. Именно Тс файл не дает, но вангую В первом скрине значение по взять с чертежа, оно всегда с точкой, это разделитель в кад независимо от настроек винды, а на втором скрине значение отцепившийся текст.. возможно винда его или нана конвертнули его в региональные настройки добавлено через 1 минуту 5 часов назад, EdwardSt сказал: Если в настройках винды будет точка, то и там будет точка. Определись уже))) Edited November 1, 2022 by doctorraz Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 1, 2022 Report Share Posted November 1, 2022 Нано может переопределять delimiter на точку или запятую в; Таблицах Маркер площади Отметке уровня на плане и чертеже Вроде все, все остальное если число то точка Если текст, что ввел пользователь.. Без файла гадать бесполезно, что там на картинках Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 1, 2022 Report Share Posted November 1, 2022 14 минут назад, doctorraz сказал: В первом скрине значение по взять с чертежа, оно всегда с точкой, это разделитель в кад независимо от настроек винды, Вот неверно! КАД берет с чертежа вещественное число, а не точку или запятую. А далее формирует изображение, как заложено в его потрохах: как в системе (то бишь в винде), с точкой (как принято в кадах и в сишных кодах) или со смайликом с сигаретой (если разыграется воображение у разработчика). Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 1, 2022 Report Share Posted November 1, 2022 1 час назад, EdwardSt сказал: КАД берет с чертежа вещественное число, а не точку или запятую Да ладно Quote Link to comment Share on other sites More sharing options...
Volkov Posted November 2, 2022 Report Share Posted November 2, 2022 17 часов назад, hudozhnik сказал: Вот тут поставил, разделять точкой, но эффекта ноль Настройка «Коррекция десятичного разделителя» влияет только на клавиатурный ввод, а точнее, на нажатие клавиши «.» на цифровом блоке при включенном NumLock. Настройка работает. Согласен с доктором - нужен пациент (файл). 3 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 2, 2022 Report Share Posted November 2, 2022 33 минуты назад, Volkov сказал: Согласен с доктором Я с ним всегда согласен Точка или запятая.dwg 3 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 2, 2022 Report Share Posted November 2, 2022 32 минуты назад, MCAD сказал: Я с ним всегда согласен Я тоже. Иначе - кирдык, затопчет 1 2 1 Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 2, 2022 Report Share Posted November 2, 2022 @MCAD ну а чо ты остановился fmtDigit(int(#/100000)/10;2) добавлено через 0 минут Только что, EdwardSt сказал: Иначе - кирдык только по пятницам 1 Quote Link to comment Share on other sites More sharing options...
MCAD Posted November 2, 2022 Report Share Posted November 2, 2022 3 минуты назад, doctorraz сказал: ну а чо ты остановился fmtDigit(int(#/100000)/10;2) fmtDigit(int(#/100000)/10;2) Да вроде как про "Системные" fmtDigit(#; 2) не спрашивали :-| ? 1 1 Quote Link to comment Share on other sites More sharing options...
hudozhnik Posted November 9, 2022 Author Report Share Posted November 9, 2022 Вот пример, в одной выноске запятая в другой точка, связь с площадью штриховки есть в обоих случаях. пример.dwg Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 9, 2022 Report Share Posted November 9, 2022 18 минут назад, hudozhnik сказал: связь с площадью штриховки есть в обоих случаях. если тронуть штриховку справа.. двинуть или изменить размер то меняет на запятую ну и в формуле явно прописано =iff(int(#/1000000)==round(#/1000000;1);str(int(Object1.Area/1000000))+",0";round(#/1000000;1))+"м"+fmtSuper(2) если целое значение, то дописывать ноль через ЗАПЯТУЮ, если дробное округлять до десятых, а разделитель , как получится выше уважаемый @MCAD дал достаточно информации, что бы сделать поведение формулы предсказуемым, всегда запятая или точка... PS а вот как так у тебя получилось.... 1 Quote Link to comment Share on other sites More sharing options...
hudozhnik Posted November 9, 2022 Author Report Share Posted November 9, 2022 41 минуту назад, doctorraz сказал: если тронуть штриховку справа.. двинуть или изменить размер то меняет на запятую В том то и прикол, что у меня если тронуть штриховку слева, то меняет на точку и везде показываются точки=) Это вот сейчас. А неделю назад, был обратный процесс, все точки менялись на запятые. Я так понимаю единственный выход закрепить либо точку, либо запятую это fmtDigit. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 9, 2022 Report Share Posted November 9, 2022 1 минуту назад, hudozhnik сказал: везде показываются точки 1 минуту назад, hudozhnik сказал: все точки менялись на запятые быть такого не может для целых значений ЖЕСТКО прописана ЗАПЯТАЯ дробные возможно так и так, вспоминай, что менял, что настраивал, обновлял, устанавливал добавлено через 1 минуту перед round пропиши fmtDigit и реши вопрос раз и навсегда))) 2 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 9, 2022 Report Share Posted November 9, 2022 44 минуты назад, doctorraz сказал: быть такого не может теоретически и исключительно со злым умыслом - может Для демонстрации накидал Спойлер (defun c:test (/ a d d1 el gr vtest) (setq a (car (entsel))) (setq d (entget a)) (setq d1 nil) (foreach el d (setq gr (car el) v (cdr el)) (if (= (type v) 'STR) (setq v (vl-string-translate ".," "!!" v)) ) (setq d1 (cons (cons gr v) d1)) ) (entmod (reverse d1)) ) В нем выделено, что на что принудительно поменять в строке. Если после запуска команды test выбрать надпись из выноски, то в ней точки и запятые заменятся на восклицательные знаки. Но после изменения штриховки за ручки или скомандовать "обновить" в редакторе выноски, то вернется десятичный разделитель, принятый в системе. Т.е., продемонстрировано, что можно изменить текст уже после работы модуля выноски на любой. Но, если, не разрушена связь, то при соответствующем обновлении формула этот текст исправит. Quote Link to comment Share on other sites More sharing options...
doctorraz Posted November 9, 2022 Report Share Posted November 9, 2022 25 минут назад, EdwardSt сказал: может 1 час назад, doctorraz сказал: для целых значений ЖЕСТКО прописана ЗАПЯТАЯ 2 часа назад, doctorraz сказал: =iff(int(#/1000000)==round(#/1000000;1);str(int(Object1.Area/1000000))+",0";round(#/1000000;1))+"м"+fmtSuper(2) Quote Link to comment Share on other sites More sharing options...
hudozhnik Posted November 9, 2022 Author Report Share Posted November 9, 2022 В общем, все дело в этой настройке Если выбрать "заменять символом из настроек системы", то везде в УВ будут запятые, если поставить "заменять точкой", то точки. Причем, настройка не сразу срабатывает, а только после перезагрузке наны. Quote Link to comment Share on other sites More sharing options...
Volkov Posted November 9, 2022 Report Share Posted November 9, 2022 4 минуты назад, hudozhnik сказал: Если выбрать "заменять символом из настроек системы", то везде в УВ будут запятые, если поставить "заменять точкой", то точки. это опять же от файла зависит, как в нем было проставлено с клавиатуры. 1 Quote Link to comment Share on other sites More sharing options...
EdwardSt Posted November 9, 2022 Report Share Posted November 9, 2022 26 минут назад, doctorraz сказал: 1 час назад, doctorraz сказал: для целых значений ЖЕСТКО прописана ЗАПЯТАЯ Ну и как тебе такое @doctorraz? Спойлер Спойлер Спойлер Спойлер Итого, исключительно со злым умыслом принудительно вставил в текст крокозябу в виде "!", а потом исправил все штатными средствами среды. Т.е., продемонстрирована возможность отображения в какой-то момент времени не просто точки вместо запятой, а вообще любой ереси. Которая исправляется при обновлении. 2 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.