проблемы с однострочным текстом после разбивки мтекста

после разбивки мтекста с внутренним форматированием в nanocad это форматирование стало частью однострочного текста. например:
pxsm1,ql;красный
w0.7000;розетка дип-34а-04
w0.9715;гип
c256;рабочая документация и т.д.

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

Тэги темы:

Лучший ответ

  • EdwardSt
    Ответ ✓

    Какой инструмент был задействован для такой разбивки?

    Выглядит так, что из мтекста были удалены фрагменты "\\" , а вся остальная служебка осталась. Если это получилось в результате штатных средств нанокада, то выглядит однозначным багом.

Ответы

  • Wagner, если у Вас оптимально настроен нанокад и не отключено ведение истории, то легко найдется резервный файл с неизмененным многострочным текстом (в папке, прописанной в нанокаде для истории).

  • (defun mip_MTEXT_Unformat ( Mtext / text Str )
    (setq Text "")
    (while (/= Mtext "")
    (cond
    ((wcmatch (strcase (setq Str (substr Mtext 1 2))) "\\[\\{}]")
    (setq Mtext (substr Mtext 3) Text (strcat Text Str)))
    ((wcmatch (substr Mtext 1 1) "[{}]")(setq Mtext (substr Mtext 2)))
    ((wcmatch (strcase Mtext) "\\PI-#*,\\PT*")
    (setq Mtext (substr Mtext (+ 2 (vl-string-search ";" Mtext)))))
    ((wcmatch (strcase Mtext) "\\PX")
    (setq mtext (substr mtext (+ 2 (vl-string-search ";" mtext))))
    )
    ((wcmatch (strcase Mtext) "\\P")
    (if (= " " (substr Text (- (strlen Text) 1)))
    (setq Mtext (substr Mtext 3))
    (setq Mtext (substr Mtext 3) Text (strcat Text " "))))
    ((wcmatch (strcase Mtext) "\\S")
    (setq Str (substr Mtext 3 (- (vl-string-search ";" Mtext) 2))
    Text (strcat Text Str)
    Mtext (substr Mtext (+ 4 (strlen Str)))))
    )
    )
    Text)

  • Вы попытались применить модифицированную (возможно, самостоятельно) утилиту, взятую из достаточно распространенного комплекта bgtools. Полностью разбираться в нюансах этой модификации нет времени и желания. Но сразу можно отметить, что в исходном варианте в операторе (cond присутствовала секция ('T …), которая отсутствует в вашем варианте. А она очень важна, т.к. охватывает случаи, когда ни одно из условий выше не выполнено.

    Советую применить исходную утилиту. На старом форуме Лидия Антипина выкладывала адаптированный для нанокада вариант. Возможно, кто-то из форумчан сможет предоставить актуальный вариант. Я со своей стороны приложу одну из версий, предположительно адаптированной для NC21.

  • Есть такой вариант, чуть новей, прикладываю:

  • это ИИ написал код на LISP для удаления форматирования в мтексте
    видимо, он написал его для Автокада, хоть я и просил этого не делать, однако, для Нанокада меньше информации в интернете, наверное

    в bgtools разве есть команды для текстов? мне казалось там только блоки …

  • doctorRAZ
    отредактировано October 2024

    Там не только блоки, но работы с текстом, да, там нет.

    Для текстов есть другие лиспы, там жэж в drztools

  • прикольно так порезвился ии. Хотя , наверное, нашел чью-то кастрированную поделку, в которой был удален исключительно важный фрагмент. Мда…

    в bgtools есть функция очистки форматирования. Собственно, по ее названию и нашел, в каком из файлов встречал.

    Но drztools всяко круче! Очень рекомендую))). Кстати, совет автору ветки - прекратить бесполезную (на этом форуме) рекламу какого-то щиткада, а продвигать предлагаемый набор утилит

  • Wagner
    отредактировано November 2024

    drztools надо опробовать, слышал, и даже пытался разок, когда нужно было листы по рамкам создать, но что-то не получилось и забил, а сейчас вернулся к Реверсу, который КДМ Софт, благо его разработчик его починил для Нанокада наконец-то

    с shit'кадом консервативный подход, фу… если где-то что-то лучше работает - это здоровая конкуренция и пример, без которых не будет никакого собственного развития🙂
    п.с. это с точки зрения отношения НаноСофт к чему-то там ещё, а мы как юзеры НаноСофта и чего-то там ещё, должны руководствоваться здравым смыслом, а не пытаться на лыжах ехать по асфальту

    говорю как человек познавший AutoCad Electrical, который по своей функциональности полной давно уже NanoCAD BIM на максималках. И это как раз имеет значение к тому, что пишу, потому что я все равно пользуюсь Nanocad BIM и страдаю. Почему? Потому что санки и асфальт :)