Jump to content

Функции AutoCAD, которых не хватает


Recommended Posts

Это как? Вот это?

ZOOMFACTOR управляет степенью увеличения при прокручивании колесика мыши.
Принимает целые значения от 3 до 100. 
Чем больше значение, тем выше степень увеличения.

Тип: Целое число (Integer, Int32)

Место хранения: Реестр

Значение по умолчанию: 60

Link to comment
Share on other sites

14 минут назад, Boroda888 сказал:

Это как? Вот это?

ZOOMFACTOR управляет степенью увеличения при прокручивании колесика мыши.
Принимает целые значения от 3 до 100. 
Чем больше значение, тем выше степень увеличения.

Тип: Целое число (Integer, Int32)

Место хранения: Реестр

Значение по умолчанию: 60

Имелось в виду инвертирование зумирования колесом мыши. В AutoCAD за это отечает переменная ZOOMWHEEL или включение обратного зумирования в настройках программы.

Link to comment
Share on other sites

5 минут назад, Boroda888 сказал:

Зачем? Просто из любопытсва... Лево-право ещё могу понять, а вперед-назад ))

Если пользователь ранее работал в ПО, где при вращении колеса к себе идет увеличение изображения, а от себя уменьшение, то текущая система зумирования вызывает взрыв мозга)))

Link to comment
Share on other sites

  • 1 year later...

Добрый день. Часто приходится проектировать прохождение линии связи. На трассе нужно проставлять ПК (пикетаж), УП. Подскажите пожалуйста есть ли какой -нибудь Лисп?

Link to comment
Share on other sites

  • 2 weeks later...
В 24.09.2020 в 08:29, Alex_pl сказал:

За рывки отвечает данный параметр, при установке значения в 0 рывки исчезают. В Автокаде этот параметр отвечает за отступ при простановке базовых размеров.

Рывки есть во всех версиях вплоть до 20.1

image.png.707c4f965da83935a9d5cb3377da00df.png

Здравствуйте. Мне изменение данного параметра не помогло избавиться от рывков. Т.е. я захожу "Размеры"-"Размерные стили"-"Редактирование"-меняю данный параметр на 0, но параллельный размер всё так же скачет... Спасибо!

Link to comment
Share on other sites

Может, срабатывает шаговая привязка? В ACAD - F9 (системная переменная, кажется, snapmode)

Link to comment
Share on other sites

В 05.05.2023 в 14:46, EdwardSt сказал:

Еще небольшая прога

c_piket.lsp 6 \u043a\u0411 · 5 загрузок

Я малоопытен в использовании LISP'ов, но после загрузки вышепредставленного LISP'а при попытке проставить пикеты на полилинии выдает ошибку (NC 5.1)

piket.jpg

добавлено через 9 минут

kpblc, нет, к сожалению дело не в этом... 

Link to comment
Share on other sites

10 минут назад, Иван_ сказал:

проставить пикеты на полилинии выдает ошибку (NC 5.1)

К сожалению, проверить на 5.1 не могу.

 

Попробуйте предпринять следующее:

Вариант 1

Попробуйте закомментировать

Спойлер

image.png.9a934e29eeea5824b6d17ff5e1afc570.png

 

Возможно, в 5.1. почему-то не устанавливается значение переменной.

Эта строчка отвечает за назначение свойства перемещения атрибуту относительно точки вставки блока.

 

Вариант 2

Если в чертеже определения блока "piket" нет, то он предварительно создается (а вот на этом этапе что-то идет не так)

Если в чертеже такой блок есть, то новое описание блока не создается.

Важно только, чтоб в этом блоке был атрибут "PICKET", в который собственно и заносится вычисляемое значение.

Можно блок сделать (или отредактировать) с любым визуальным оформлением.

Будет расставляться то, что нафантазировали.

 

Link to comment
Share on other sites

35 минут назад, Иван_ сказал:

при попытке проставить пикеты

Найди в коде все упоминания AFLAGS и попробуй в начале строки поставить ";"

Link to comment
Share on other sites

Вы хоть опишите словами, чего эта программа должна делать. Учитывая, что объяснять надо человеку, который геодезию последний раз видел с задней парты лет этак 25 назад :) 

  • Like 2
Link to comment
Share on other sites

Суть - расстановка пикетов (можно просто точек) на полилинии через определенный мною промежуток расстояния.

добавлено через 4 минут

 

 

Edited by Иван_
Нашел решение самостоятельно
Link to comment
Share on other sites

4 часа назад, Иван_ сказал:

К сожалению мfнипуляции с AFLAGS приводит к данной ошибке

В чем суть манипуляций - из скрина непонятно.

Нужно просто закомментировать строку в тексте программы, где эта переменная упоминается.

 

Или перед запуском создайте блок с неожиданным названием "piket". А в нем атрибут с еще более неожиданным тэгом "piket".

Тогда после запуска программа не будет создавать такой блок (именно в процессе создания и выскакивает эта ошибка), а будет использовать и позиционировать ваш блок.

 

3 часа назад, kpblc сказал:

Вы хоть опишите словами, чего эта программа должна делать.

Этой программе количество лет и не сосчитать.

Ее суть - простановка блоков на оси в заданных точках и заполнение атрибута в этом блоке значением пикета.

Задание точек довольно ветвистое:

1. Указание мышкой (вычисляется проекция точки на ось)

2. Указание расстояния от начала полилинии

3. Указание пикета. То же расстояние, как и в п.2, но с учетом возможного смещения пикета 0

4. Расстановка пикетов на участке (через сотни)

Большая часть программы - это организация диалога с пользователем и подготовка вспомогательных элементов (установка-возврат переменных, создание блока)

Собственно алгоритм определения точки и угла поворота по касательной - это пара строк.

 

Проблема с переменной AFLAGS непонятна, т.к. версии 5.1 у меня нет.

В АС и всех версиях NC у меня программа работала, поэтому и не переписывал ее с целью повышения читабельности.

Link to comment
Share on other sites

Ну тогда я не буду уж свои потуги выкладывать - смысла как бы нет. Особенно учитывая, что меня хватило только на указание шага :(

 

Link to comment
Share on other sites

52 минуты назад, kpblc сказал:

Ну тогда я не буду уж свои потуги выкладывать - смысла как бы нет. Особенно учитывая, что меня хватило только на указание шага

тут проблема не в алгоритме, а в совместимости.

Видимо, в 5.1 манипуляции с системными переменными несколько отличаются от текущих версий наны и АС.

Обойти проблему можно одним из вариантов выше, а исправлять - хлопотно и незачем.

Link to comment
Share on other sites

Ну я просто достаточно давно уже пользуюсь отдельными функциями для установки и восстановления системных переменных. Типа таких:

(defun sysvar-save (sysvar-list) 
  ;|
    *    Сохраняет (с возможной установкой) значения системных переменных
    *    Параметры вызова:
      sysvar-list ; список вида '((<Системная переменная> [. <Устанавливаемое значение>]))
    *    Примеры вызова:
    (sysvar-save '(("osmode" . 0) ("cmdecho")))
    |;
  (vl-remove nil 
             (mapcar 
               (function 
                 (lambda (item / temp) 
                   (if (setq temp (getvar (car item))) 
                     (progn 
                       (if (cdr item) 
                         (setvar (car item) (cdr item))
                       )
                       (cons (car item) temp)
                     )
                   )
                 )
               )
               sysvar-list
             )
  )
)

(defun sysvar-restore (sysvar-list)
  ;|
    *    Восстановление системных переменных из списка
    *    Параметры вызова:
      sysvar-list ; список вида '((<Системная переменная> . <Восстанавливаемое значение>))
    *    Примеры вызова:
    (sysvar-restore '(("osmode" . 503) ("cmdecho" . 1)))
    |;
  (foreach item sysvar-list 
    (if (getvar (car item)) 
      (setvar (car item) (cdr item))
    )
  )
)

Такой подход позволит не опечататься при вводе системной переменной ;)

Link to comment
Share on other sites

1 час назад, kpblc сказал:

Такой подход позволит не опечататься при вводе системной переменной ;)

У меня там все не столь фундаментально, но принцип примерно тот же: список изменяемых переменных оформлен в виде переменной.

Но в озвученной проблеме, похоже, проблема не в опечатке, а в поддержке определенной переменной.

 

Предполагаю, что  (sysvar-save '(("AFLAGS" . 0) )  или   (sysvar-restore '(("AFLAGS" . 0) )  в NC5.1 тоже будет с ошибкой

Link to comment
Share on other sites

Ай, неправильно понимаешь :)

(setq lst (sysvar-save '(("osmode" . 0)("aflags" . 16))))

; ...

(sysvar-restore lst)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...