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

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

прямоугольник по 3 точкам

Ответ
Поиск в этой теме
Непрочитано 28.12.2006, 14:54
прямоугольник по 3 точкам
Neznayka
 
Регистрация: 24.03.2005
Сообщений: 320

Есть в Spotlight такая замещательная кнопочка... мне б такую...
это похоже на отрисовку 4-угольного многоугольника по стороне, только там всегда квадрат получается, т.к. не возможности выбора высоты прямоугольника
Просмотров: 22794
 
Непрочитано 14.12.2010, 10:06
#21
rain_day


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


А расскажи пожалуйста как начертить прямоугольник с привязкой от центра или от центра его стороны?
rain_day вне форума  
 
Непрочитано 14.12.2010, 10:47
#22
Хмурый


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


_rectang
Specify first corner point or [Chamfer/Elevation/Fillet/Thickness/Width]: _from

Base point: указываем точку , серидину стороны будущего прямоугольника
<Offset>: @100/2<90 вводим смещение, с указанием угла

Specify other corner point or [Area/Dimensions/Rotation]: _from
Base point: указываем вторую точку, середину другой стороны
<Offset>: 100/2 вводим смещение, пользуясь, для примера, полярным отслеживанием по направлению 270%%d.

100- Ширина прямоугольника
естественно, что оси X и Y параллельны сторонам будущего прямоугольника и ось X идет вдоль длинной стороны

Если кроме ширины известна длина прямоугольника, то задача упрощается.
длина- 200

_rectang
Specify first corner point or [Chamfer/Elevation/Fillet/Thickness/Width]: _from

Base point: указываем точку , серидину стороны будущего прямоугольника
<Offset>: @100/2<90 вводим смещение, с указанием угла

Specify other corner point or [Area/Dimensions/Rotation]: @200,100

Последний раз редактировалось Хмурый, 14.12.2010 в 10:57.
Хмурый вне форума  
 
Автор темы   Непрочитано 14.12.2010, 11:08
#23
Neznayka


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


Хмурый, это конечно хорошо, но не проще ли это сделать при помощи доп. построений.
Я, например, с вашим методом не смогу одновременно пить кофе, говорить по телефону и прямоугольник с привязкой от центра чертить.
А с доп. построениями смогу, проигрыш так пару кликов и пару секунд, но насколько процентов у меня мозг будет меньше загружен.
Конечно если раз в час так строить, то да! но мне даже раз в день не нужно.
Neznayka вне форума  
 
Непрочитано 14.12.2010, 11:19
#24
Хмурый


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


руки должны работать, а не голову подпирать.
Если черчение прямоугольников рутинная операция, то, несомненно, программа поможет, а если раз от разу- то начерта она она нужна? Чтоб былО, на всякий случай?
Хмурый вне форума  
 
Непрочитано 14.12.2010, 11:51
#25
rain_day


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


Жесть по такому методу доп построения будут куда выгоднее, мне так кажется. И дело не в кофе или телефоне. Просто выгоднее и всё
Но хмурый, знаток командной строки, любит всё усложнить
Знаток лиспа бы высказался
rain_day вне форума  
 
Автор темы   Непрочитано 14.12.2010, 16:19
#26
Neznayka


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


Disney
вопрос по лиспу:
поставил точки по углам равностороннего треугольника. Лисп строит прямоугольник строго определенно, вне зависимости от порядка выделения точек. Короче, неплохо бы задавать линию симметрии/отзеркаливания, т.е дать пользователю возможность выбора направления 4 точки.
Neznayka вне форума  
 
Непрочитано 14.12.2010, 17:46
#27
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Цитата:
Сообщение от Neznayka Посмотреть сообщение
очки по углам равностороннего треугольника
Ну ты тестер блин, ты же сам подметил, что я из геодезии, а у нас чудес не бывает, в смысле равносторонних треугольников.
Исправил, теперь в равносторонних 4-ая вершина будет всегда достраиваться напротив 1-ой указанной, ну или между 2-ой и 3-ей.
Код:
[Выделить все]
(defun C:4_ugolnik (/ points)
  (while
    (princ "\nВыбирете точки <Выход>:")
     (setq points (ssget "_:L" '((0 . "POINT"))))
     (setq
       points
	(mapcar
	  '(lambda (x)
	     (reverse (cdr (reverse (cdr (assoc 10 (entget x))))))
	   )
	  (vl-remove-if-not
	    '(lambda (x) (= (type x) 'ENAME))
	    (mapcar 'cadr (reverse (ssnamex points)))
	  )
	)
     )
     (cond
       ((< (length points) 3)
	(princ "\nМинимум 3 точки")
       )
       ((eq (length points) 3) (parallelogram points))
       ((eq (length points) 4) (quadrilateral points))
       (T (princ "\nМаксимум 4 точки"))
     )
  )
)

 ;|
Функция parallelogram
|;
(defun parallelogram (points / t1 t2 t3
		      d1 d2 d3 fuzz
		      )
  (setq	t1 (car points)
	t2 (cadr points)
	t3 (caddr points)
	d1 (distance t1 t2)
	d2 (distance t2 t3)
	d3 (distance t3 t1)
	fuzz (/ (min d1 d2 d3) 1000)
	
  )
  (ru-pline-entmake
    (cond      
      ((or (equal d1 (max d1 d2 d3)fuzz))
       (list t2 t3 t1 (polar t1 (angle t3 t2) d2))
      )
      ((eq d2 (max d1 d2 d3))
       (list t3 t1 t2 (polar t2 (angle t1 t3) d3))
      )
      (T (list t1 t2 t3 (polar t3 (angle t2 t1) d1)))
    )
    T
    nil
  )
)
 ;|
Функция quadrilateral
|;
(defun quadrilateral (points / t1 t2 t3 t4)
  (setq	t1 (car points)
	t2 (cadr points)
	t3 (caddr points)
	t4 (cadddr points)
  )
  (ru-pline-entmake
    (if
      (inters t1 t2 t3 t4)
       (list t1 t3 t2 t4)
       (if (inters t1 t3 t2 t4)
	 (list t1 t2 t3 t4)
	 (list t1 t2 t4 t3)
       )
    )
    T
    nil
  )
)

 ;|
Функция ru-pline-entmake
|;

(defun ru-pline-entmake
			(points is_closed is_3d / elst ENTL)
;;; (ru-pline-entmake (список_вершин) флаг_замкнутости
;;; флаг_делать_3М_ПЛИНИЮ)
;;; возвращает имя примитива - полилинии или NIL, если что-то не
;;; вышло.
  ;|
Пример:
(ru-pline-entmake
(list
(list 220.65 345.001)
(list 332.622 546.525)
(list 846.376 320.906)
(list 719.035 121.572)
) T nil )
|;
  (if is_3d
    (progn
      (setq entl
	     (list
	       '(0 . "POLYLINE")
	       '(100 . "AcDbEntity")
	       '(100 . "AcDb3dPolyline")
	       '(66 . 1)
	       '(10 0.0 0.0 0.0)
	       (cons 70
		     (logior 8
			     (if is_closed
			       1
			       0
			     ) ;_ end of if
			     (if (= 1 (getvar "PLINEGEN"))
			       128
			       0
			     ) ;_ end of if
		     ) ;_ end of logior
	       ) ;_ end of cons
	     ) ;_ end of list
      ) ;_ end of setq
      (if (entmake entl)
	(progn
	  (foreach v points
	    (progn
	      (setq entl
		     (list
		       '(0 . "VERTEX")
		       '(100 . "AcDbEntity")
		       '(100 . "AcDbVertex")
		       '(100 . "AcDb3dPolylineVertex")
		       (append '(10) v)
		       '(70 . 32)
		     ) ;_ end of list
	      ) ;_ end of setq
	      (entmake entl)
	    ) ;_ end of progn
	  ) ;_ end of foreach
	  (if (entmake '((0 . "SEQEND") (100 . "AcDbEntity")))
	    (entupd (entlast))
	    nil
	  ) ;_ end of if
	) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
    (progn
      (setq elst (append
		   (list
		     '(0 . "LWPOLYLINE")
		     '(100 . "AcDbEntity")
		     '(100 . "AcDbPolyline")
					;(cons 8 (getvar "CLAYER"))
		     (cons 90 (length points))
		     (cons 70
			   (logior (if is_closed
				     1
				     0
				   ) ;_ end of if
				   (if (= 1 (getvar "PLINEGEN"))
				     128
				     0
				   ) ;_ end of if
			   ) ;_ end of logand
		     )			; _ end of cons;;;
		   ) ;_ end of list
		   (mapcar '(lambda (p)
			      (list 10 (car p) (cadr p))
			    ) ;_ end of lambda
			   points
		   ) ;_ end of mapcar
		 ) ;_ end of append
      ) ;_ end of setq
      (if (entmake elst)
	(entupd (entlast))
	nil
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
(princ "\nВызов команды: 4_ugolnik")
Правда там опять с равнобедренными не однозначность...
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 08.10.2019, 14:21
#28
RAD24


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


Подскажите есть у кого код отрисовки прямоугольника по трем точкам как в Autocad -команда rectang , c сохранением угла поворота при повторе команды?

----- добавлено через ~2 мин. -----
ЭТо нужно для работы в др .программах , например Bricscad
RAD24 вне форума  
 
Непрочитано 08.10.2019, 14:25
#29
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,588


RAD24, ну отзовется человек, что у него, дескать, есть такая штука... дальше что?
Раздел форума посвящен чистому акаду, поделиться кодом Вы не просите, может Вы статистику собираете у кого такое есть?
Простите мое любопытство, но зачем Вам такая статистика?
Boxa вне форума  
 
Непрочитано 08.10.2019, 14:37
#30
RAD24


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


Да, конечно хотел получить код, пользоваться им для отрисовки прямоугольников.
RAD24 вне форума  
 
Непрочитано 09.10.2019, 06:56
#31
valerik88


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


Это не оно?
Вложения
Тип файла: lsp r3p.lsp (3.0 Кб, 39 просмотров)
valerik88 вне форума  
 
Непрочитано 09.10.2019, 08:11
#32
Oleg T


 
Регистрация: 27.12.2011
Сообщений: 1,458


Цитата:
Сообщение от RAD24 Посмотреть сообщение
Подскажите есть у кого код отрисовки прямоугольника по трем точкам как в Autocad -команда rectang , c сохранением угла поворота при повторе команды?

----- добавлено через ~2 мин. -----
ЭТо нужно для работы в др .программах , например Bricscad
http://www.lee-mac.com/3pointrectangle.html
Здесь море разных лиспов
Oleg T вне форума  
 
Непрочитано 09.10.2019, 09:34
#33
RAD24


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


Спасибо за помощь, некоторые программы видел, но у них нет такой возможности как в стандартной rectang- запоминание предыдущего угла поворота и повторе команды.
RAD24 вне форума  
 
Непрочитано 13.09.2020, 21:32
#34
GlazZ


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


Что то случилось с "прямоугольник по трём точкам" вводишь размер стороны, отрабатывает нормально (кидает линию именно этого размера) , вводишь размер второй стороны, рисует её рандомной длинны. Очень мешает команда нужна постоянно, я как то подсел. Кто сталкивался? Подскажите можно, что то сделать?
GlazZ вне форума  
 
Непрочитано 13.09.2020, 23:11
1 | #35
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,818
Отправить сообщение для Cfytrr с помощью Skype™


GlazZ,
Эта ошибка появилась начиная с 19 версии акада, я спрашивал в ветке по работе с полилинией,но никто не ответил, видимо баг не лечится.

Цитата:
вводишь размер второй стороны, рисует её рандомной длинны.
Вторая длина не рандомная, она отрисовывает правильное расстояние,вот только не по нормали к первой стороне (как должно) ,а в направлении текущего положения курсора. Например хотим нарисовать квадрат 20х20,первая сторона получается 20,а вот вторая получится 13.27, так как курсор был в стороне от нормали

Миниатюры
Нажмите на изображение для увеличения
Название: Drawing1-Model.png
Просмотров: 429
Размер:	570.9 Кб
ID:	230104  
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 14.09.2020, 09:43
#36
Кулик Алексей aka kpblc
Moderator

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


Отключить дин.ввод, полярное отслеживание и т.п. - не срабатывает?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.09.2020, 09:51
#37
AlexCondor

инженер
 
Регистрация: 03.08.2007
Сообщений: 1,327


Cfytrr, А не пробовали LISP от Lee Mac'а (команда 3PRD). Он работает также?
AlexCondor вне форума  
 
Непрочитано 14.09.2020, 10:00
1 | #38
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,818
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Отключить дин.ввод, полярное отслеживание и т.п. - не срабатывает?
Ну на скрине видно же что эта нечисть отключена.

Цитата:
Сообщение от AlexCondor Посмотреть сообщение
Cfytrr, А не пробовали LISP от Lee Mac'а (команда 3PRD). Он работает также?
Та же фигня:

Нажмите на изображение для увеличения
Название: Drawing1-Model.png
Просмотров: 38
Размер:	66.7 Кб
ID:	230122
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 21.09.2020, 19:01
#39
GlazZ


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


Спасибо понимание о положении курсора всё таки спасает, ну более менее жить уже проще. )
GlazZ вне форума  
 
Непрочитано 21.09.2020, 20:51
#40
Cfytrr

Балка на балку, кирпич на кирпич...
 
Регистрация: 09.10.2007
Питер
Сообщений: 4,818
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от GlazZ Посмотреть сообщение
понимание о положении курсора всё таки спасает
Ага, как прием аспирина при чуме.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > прямоугольник по 3 точкам

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

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