Перейти к публикации

Координаты точек по обводу кривой


Рекомендованные сообщения

Уважаемые форумчане!

Я столкнулся с необходимостью автоматизировать процесс получения координат точек по обводу кривой.

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

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

1. Прошу вашего советов о том, как можно решить эту задачу.

В распоряжении имеется SolidWorks, Autocad и Компас.

Я понимаю, что стандартными средствами эта задача не решается, а нужно написать макрос или что-то в этом роде.

2. Прошу вас также, если это не составит труда, привести этот макрос при описании способа решения описанной мной проблемы.

Заранее благодарен всем за помощь.

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...


Я столкнулся с необходимостью автоматизировать процесс получения координат точек по обводу кривой.

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

Подобного рода задачи обычно решаются в AutoCAD.

Возможны два пути — написать (или заказать) узконаправленную одноцелевую LISP-программу, которая будет все это делать «в один клик», или использовать имеющиеся средства AutoCAD и готовые (более универсальные) LISP-программы для извлечения различных данных из файла чертежа. Я, к сожалению, LISP не владею и с написанием программы не справился. Поэтому предлагаю второй вариант.

Второй вариант состоит из двух этапов:

1) Нанесение точек на кривую.

2) Извлечение и сохранение координат этих точек.

Первый этап. Нанести точки на кривую можно используя две команды AutoCAD в зависимости от того, КАК вы хотите нанести точки.

Команда _.divide (поделить) делит объект на заданное количество сегментов одинаковой длинны.

Команда _.measure (разметить) делит объект на сегменты заданной длинны (при этом последний сегмент обычно оказывается короче всех остальных).

На самом деле объекты не «разбиваются», а на них помещаются точки. (Внешний вид точек можно выбрать, задав стиль всех точек чертежа в меню Format >> Point Style...).

Для некоторой автоматизации процесса я написал простенькую LISP-программульку, которая создает новый слой Points (точки), задает ему цвет 10 (близкий к красному), делает этот слой активным, вызывает диалог Point Style для выбора внешнего вида точек и размещает точки на выбранной кривой в соответствии с заданной командой. <noindex>http://rapidshare.com/files/414458477/DWP_MWP.lsp</noindex>

Если вы никогда не работали с LISP-программами — коротенький инструктаж по их использованию:

Создайте папку, например C:\My_LISPs (или в любом другом месте — главное, избегать кириллицы в пути). Пропишите эту папку в Support File Search Path (Options >> вкладка Files >> Support File Search Path >> Add >> Browse – указать на эту папку).

<noindex>Изображение</noindex>

В нее и будете помещать ваши файлы дополнений и приложений.

Сейчас поместите туда файл DWP_MWP.lsp.

Откройте имеющийся чертеж или в новом чертеже нарисуйте кривую.

Меню Tools >> Load Application... или Tools >> AutoLISP >> Load Application...

<noindex>Изображение</noindex>

вызываете окно загрузки, выбираете нужную программу, загружаете ее (LOAD) и закрываете окно (CLOSE).

<noindex>Изображение</noindex>

В зависимости от того, каким способом вы хотите ставить точки, вводите команду

dwp - (DIVIDE with points) или mwp - (MEASURE with points)

Выбираете стиль точек, выбираете объект и указываете количество сегментов

<noindex>Изображение</noindex>

У нас появились точки на выбранной кривой и новый слой Points:

<noindex>Изображение</noindex>

Второй этап. Теперь нужно получить координаты точек.

Идем по ссылке <noindex>http://www.jefferypsanders.com/autolisp_cad2file.html</noindex> и скачиваем LISP-программу Cad2File.

Распаковываем архив (два файла) в уже созданную и прописанную (обязательно!!) папку, загружаем программу (Tools >> Load Application... или Tools >> AutoLISP >> Load Application... ) и запускаем командой c2f .

Выбираем тип объекта POINT (точка), какие данные об объекте нужны, тип файла экспорта и сохраняем файл.

<noindex>Изображение</noindex>

Файлы .csv (Comma Separated Values — значения, разделённые запятыми) можно открыть как в «блокноте», так и в «электронных таблицах» - Excel, OO.o-Calc и др.

<noindex>Изображение</noindex>

Теперь точки можно удалить и повторить операцию с другими кривыми.

Если желаете сохранить точки в чертеже — во избежание путаницы лучше всего каждый раз переносить точки в слои, соответствующие каждой кривой.

<noindex>Изображение</noindex>

Изменено пользователем 369
Ссылка на сообщение
Поделиться на других сайтах

Подобного рода задачи обычно решаются в AutoCAD.

подобного рода задачи решаются где угодно.

Думаю что любая CAD-программа может расставить точки на линии с нужным шагом.

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

Но можно, конечно, и макрос написать, если подобная процедура применяется часто.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • maximus111
      Благодарю за быстрый ответ и ссылку на конкретный ГОСТ. Пойду проводить самоликбез
    • felena
      Так 2.305 есть в новой редакции от 2008 года ... Хотя суть не сильно меняется от этого. Получается конструктор вправе сам решать, как ему показать. Осталось только НК это доказать)
    • ANT0N1DZE
      в ГОСТе всего 6 пунктов....   "При применении выносного элемента соответствующее место отмечают на виде, разрезе или сечении замкнутой сплошной тонкой линией — окружностью, овалом и т. п. с обозначением выносного элемента прописной буквой или сочетанием прописной буквы с арабской цифрой на полке линии-выноски. Над изображением выносного элемента указывают обозначение и масштаб, в котором он выполнен (черт. 39)" А сам вид может быть обрамлен любой сплошной тонкой линией - это справедливо не только для выносного вида, если показывается только часть 
    • felena
      в п.5 про выносные элементы нет ничего, скорее п.8   Опираясь на рис.42, можно утверждать, что на родительском виде должен быть контур круг, а на самом выносном элементе тот контур, что мне надо? Или все же должно быть одинаково, в принципе для всех чертежей.  
    • gudstartup
      вам виднее но откуда тогда 351 ошибка по обоим осям?
    • BSV1
      Неможно.   Изучить ГОСТ 2.113. Особенно Приложение 3.
    • maximus111
      Коллеги, доброго дня. Такая ситуация. Было разработано изделие в 2 исполнениях, у которого был номер *****.001. Исполнения соответственно *****.001-00 и *****.001-01. Но потом были разработаны еще 2 исполнения: *****.001-02 и *****.001-03. Но эти 2 последних очень сильно отличались от 2 предыдущих, поэтому на эти 2 исполнения был оформлен отдельный документ, где в спецификации фигурирует только  -02 и -03. Но теперь получается, что есть 2 документа с одинаковым именем и номером: в в одном документе исполнения -00 и -01, а в другом -02 и 03. Вопрос. Можно ли вообще так или неможно (подозреваю, что неможно), и как выходить из этой ситуации?
    • green346
      Добрый день, ситуация: На изделие разработано КД по варианту Б (Как пример: Упаковочный чертеж АБВГ.466229.001УЧ и Упаковка АБВГ.466926.001) Заказчик просит разработать КД на то, как эта упаковка штабелируется и крепится на паллете. 1 Как это сделать правильно в рамках ЕСКД? Если укажу на упаковочном чертеже паллета упаковываемое изделие АБВГ.466926.001, то не получится, как будто это просто пустая коробка без устройств? 2 Вопрос, не связанный с предыдущим текстом, не нужно ли в графе "Документация" в упаковке указывать упаковочный чертеж? По гост 2.418 сказано только, что его нужно заносить в спецификацию упаковываемого изделия, а про упаковку ни слова.
    • Viktor2004
      Смотрите все что посажено на цепи питания чпу. Включите чпу и замерьте питание на нем. У меня однажды было 20 вольт. На него был посажен неисправный грибок который его просаживал
    • mannul
      Извиняюсь за оффтоп, но интересно, как резьба нарезается в закаленном после лазера отверстии? Долго живут метчики?
×
×
  • Создать...