| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как определить координаты начала и конца отрезка, координаты центра окружности?

Как определить координаты начала и конца отрезка, координаты центра окружности?

Ответ
Поиск в этой теме
Непрочитано 16.01.2011, 22:29 #1
Как определить координаты начала и конца отрезка, координаты центра окружности?
voverrr
 
гастарбайтер понаехал
 
Маскво
Регистрация: 07.12.2009
Сообщений: 267

Здравствуйте, уважаемые знатоки.

Начинаю изучать ЛИСП, на маленьких примерах, элементарных задачах. В этой связи перевернул кучу уже литературы и сайтов с уроками. Главная их беда - они излагают всё это без примеров. Единственное, что хоть как-то продвинуло меня - это книга Е.М. Кудрявцева "Autolisp. Программирование в Autocad 14".

И вот задался я написать автоматическую простановку размеров. Чертежи у меня не сложные, вот такого примерно вида.


Ну, иногда есть криволинейные детали, там присутствуют ещё дуги.

Перво-наперво я хотел научиться определять координаты начала/конца отрезков, начала/конца дуг, центры окружностей, с тем, чтобы потом к ним из базовой точки проводить размеры. Те элементы, которые находятся ниже оси, проходящей через середину детали - их размерная линия располагается внизу, те элементы, которые ближе к верхнему краю детали - их размерная линия сверху.

Но это всё в будущем - размерные линии и их расположение. Пока что не могу понять самый первый шаг - определение координат начала/конца отрезков.
чтобы он присвоил переменной А значение начала, переменной Б значение конца, переменной В - значение центра первой окружности, Г - центр второй окружности...?

В местном поиске я уже всё облазил. Есть пара похожих тем:
http://forum.dwg.ru/showthread.php?t=62035 - спасибо тебе, Дима. Не от меня одного

http://forum.dwg.ru/showthread.php?t=22894 - пример Red Nova меня вдохновил своим упорством и желанием учиться.

но облазить-то я облазил, но так нужного и не нашёл. или, скорее всего, пока что я не вижу. Уж сделайте доброе дело, ткните носом?
Просмотров: 7652
 
Непрочитано 16.01.2011, 22:56
#2
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,840


см. справку по автокаду - раздел dxf, либо справку по объектной модели (на примере VB).
А так получить начало, конец отрезка; центр круга:
Код:
[Выделить все]
(cdr (assoc XX (entget (отрезок или круг))))
XX для начала 10, конца - 11, центра - 10, отрезок или круг - примитив полученный с помощью команд - entlast, entnext или entsel
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
 
Непрочитано 17.01.2011, 00:07
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Самое главное - не запутаться в системах координат
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.01.2011, 00:15
#4
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


зайди на сайт и закажи книгу Autolisp и Visuallisp в среде Autocad Н. Полещюка там описаны и методы Activex и Функции lispa. я сам пытаюсь lisp изучать и эта книжка мне пмогает. и форумчане тоже вносят свою добрую половину опыта если не больше!
надеюсь не забанят за рекламу.
если через entsel то так вроде
(setq a (cdr(entsel "\nвыбирите оъект")))
(entget a)
mamuk вне форума  
 
Автор темы   Непрочитано 17.01.2011, 00:40
#5
voverrr

гастарбайтер понаехал
 
Регистрация: 07.12.2009
Маскво
Сообщений: 267


почему-то не определяет он у меня именно центр окружности.

определяет точку, в которую кликаешь, когда выбираешь окружность.

mamuk
Да, эта книжка у меня тоже есть. Как раз станицы её 113-116 начинают обретать смысл...

Кулик Алексей aka kpblc
в данном случае я ПСК просто перенёс на центр окружности
voverrr вне форума  
 
Непрочитано 17.01.2011, 00:48
#6
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от mamuk Посмотреть сообщение
(cdr(entsel "\nвыбирите оъект"))
Написано неверно. Надо
Код:
[Выделить все]
(car (entsel "\nВыберите объект : "))
См. описание функции entsel и возвращаемое ею значение.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.01.2011, 20:10
#7
mamuk


 
Регистрация: 06.05.2010
Сургут
Сообщений: 248


да я ошибся точно! извиняюсь писал по памяти!
entsel возвращает имя объекта и координаты указанные мышкой.
поэтому разные координаты в строке и тут же пишет ашибку, т.к. entget
возвращает dxf код примитива по имени, а в моем варианте (неправильном) вместо имени примитива попадали координаты указанные мышкой т.к. надо было писать car вместо cdr.
Код:
[Выделить все]
 (assoc 10 (entget(car (entsel "\nВыберите объект : "))))
вроде так бдет правильно
mamuk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как определить координаты начала и конца отрезка, координаты центра окружности?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ACAD: Где хранятся координаты точек начала и конца объекта IAcadDimRotated Main Urod Программирование 1 25.02.2009 17:47