mmax
размещено: 31 Августа 2006
обновлено: 24 Декабря 2006
Визуально рисует деталь типа «фланец», равномерно располагает окружности по окружности или дуге
головная функция (flanec-draw строка строка)
Аргументы как для функции vl-registry-write, а точнее для нее и есть
1 аргумент раздел реестра
2 аргумент параметр
В реестре хранится максимальное значение количества окружностей
Если указанные пользователем ветви реестра отсутствуют, то будут созданы со значением 50, если присутствуют то используются имеющиеся. Далее значение может быть отредактировано и сохранено из программы. По завершении работы программы значения реестра не удаляются и используются при повторном вызове. Рекомендуется "HKEY_CURRENT_USER\"
При отрисовке по сектору:
Ввести значение угла с клавиатуры или получить указанием точек
Угол высчитывается от первой до второй стороны по направлению указанном в переменной ANGDIR. Первая окружность будет лежать на одной линии с первой стороной угла, согласно радиуса расположения, последняя соответственно на второй стороне угла.
Работа в АВТОКАД ниже 2006 не гарантируется, в связи с использованием динамического ввода, а точнее его отключения. Если раньше достаточно было сделать CMDECHO=0, то сейчас надо еще и DYNPROMPT=0. И в предыдущих версиях функция SETVAR обязательно выдаст ошибку.
31.08.2006 программа переработана. Исправлены некоторые неудобства с вводом угла сектора.
Это простая программа для рисования произвольного набора окружностей по окружности с произвольными размерами + осевые направленные к центру фланца. Никаких стандартов не предусмотрено. Очень хорошо подходит для векторизации(обрисовки), для этого впринципе и делалась.
Для тех у кого плохо с загрузкой и запуском:
Создаете текстовый файл с расширением .lsp и пишете в нем такой текст
(defun c:flanec ()
(flanec-circle-draw-visual-samocad "HKEY_CURRENT_USER\\SOFTWARE\\MaksCAD Soft\\SamoCAD\\AppDraw\\FlanecSamoCAD" "kolvovalue")
(princ)
)
Помещаете этот файл и файл скачанный отсюда в директорию установки Автокада. И в командной строке пишете:
(load "*ваш созданный файл.lsp")
(load "скачанный отсюда файл.vlx")
теперь у вас есть команда FLANEC
0.01 МБ
СКАЧАТЬ
Комментарии
Авторизоваться
Unknown command "FLANEC", если конечно команда для запуска "flanec".
Ввиду того, что для хранения данных о количестве отверстий я решил использовать реестр, так как пользователю предлагается выбрать количество из падающего списка в диалоговом окне и редактировать самому количество элементов в списке, то будет негуманно прописывать ветку реестра внутри программы такую какую я захочу и я решил предоставить пользователю самому выбрать нужный раздел, что делает программу более гибкой при загрузке у сторонних пользователей.
Как и ветку реестра так и команду пользователь должен определить сам вот один из примеров:
(defun c:flanec ()
(flanec-draw "HKEY_CURRENT_USER\SOFTWARE\MaxCAD Soft\SamoCAD\AppVisualDraw\Flanec" "kolichestvo_otverstiy")
(princ)
)
Всм удачного использования
команда НЕ flanec, а
(flanec-draw "HKEY_CURRENT_USER\SOFTWARE\MaxCAD Soft\SamoCAD\AppVisualDraw\Flanec" "kolichestvo_otverstiy")
Скопируйте эту команду в командную строку и нажмите ввод.
Да пребудет вам счастя.
И не забудьте сообщить сюда о других ошибках и ситуациях их вызвавших.
вместо "HKEY_CURRENT_USER\SOFTWARE\MaxCAD Soft\SamoCAD\AppVisualDraw\Flanec" "kolichestvo_otverstiy"
Вы можете написать чего вам пожелается, единственное что здесь нельзя менять это "HKEY_CURRENT_USER\
косых палочек должно быть только по две вместе "\"
В "kolichestvo_otverstiy", если вы хотите здесь чегонибудь записать, косых палочек НЕ должно быть.
Так же в обеих строках не приветствуются символы типа точек, запятых, скобок итп.
И не забудьте закачать файл заново так как он сегодня обновился.
«Может следует добавить отрисовку диаметров фланца: наружний, внутренний и диаметр расположения отверстий»
Нарисовать окружности можно без проблем и самому, но вот не понял вопроса по диаметру размещения отверстий, я вроде предлагаю разместить отверстия по радиусу, так как по диаметру невозможна визуализация так как от центра проводят только радиусы.
Действительно, в практике все параметры измеряются в диаметрах и использование их в программе былобы удобней, но я понятия не имею как можно сделать так чтобы при запросе диаметра и базовой точке в центре окружности, временная окружность прорисовывалась пересекая курсор.
Вы же, например, не жалуетесь на то, что обычный циркуль тоже запрашивает только радиусы и если вы попробуете передать ему диаметр, то он выдаст ошибку. :-)
_ARRAY это слишком универсально, как в магазине в котором все есть, но для того чтобы купить масла я должен выстоять очередь за молоком.
Я же решил сделать упрощенный вариант.
И основной упор сделан на визуализацию, попробуйте нарисовать _POLYGON с любым углом поворота и тогда по привязкам вы сможете без всяких усилий получить нужный результат хоть по окружности хоть по сектору, согласитесь, что по привязкам работать более удобней и быстрее.
Вся беда привычках и справочной системе, которой нету. Попробуйте всетаки разобраться более детально и вы поймете, что массив всетаки отдыхает.
И обратите внимание на сектор(я его ошибочно назвал сегментом). У меня получить и разместить сектор намного ПРОЩЩЕ и ВИЗУАЛЬНЕЙ чем у массива.
Об использовании угла сектора читайте в описании файла.
И незабывайте периодически заглядывать сюда за обновленной версией.
В данный момент пробую переделать операцию получения угла для сектора и при запросе радиуса размещения заменить крестики на окружность так как до операции угла поворота они жестко стоят на своих местах, что немного портит картину. А также попробую добавить вывод сообщений в динамическую строку, в данный момент динамическая строка отключается.
У меня при запуске, на доли секунды вылетает панелька, и все.