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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Не правильно рассчитал привязку переменных к фигуре, криво строится с другими значениями

Не правильно рассчитал привязку переменных к фигуре, криво строится с другими значениями

Ответ
Поиск в этой теме
Непрочитано 19.02.2020, 19:50 #1
Не правильно рассчитал привязку переменных к фигуре, криво строится с другими значениями
dmitry0406
 
Регистрация: 18.02.2020
Сообщений: 1

Здравствуйте!
При построении фигуры со значениями a = 60 и b = 10, строится всё нормально, а вот если задать значения наоборот: а = 10 и b = 60, то фигура не строится как надо.
Подскажите пожалуйста, как лучше по вашему сделать привязку вот этих двух переменных (a и b) ко все фигуре?

Само задание:
Нажмите на изображение для увеличения
Название: Задание.jpg
Просмотров: 35
Размер:	116.0 Кб
ID:	223294

Расположение точек:
Нажмите на изображение для увеличения
Название: Расположение точек.jpg
Просмотров: 22
Размер:	128.6 Кб
ID:	223295

Примечание:
Параметр R показал на изображении Расположение точек, а высчитывал его через отношение (отношения взял 80 и 60 с изображения Задание):


Так как это были изначально диаметры, то


Код:
Код:
[Выделить все]
 (defun dtr (a)
  (* pi (/ a 180.))
)

(defun c:detal ()

  (princ "Укажите положение точки привязки:")
  (setq pt1 (getpoint))
  (setq a (getreal "\Значение a:"))
  (setq b (getreal "\Значение b:"))
  (setq c (* a (/ 4. 3.)))
  (setq R (/ c 2.))

  ;---------------------точки---------------------
  ;право вверх
  (setq pt3 (polar pt1 (dtr 0.) a))
  (setq pt4 (polar pt3 (dtr 0.) b))
  (setq pt5 (polar pt3 (dtr -90.) b))
  (setq pt6 (polar pt3 (dtr 90.) b))
  (setq pt7 (polar pt1 (dtr 45.) a))
  (setq pt8 (polar pt7 (dtr -45.) b))
  (setq pt10 (polar pt7 (dtr 135.) b))
  (setq pt9 (polar pt7 (dtr 45.) b))
  (setq pt11 (polar pt6 (dtr 180.) (- c a)))
  (setq pt12 (polar pt8 (dtr 225.) (- c a)))
  (setq pt13 (polar pt10 (dtr 225.) (- c a)))
  ;лево вверх
  (setq pt14 (polar pt1 (dtr 180.) a))
  (setq pt15 (polar pt14 (dtr 180.) b))
  (setq pt16 (polar pt14 (dtr -90.) b))
  (setq pt17 (polar pt14 (dtr 90.) b))
  (setq pt18 (polar pt1 (dtr 135.) a))
  (setq pt19 (polar pt18 (dtr 225.) b))
  (setq pt20 (polar pt18 (dtr 45.) b))
  (setq pt21 (polar pt18 (dtr 135.) b))
  (setq pt22 (polar pt17 (dtr 0.) (- c a)))
  (setq pt23 (polar pt19 (dtr -45.) (- c a)))
  (setq pt24 (polar pt20 (dtr -45.) (- c a)))
  
  ;--------------отрисовка и размеры--------------
  ;размер
  (command "_dimlinear" pt14 pt1 (polar pt1 (dtr 270.) a))
  ;
  (command "_circle" pt1 (/ a 2))
  ;размер
  (command "_.dimdiameter" (list (entlast) pt1) (polar pt1 (dtr 22.) a))
  ;
  ;право вверх
  (command "_circle" pt3 (/ b 2))
  (command "_.arc" pt6 pt4 pt5 "")
  (command "_circle" pt7 (/ b 2))
  (setq circle_1 (entlast))
  (command "_.arc" pt8 pt9 pt10 "")
  (setq acr_1 (entlast))
  (command "_line" pt6 pt11 "")
  (setq line_1 (entlast))
  (command "_line" pt8 pt12 "")
  (setq line_2 (entlast))
  (command "_.arc" pt11 "_e" pt12 "_r" R "")
  (setq acr_2 (entlast))
  (command "_line" pt10 pt13 "")
  (setq line_3 (entlast))  
  ;лево вверх
  (command "_circle" pt14 (/ b 2))
  (command "_.arc" pt17 pt15 pt16 "")
  ;размер
  (command "_.dimradius" (list (entlast) pt15) (polar pt15 (dtr 150.) b))
  ;
  (command "_circle" pt18 (/ b 2))
  (setq circle_2 (entlast))
  ;размер
  (command "_.dimdiameter" (list (entlast) pt18) (polar pt18 (dtr 115.) (* b 2)))
  ;
  (command "_.arc" pt8 pt9 pt10 "")
  (setq acr_3 (entlast))
  (command "_line" pt17 pt22 "")
  (setq line_4 (entlast))
  (command "_line" pt19 pt23 "")
  (setq line_5 (entlast))
  (command "_.arc" pt22 "_e" pt23 "_r" R "")
  (setq acr_4_1 (entlast))
  (command "_mirror" acr_4_1 "" pt22 pt23 "_yes" "")
  (setq acr_4 (entlast))
  (command "_line" pt20 pt24 "")
  (setq line_6 (entlast))
  (command "_.arc" pt19 pt21 pt20 "")
  (setq acr_5 (entlast))
  ;вверхняя дуга
  (command "_.arc" pt24 "_e" pt13 "_r" R "")
  (setq acr_6_1 (entlast))
  (command "_mirror" acr_6_1 "" pt24 pt13 "_yes" "")
  (setq acr_6 (entlast))
  ;размер
  (command "_.dimradius" (list (entlast) pt13) (polar pt13 (dtr 120.) b))
  ;
  (command "_mirror" acr_1 acr_2 acr_3 acr_4 acr_5 acr_6 circle_1 circle_2 line_1 line_2 line_3 line_4 line_5 line_6 "" pt15 pt4 "_no" "")


)

Просмотров: 979
 
Непрочитано 19.02.2020, 20:34
#2
Кулик Алексей aka kpblc
Moderator

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


Может, дело в граблях?
Offtop: Если бы такое надо было реально строить, я бы подумал на предмет использования Invenor

----- добавлено через ~2 мин. -----
Кстати, а если руками построить при заданных параметрах - сечение вообще будет существовать или нет?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.02.2020, 04:51
#3
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Лучше создать динамический блок и вставлять его программно с нужными параметрами.
__________________
Делай хорошо, плохо само получится.
Krieger на форуме  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Не правильно рассчитал привязку переменных к фигуре, криво строится с другими значениями

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возможно ли вообще правильно заармировать балку по СНиП? МишаИнженер Прочее. Архитектура и строительство 40 12.11.2019 07:31
Забивка свай и заполнение полости свай ЦПР как правильно занести эти работы в журналы? progamer Технология и организация строительства 5 18.07.2018 17:55
Как правильно ссылаться на новые СП? pbykov Прочее. Архитектура и строительство 1 15.09.2011 08:10
как правильно отключать привязку? baaba Программирование 6 27.01.2011 16:14
Москва не сразу строится Perezz!! Разное 20 21.04.2009 23:52