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

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

Привяка к "центру" квадрата, прямоугольника

Ответ
Поиск в этой теме
Непрочитано 23.01.2008, 10:03 #1
Привяка к "центру" квадрата, прямоугольника
rodion
 
Регистрация: 14.10.2005
Сообщений: 42

Собственно говоря САБЖ...
Никто еще не осуществил такую функцию?
Просмотров: 11104
 
Непрочитано 23.01.2008, 10:12
#2
Кулик Алексей aka kpblc
Moderator

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


Попробуй в качестве привязки указывать _m2p
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.01.2008, 10:18
#3
rodion


 
Регистрация: 14.10.2005
Сообщений: 42


TO Кулик Алексей aka kpblc
Спасибо большое!
Хотелось бы конечно единичным касанием привязку осуществлять, но видимо пока что это невозможно...
rodion вне форума  
 
Непрочитано 23.01.2008, 10:20
#4
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


Как вариант: Включить объектную привязку (F11) и вектор полярного отслеживания (F10)
Миниатюры
Нажмите на изображение для увеличения
Название: SPXImage1194.jpg
Просмотров: 771
Размер:	31.9 Кб
ID:	2534  
Хмурый вне форума  
 
Непрочитано 23.01.2008, 10:28
#5
Кулик Алексей aka kpblc
Moderator

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


Хмурый, такое прокатит при положении прямоугольника, попадающего под углы полярной привязки. Если прямоугольник повернут, к примеру, на 16°4'20'', полярная привязка может и не сработать (по-моему).
---
Добавлено: Прошу прощения, я был неправ. Все работает.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.

Последний раз редактировалось Кулик Алексей aka kpblc, 23.01.2008 в 10:46.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 23.01.2008, 10:31
#6
rodion


 
Регистрация: 14.10.2005
Сообщений: 42


Хмурый
Спасибо, но первый способ попроще (для меня).
rodion вне форума  
 
Непрочитано 23.01.2008, 10:40
#7
Ash

AutoCAD
 
Регистрация: 10.02.2005
Москва
Сообщений: 55


Полярка то зачем?
F3 и F11 вполне хватит!!!
__________________
3D Автокад рулит...
Ash вне форума  
 
Непрочитано 23.01.2008, 11:18
#8
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Хмурый, такое прокатит при положении прямоугольника, попадающего под углы полярной привязки. Если прямоугольник повернут, к примеру, на 16°4'20'', полярная привязка может и не сработать (по-моему).
---
Добавлено: Прошу прощения, я был неправ. Все работает.
Не понял... Если он повернут, как может работать F11 и F10?
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 23.01.2008, 12:47
#9
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Можно здесь еще поковыряться
LISP. Определение координат центра прямоугольной ячейки. Примеры
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 23.01.2008, 13:25
#10
rodion


 
Регистрация: 14.10.2005
Сообщений: 42


VVA
Спасибо, но это немного не то.
rodion вне форума  
 
Непрочитано 23.01.2008, 15:15
#11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от rodion Посмотреть сообщение
VVA
Спасибо, но это немного не то.
Я же написал "поковыряться"
Код:
[Выделить все]
;;mdc - MiDdle Contour
;;Привяка к "центру" квадрата, прямоугольника
;;http://dwg.ru/f/showthread.php?t=16865
(vl-load-com)
(defun mdc (/ en reg pt pt1)
;;;Запрашивает контур и возвравщает координаты центра или "ошибка 
;;;выбора контура". Если контур вычислен, заносит точку в LASTPOINT 
;;;(можно сослаться по @). Может вызываться прозрачно в ответ на 
;;;запрос точки как 'MDC
  (setq pt (getvar "LASTPOINT") pt1 pt)
  (and (setq en (car (entsel "\nВыберите замкнутый контур: ")))
       (member (cdr (assoc 0 (entget en)))
               '("LWPOLYLINE" "POLYLINE" "SPLINE" "CIRCLE" "ELLIPSE")
       ) ;_ end of member
       (vl-catch-all-apply
         '(lambda ()
            (setq reg
                   (vla-addregion
                     (if
                       (and
                         (zerop
                           (vla-get-activespace
                             (vla-get-activedocument (vlax-get-acad-object))
                           ) ;_ end of vla-get-activespace
                         ) ;_ end of zerop
                         (= :vlax-false
                            (vla-get-mspace
                              (vla-get-activedocument (vlax-get-acad-object))
                            ) ;_ end of vla-get-mspace
                         ) ;_ end of =
                       ) ;_ end of and 
                        (vla-get-paperspace
                          (vla-get-activedocument (vlax-get-acad-object))
                        ) ;_ end of vla-get-paperspace
                        (vla-get-modelspace
                          (vla-get-activedocument (vlax-get-acad-object))
                        ) ;_ end of vla-get-modelspace
                     ) ;_ end of if
                     (vlax-make-variant
                       (vlax-safearray-fill
                         (vlax-make-safearray
                           vlax-vbobject
                           (cons 0 0)
                         ) ;_ end of vlax-make-safearray
                         (list (vlax-ename->vla-object en))
                       ) ;_ end of vlax-safearray-fill
                     ) ;_ end of vlax-make-variant
                   ) ;_ end of vla-AddRegion
            ) ;_ end of setq
            (setq
              reg (car (vlax-safearray->list (vlax-variant-value reg)))
            ) ;_ end of setq
            (setq pt (vlax-safearray->list
                              (vlax-variant-value (vla-get-centroid reg))
                            ) ;_ end of vlax-safearray->list
 
            )
            (vla-erase reg)
          ) ;_ end of lambda
       )
  ) ;_ end of and
  (if (equal pt pt1 1e-9)
    (setq pt "ошибка выбора контура")
    (setvar "LASTPOINT" pt)
    )
 
) ;_ end of defun
(defun C:MDC ()(mdc))
(defun C:ЬВС ()(mdc))
2 команды:
MDC и ее русская кузина ЬВС
Запрашивает контур и возвравщает координаты центра или "ошибка выбора контура". Если контур вычислен, заносит точку в LASTPOINT (можно сослаться по @). Может вызываться прозрачно в ответ на запрос точки как 'MDC
Вариант 1
Цитата:
Команда: _line Первая точка:
Следующая точка или [Отменить]:
Следующая точка или [Отменить]: 'mdc <- Вызвали прозрачно
Выберите замкнутый контур: (262.411 88.545)
Следующая точка или [Замкнуть/Отменить]: З
Вариант 2
Цитата:
Команда: MDC <- Вызвали команду
Выберите замкнутый контур: (262.411 88.545) <- Точка в LASTPOINT
Команда:
Команда:
Команда:
Команда: _line Первая точка: @ <-Сослались на LASTPOINT
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 23.01.2008, 17:58
#12
IIIypuk


 
Регистрация: 18.12.2007
Сообщений: 27


Ctrl + Right button -> Snap menu.
Я когда рисую, у мя только центр, конец отрезка и перпендикуляр включены. Иногда еще node. А когда нужна другая привязка, зажал контрол, щелкнул мышкой и на клавиатуре:
g - касательная, l - паралельная, t+Enter - середина между двумя точками (как раз то, что вы ищите), r - nearest, m - middle, d - node и т.д. Чуть попрактиковавшись, начинаешь уже щелкать незадумываясь. Скорострельность в разы повышается. Выходит быстрее, чем набирать _m2p или, тем более, тянутся за какой то кнопкой на панелях. =]
IIIypuk вне форума  
 
Непрочитано 23.01.2008, 22:24
#13
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,379


IIIypuk, у тебя _m2p есть, а в AutoCAD'ах других версий этого может не быть.
Хмурый вне форума  
 
Непрочитано 24.01.2008, 00:40
#14
Sopro

Конструктор-машиностроитель
 
Регистрация: 22.12.2005
С.-Петербург
Сообщений: 1,224
<phrase 1=


А провести вспомогательную диагональ и привязаться к ее середине не прокатит? Типа медленно, лишние построения, да? Я такие вещи строю не раздумывая и "теряю" при этом полсекунды, не более
__________________
Счастлив тот, чьи беззакония прощены и чьи грехи покрыты (Рим. 4:7)
Sopro вне форума  
 
Непрочитано 24.01.2008, 02:35
#15
skif58

Наше дело труба
 
Регистрация: 19.11.2006
Томск_Комсомольск-на-Амуре
Сообщений: 1,736
<phrase 1= Отправить сообщение для skif58 с помощью Yahoo Отправить сообщение для skif58 с помощью Skype™


Можно и так: Shift+правая => (меню привязки) => Середина между точками и щелкнуть середины противоположных сторон прямоугольника.
Т.е. тоже _m2p после ввода команды.
__________________
*...И Случай, бог изобретатель. *

Последний раз редактировалось skif58, 24.01.2008 в 02:42.
skif58 вне форума  
 
Непрочитано 24.01.2008, 09:47
#16
rocker

mechanic engineer
 
Регистрация: 18.12.2007
Ukraine
Сообщений: 424


Цитата:
Сообщение от rodion Посмотреть сообщение
Никто еще не осуществил такую функцию?
Эта функция реализована (весьма полноценно) в AutoCAD Mechanical.Там есть привязка Rectangle Center которая к тому же имеет четыре опции: Half (default),DRag,DIstances,Relation.
__________________
One thing I can tell you is you got to be free... (John)
rocker вне форума  
 
Автор темы   Непрочитано 24.01.2008, 11:45
#17
rodion


 
Регистрация: 14.10.2005
Сообщений: 42


VVA Спасибо, но с помощью _m2p все же проще.

rocker
Ого, а перекинуть ее в акад никак нельзя?

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

Последний раз редактировалось rodion, 24.01.2008 в 11:56.
rodion вне форума  
 
Непрочитано 24.01.2008, 13:51
#18
rocker

mechanic engineer
 
Регистрация: 18.12.2007
Ukraine
Сообщений: 424


Цитата:
Сообщение от rodion Посмотреть сообщение
Ого, а перекинуть ее в акад никак нельзя?
Такой надобности пока что не было поскольку AutoCAD Mechanical--это расширенная (и адаптированная) версия классического AutoCAD для машиностроителей.Естественно,что в этой версии можно работать и в чистом классическом AutoCAD-е.

Кроме расширенного набора привязок AutoCAD Mechanical имеет еще много полезных команд и настроек.

Можете попытаться что-либо сделать в классическом AutoCAD-е,вот описания команды :

Name: Rectangle Center

Description: Snaps the rectangle center: AMPSNAPCEN

Macro: ^P$M=$(if,$(getvar,cmdactive),_non )(c:ampsnapcen);
__________________
One thing I can tell you is you got to be free... (John)

Последний раз редактировалось rocker, 24.01.2008 в 16:44.
rocker вне форума  
 
Автор темы   Непрочитано 24.01.2008, 14:00
#19
rodion


 
Регистрация: 14.10.2005
Сообщений: 42


rocker
Спасибо
rodion вне форума  
 
Непрочитано 24.01.2008, 20:50
#20
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Для тех автокадов (2002, a может, 2004), у которых нет привязки M2P. Делаем кнопку '_cal;(_end+_end)/2;
Привязки, несомненно, быстрее вспомогательных построений и последующ. удаления, которое можно и забыть сделать, если отвлекут
Vova вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Привяка к "центру" квадрата, прямоугольника