Добрый день! Нашел Lisp в инете с построением сетки координат в Автокаде. Хотел бы откорректировать положение значений координат на сетке, но не знаю как. Значения координат на оси х привязаны к линии (сетке), хотелось бы не большой абзац сделать (опустить значения на какое-нибудь расстояние) для читабельности.
Изменить выравнивание (добавить "_justify")? Код: (COMMAND "_TEXT""_S""Standard" "_justify" "_tl" "_L" (LIST x (- sy h_txt)) h_txt "0" (STRCAT " " txt_x "") ) Большее смотри на https://dwg.ru/
Честно сказать lisp-а у меня нет (DraftSight). Так что я вычисляю все необходимые числа в таблицах (типа MS Excel, LibreOffice Calc, gnumeric, ...), после чего в них же генерю autocad-овские комманды для SCR-файла вида: Код: _POINT 480.0300,1183.8100,195.0000 _POINT 490.3600,1193.9800,195.0000 _POINT 504.9300,1179.8300,195.0000 ... _TEXT 480.0300,1183.8100,195.0000 0.3 90 т.1 _TEXT 490.3600,1193.9800,195.0000 0.3 90 т.2 _TEXT 504.9300,1179.8300,195.0000 0.3 90 т.3 ... и запускаю SCR-файл в CAD-е. Так что помочь не могу. "Не тот" форум ты выбрал. "Правильную" ссылку я дал в предыдущем сообщении. Пример генерации SCR-файла (см. вложение). Для работы с текстом (SCR) пользую Notepad++.
(COMMAND "_TEXT""_S""Standard" "_R" (LIST (- sx h_txt) y) h_txt "0" (STRCAT txt_y "") ) (COMMAND "_TEXT""_S""Standard" (LIST (+ maxx h_txt) y) h_txt "0" (STRCAT " " txt_y) ) поменяйте на (COMMAND "_TEXT""_S""Standard" "_R" (LIST (- sx h_txt) (- y 5)) h_txt "0" (STRCAT txt_y "") ) (COMMAND "_TEXT""_S""Standard" (LIST (+ maxx h_txt) (- y 5)) h_txt "0" (STRCAT " " txt_y) ) , где (- y 5) - смещение вниз на 5 мм.
Тоже вариант. А ежели TopLeft или TopRight сделать? Что будет подручнее и сноровистее? PS: Нигде не встречал "гайд по autocad-овским командам" в виде строк команд?
(LIST (- sx h_txt) y) : (- sx h_txt) - значение координаты х точки привязки подписи; y - значение координаты х точки привязки подписи. Так что, карты в руки и изощряйся как угодно.
Не. Я имел в виду поменять выравнивание текста с Left на TopLeft ("_J _TL") без изменения координат точки привязки.
(COMMAND "_TEXT""_S" "Standard" "_R" (LIST (- sx h_txt) y) h_txt "0" (STRCAT txt_y "") ) заменить "_R" на нужное значение: "_TR" - вверх вправо; "_TL" - вверх влево; "_BR" - вниз влево и т.д. и т.п.
Непосредственно в командной строке только через "_J" проходит (DraftSight). Но в lisp-е может и нет надобности. Всё-таки нужен гайд!
Поигрался с кодом и что-то не получается. Значения оси ординат могу сместить вверх и вниз, а значения по оси абсцисс не могу, только влево и правою
(- sx h_txt) : sx - координата X точки вставки, которая смещается на величину высоты шрифта h_txt. Вместо h_txt вставьте свое значение, можно - (минус) заменить на + (плюс). Короче,
А может стоит к тексту пробелы спереди или сзади пристроить? Как то оно поэлегантнее будет. PS: В одном случае один пробел уже присутствует кстати:
Не совсем. Без параметров полно. А вот с параметрами вида: Код: _LINE point1(Y,X,H) point2 _TEXT _S style _J {_L,_C,_R,...} point height angle text нема.