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

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

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

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

Есть в Spotlight такая замещательная кнопочка... мне б такую...
это похоже на отрисовку 4-угольного многоугольника по стороне, только там всегда квадрат получается, т.к. не возможности выбора высоты прямоугольника
Просмотров: 19697
 
Непрочитано 28.12.2006, 15:02
#2
Кулик Алексей aka kpblc
Moderator

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


Уж не _polygon ли имеется в виду?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 28.12.2006, 15:51
#3
Neznayka


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


Цитата:
Сообщение от kpblc
Уж не _polygon ли имеется в виду?
_polygon в русском акаде и есть многоугольник, а про многоугольник я писал выше, что он по такому принципу только квадраты рисует
[ATTACH]1167310294.GIF[/ATTACH]
Neznayka вне форума  
 
Непрочитано 28.12.2006, 16:23
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,890
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Что-то типа такого
Код:
[Выделить все]
(defun C:R3P ( / *error* pt1 pt2 pt1W pt2W ucs ucf osm isRus)
  (defun *error* (msg)(princ msg)
    (if ucs (command "_.UCS" "_P")) ;_ end of if
    (if osm (setvar "OSMODE" osm)) ;_ end of if
    (setvar "UCSFOLLOW" ucf)(princ)) ;_ end of defun
  (vl-load-com)
  (setq isRus (= (getvar "DWGCODEPAGE") "ANSI_1251")
          ucf (getvar "UCSFOLLOW"))
  (setvar "UCSFOLLOW" 0)
  (initget 1)
  (setq pt1 (getpoint
              (if isRus
                "\nПервая точка прямоугольника:"
                "\nThe first point of a rectangular:"
              ) ;_ end of if
            ) ;_ end of getpoint
  ) ;_ end of setq
  (initget 1)
  (setq pt2 (getpoint pt1
                      (if isRus
                        "\nВторая точка прямоугольника:"
                        "\nThe second point of a rectangular:"
                      ) ;_ end of if
            ) ;_ end of getpoint
  ) ;_ end of setq
  (setq pt1W (trans pt1 1 0)
        pt2W (trans pt2 1 0)
         osm (getvar "OSMODE"))
  (setvar "CMDECHO" 0)
  (setvar "OSMODE" 0)
  (setq ucs (vl-cmdf "_.UCS"
                     "_N"
                     "_3"
                     pt1
                     pt2
                     (polar pt2 (+ (angle pt1 pt2) (* 0.5 PI)) 10)
            ) ;_ end of vl-cmdf
  ) ;_ end of setq
  (setvar "CMDECHO" 1)
  (command "_.RECTANGLE"
           (trans pt1W 0 1)
           ".X"
           (trans pt2W 0 1)
  ) ;_ end of command
  (setvar "OSMODE" osm)
  (command pause)
  (if ucs (command "_.UCS" "_P")) ;_ end of if
  (setvar "UCSFOLLOW" ucf)
  (princ)
) ;_ end of defun
(if (= (getvar "DWGCODEPAGE") "ANSI_1251")
  (princ "\nНаберите R3P в командной строке")
  (princ "\nType R3P to run commnad")
) ;_ end of if
(princ)
VVA вне форума  
 
Автор темы   Непрочитано 28.12.2006, 17:02
#5
Neznayka


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


О -да это то что надо, но есть вопросы:
нет повтора по пробелу .
не корректно работает если ПСк уже "крученое", т.е отличается от МСК
Neznayka вне форума  
 
Автор темы   Непрочитано 28.12.2006, 17:15
#6
Neznayka


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


и как повесить это на кнопку,
и проверьте почту
Neznayka вне форума  
 
Непрочитано 28.12.2006, 17:27
#7
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,890
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Ну так там очепятка закралась.
Исправил. Код VVA №4

Нет повтока по пробелу - враки
VVA вне форума  
 
Непрочитано 28.12.2006, 17:56
#8
Zouss


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


а зачем изобретать ТАКОЙ велосипед?

обычная команда _rectang, после указания первой угла выбираем опцию Dimensions
но вот беда - acad просит длину и ширину прямоугольника (число с клавиатуры или 2 точки мышью), а не точки
выход простой, в ответ на первый запрос пишем (getvar "lastpoint") и изображаем макрос типа
Код:
[Выделить все]
^C^C_rectang \D (getvar "lastpoint") \(getvar "lastpoint") \(getvar "lastpoint")
Zouss вне форума  
 
Автор темы   Непрочитано 28.12.2006, 18:21
#9
Neznayka


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


Цитата:
Сообщение от VVA
Ну так там очепятка закралась.
Исправил. Код VVA №4

Нет повтока по пробелу - враки

ну не знаю как с пробелом такое вышло, сейчас все хорошо

Zouss,
я вас не понял , ваш макрос обыкновенный прямоуг. рисует
Neznayka вне форума  
 
Непрочитано 28.12.2006, 19:36
#10
Клетчатый


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


В "Тулпак" - команда DDR
Клетчатый вне форума  
 
Непрочитано 29.12.2006, 02:04
#11
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


У VVA лучше чем в Toolpac, логичнее.
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 29.12.2006, 02:08
#12
KAI

геологоразведка, строительство
 
Регистрация: 14.10.2003
Магадан
Сообщений: 311


>>VVA
Только вот оЧепятка "Втокая точка..."
__________________
Лень - великий двигатель прогресса!
KAI вне форума  
 
Непрочитано 30.12.2006, 12:00
#13
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,890
<phrase 1= Отправить сообщение для VVA с помощью Skype™


>KAI Спасибо, исправил + исправил некоторые огрехи типа initget. Возможно добавил новые :?:
VVA вне форума  
 
Непрочитано 14.12.2010, 06:28
#14
rain_day


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


Хочу продолжить тему о прямоугольниках. Кто работал в SolidWorks знает, как замечательно там организовано построение прямоугольника. Кто не работал - посмотрите прилагаемое изображение, это лучше, чем я буду пытаться объяснить. Вопрос мой заключается понятно в чем...может, кто подскажет что-то подобное для автокада? Освоив лисп от VVA в этой теме, я уверен, что это возможно. Но, не нашел...
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.JPG
Просмотров: 320
Размер:	12.6 Кб
ID:	49969  
rain_day вне форума  
 
Непрочитано 14.12.2010, 08:52
#15
Disney

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


Мой вариант, построение по существующим точкам.
Цитата:
Если выбрать 3 точки, то по ним и четвёртой, вычисленной, будет построен параллелограмм.
Если указать 4 точки, то тупо по ним будет построен четырёхугольник.
[IMG]http://s56.***********/i151/1009/8b/c123e23a70ab.gif[/IMG]

Код:
[Выделить все]
(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)
  (setq	t1 (car points)
	t2 (cadr points)
	t3 (caddr points)
	d1 (distance t1 t2)
	d2 (distance t2 t3)
	d3 (distance t3 t1)
  )
  (ru-pline-entmake
    (cond
      ((eq d1 (max d1 d2 d3))
       (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 вне форума  
 
Непрочитано 14.12.2010, 09:00
#16
rain_day


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


Тоже здорово. Только пока не придумал для чего это мне может пригодиться
rain_day вне форума  
 
Непрочитано 14.12.2010, 09:27
#17
Хмурый


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


невыносимо трудно развернуть систему координат относит. оси Z, указав две точки _ucs _z
а потом вернуться в мировую _ucs пробел
Хмурый вне форума  
 
Автор темы   Непрочитано 14.12.2010, 09:50
#18
Neznayka


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


rain_day, вы посмотрите что Disney работает в геодезии. Это точки выброшенные в тахеометра.
Хмурый, задолбешься ПСК крутить. Думаете в деревне дома по красной линии посажены?
Disney, СПАСИБО!
Neznayka вне форума  
 
Непрочитано 14.12.2010, 09:50
#19
rain_day


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


Neznayka, да, я вижу. Я ж про себя

Хмурый, Ты это кому и для чего? Как это может помочь в обсуждаемых задачах?
rain_day вне форума  
 
Непрочитано 14.12.2010, 09:58
#20
Хмурый


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


rain_day, да никак не поможет, если ПСК крутить не можешь или не хочешь. Можно обойтись без этих костылей вовсе.
_ucs - один из основных инструментов, как и привязка From (От)
Хмурый вне форума  
 
Непрочитано 14.12.2010, 10:06
#21
rain_day


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


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


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


_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
Сообщений: 317


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


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


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


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


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


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


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,465


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


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


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


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


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


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


Цитата:
Сообщение от 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,174
Отправить сообщение для Cfytrr с помощью Skype™


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

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

Миниатюры
Нажмите на изображение для увеличения
Название: Drawing1-Model.png
Просмотров: 201
Размер:	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
С.-Петербург
Сообщений: 38,407


Отключить дин.ввод, полярное отслеживание и т.п. - не срабатывает?
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.09.2020, 09:51
#37
AlexCondor

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


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

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


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

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

Нажмите на изображение для увеличения
Название: Drawing1-Model.png
Просмотров: 36
Размер:	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,174
Отправить сообщение для Cfytrr с помощью Skype™


Цитата:
Сообщение от GlazZ Посмотреть сообщение
понимание о положении курсора всё таки спасает
Ага, как прием аспирина при чуме.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 06.11.2020, 18:06
#41
AlexCondor

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


Cfytrr, Подниму тему, у Lee Mac'а появилась новая версия. Попробовал вроде точно отрабатывает ...
AlexCondor вне форума  
 
Непрочитано 06.11.2020, 19:51
#42
Cfytrr

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


3P-RecV1-1.lsp Попробовал, ошибка осталась.
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 07.10.2021, 12:14
1 | #43
AlexCondor

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


Cfytrr, Наберусь наглости, и если еще актуально, предложу посмотреть у Lee Mac еще одну версию. Обновление выглядит вполне обнадеживающим: " Version 1.2 - 2021-10-06 - Modified to fix LWPolyline elevation relative to the active UCS"
AlexCondor вне форума  
 
Непрочитано 07.10.2021, 12:27
#44
Cfytrr

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


AlexCondor,
Спасибо, в варианте команды 3prd вроде бы работает как нужно в 2019 версии
__________________
...переменная FILEDIA создана для привлечения пользователей к форумам.
Cfytrr вне форума  
 
Непрочитано 11.10.2021, 15:04
#45
MFor

Инженер-проектировщик
 
Регистрация: 08.02.2007
С-Петербург
Сообщений: 122
<phrase 1=


В порядке бреда, можно же динамический блок использовать с точкой вставки в одной из вершин, крутилкой по смежной вершине и растягиванием по сторонам?
MFor вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > прямоугольник по 3 точкам

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

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