|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Нарисовать дугу на окружности с радиусом этой окружности
Регистрация: 11.07.2022
Сообщений: 756
|
||
Просмотров: 4928
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
В r не getpoint засовывай, а (car (entsel)) - там из DXF и получишь и центр, и радиус.
Правда, дугу ты построишь немного "не ту", т.к. не факт что точки pt1 и pt2 будут лежать на окружности. Да и привязки могут сработать
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
(setq r (car (entsel "\nSelect circle : ")))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Построить - вряд ли. Программно создать - запросто.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Я и пытаюсь программно:
Код:
Последний раз редактировалось Ingpro, 02.04.2024 в 12:24. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Это - командные методы. Я говорю про entmake / entmakex или vla-методах
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Цитата:
А размер дуги ставится после указания на дугу, т.е. не запоминает (entlast?)... Нижний код рисует дугу (но криво) и ставит размер дуги (предлагает выбрать дугу) Код:
Последний раз редактировалось Ingpro, 02.04.2024 в 22:09. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Ну так там не зря комментарии-то стоят )
Ну хорошо, попробуй убрать сортировку, но за результаты я отвечать не буду. ПыСы возможно, тебе стоит заглянуть в тему "Научите лиспу на примере"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Код из поста #10, добавлено в конце (command "_dimarc")
Код:
"Команда: ARCR2_DIM Select circle <Cancel> : First point <Cancel> : End point <Cancel> : _dimarc Выберите дугу или дуговой сегмент полилинии: nil Выберите дугу или дуговой сегмент полилинии: Положение размера длины дуги или [Мтекст/Текст/Угол/Частичный/Выноска]: Размерный текст = 1319" Возможно ли проставить размер без указания на дугу? И как можно подправить отрисовку дуги с правой стороны? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Посмотри на мои закомментированные варианты. Попробуй хотя б один из них.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Гидрит твою налево сказала королева. Раскомментируй строку - либо первую с command, либо вторую.
Подсказка: комментарий начинается с символа ";", о чем прямо говорит разметка на форуме.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Ну в таком случае DWF Reference в руки и создавать размер через тот же entmake / entmakex. ИМХО данных должно быть достаточно, кроме точки простановки размерной линии. Но ее и тем же getpoint можно получить ИМХО.
----- добавлено через 23 сек. ----- Не люблю я командные методы, хоть тресни.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Тест кода из поста #10
Если раскомментировать эту строку (command "_.dimarc" "_none" (entlast)) First point <Cancel> : End point <Cancel> : _.dimarc Выберите дугу или дуговой сегмент полилинии: _none Команда: nil Если раскомментировать эту строку (command "_.dimarc" "_none" arc) Select circle <Cancel> : First point <Cancel> : End point <Cancel> : _.dimarc Выберите дугу или дуговой сегмент полилинии: _none Команда: nil ;;(command "_.dimarc" "_none" arc) ;не ставит рзм дуги ;;(command "_.dimarc" "_none" (entlast)) ;не ставит рзм дуги ;;(command "_dimarc" "arc" (entlast)) ;ставит рзм дуги, но просит выбрать дугу ;;(command "_dimarc" "arc" "_none" (entlast)) ;ставит рзм дуги, но просит выбрать дугу размер дуги ставится после указания на дугу, т.е. не запоминает (entlast?)... |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
|
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
|
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Если эту строку добавить в код Алексея, см. пост #10, то размер дуги проставляется автоматом, но прямо по дуге без отступа, потом ручками отодвигать...
И код из поста #10 не строит дугу в правой части окружности - дуга уходит влево. У меня получился код, который делает почти то, что мне нужно, кроме автопростановки размера дуги: Код:
заменить (command "_dimarc") в коде #23 , то в ком. строке такая запись Команда: _.dimarc Выберите дугу или дуговой сегмент полилинии: Команда: _none Неизвестная команда "NONE". и размер не строится... Последний раз редактировалось Ingpro, 03.04.2024 в 20:46. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
name02, спасибо за корректировку, но размер ставится прямо на дугу, однако...
Нужно каким-то образом добавить в код возможность указания местоположения размера дуги. Что-то типа: (getpoint b "\n Местоположение размера длины дуги: ")) Или задать фиксированный отступ размерной линии от дуги, например, 50. Как это можно правильно добавить? Последний раз редактировалось Ingpro, 03.04.2024 в 15:51. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
name02, спасибо большое, теперь код работает так, как хотелось - строит дугу на окружности по 2-м точкам и ставит размер дуги.
Думаю лучше поменять местами строки 5 и 6, чтобы сначала указать первую и конечную точки, а затем указать на оружность между этими точками: Код:
Изначально планировалось построить дуговой размер на окружности между двумя точками, но так как дуговой размер предполагает наличие дуги, ничего лучшего не придумалось, как нарисовать для этого дугу, а потом применить дуговой размер. Вариант с рус. комментами: Код:
Последний раз редактировалось Ingpro, 03.04.2024 в 19:20. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
koMon, спасибо,
но что-то пошло не так в коде #36 ; ошибка: неверно сформированный список на входе Неизвестная команда "DIM_ARC" А этот код предполагает дуговой размер на окружности и + на дуге? "\nВыберите окружность/дугу: Или рисует дугу на окружности и ставит размер? А эта строка отвечает за положение размерного текста? Код:
Как в стандартной команде "Длина дуги"... Последний раз редактировалось Ingpro, 06.04.2024 в 15:36. |
|||
![]() |
|
||||
подправил
----- добавлено через ~31 мин. ----- аналогично. закомментировал положение текста по курсору.
__________________
K Lisp Последний раз редактировалось koMon, 06.04.2024 в 18:10. |
||||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
Спасибо большое! Теперь четко работает! Спасибо, что раскрасили дугу цветом 230, удобно...
И на дуге можно нарисовать дугу с таким же радиусом. koMon, если не трудно, можно ещё вариант без простановки размера, только дуга на окружности... Почему-то иногда происходит сбой в программе, дуга чертится в одну сторону, а размер - в другую сторону и садится прямо на окружность?... см. рис.2. Сбой происходит, если ПСК не МИР, а так всё нормально. Последний раз редактировалось Ingpro, 06.04.2024 в 21:29. |
|||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
koMon, thank you very much! Проверено с разными ПСК, отлично работает!
"<ЛКМ> дуга + дуговой размер, <ПКМ> дуга" - хорошо, что можно выбрать... Я пытаюсь добавить вес линии (дуги) 0.5 после строки Код:
Код:
Код:
Последний раз редактировалось Ingpro, 07.04.2024 в 22:46. |
|||
![]() |
|
||||
Регистрация: 10.01.2020
Сообщений: 415
|
Это автокадовская системная константа, определяющая вес линии https://help.autodesk.com/view/ACD/2...D-80E35EFE55D3
Последний раз редактировалось name02, 08.04.2024 в 07:36. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Конечно работает. Но использовать "магические" числа / строки так себе затея.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
подобные константы созданы для мнемонического запоминания/понимания их назначения. использование их или присвоенных им значений не имеет никакой разницы на финальный результат.
__________________
K Lisp Последний раз редактировалось koMon, 08.04.2024 в 12:49. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
Offtop:
Цитата:
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
----- добавлено через ~1 мин. ----- соглашусь применительно не к этому моменту.
__________________
K Lisp Последний раз редактировалось koMon, 08.04.2024 в 14:32. |
||||
![]() |
|
||||
Регистрация: 11.07.2022
Сообщений: 756
|
K Lisp Почему-то у меня выдает ошибку:
CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '141074-483-2a00:1e10:23b:e-20240516' for key 'blog_id' Мне удалось один раз зайти в блог и потестить dim_arc "с добавленной возможностью выбора дугового сегмента полилинии и переключение по пробелу привязки размерного текста к курсору или к середине дугового размера". Очень удобные добавления, спасибо, koMon! Если проблемы с блогом на сайте, может быть есть смысл добавить этот код в эту тему? см. изображение: сюда по ссылке K Lisp можно зайти, а если нажать ссылку Дуга, размер дуги на дуге, окружности, дуговом сегменте полилинии. выдает ошибку... Последний раз редактировалось Ingpro, 16.05.2024 в 10:34. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сохранить Компас файл в pdf чтобы окружности отображались как окружности, а не многоугольники? | Ro-man | Компас | 2 | 13.05.2022 08:39 |
Сопряжение точки и окружности | egorus2014 | AutoCAD | 7 | 02.04.2022 21:33 |
Как построить касательную к окружности? | prajdziswet | LISP | 28 | 09.01.2020 13:20 |
Как нарисовать дугу определённой длины | Jerald | AutoCAD | 11 | 09.11.2018 17:52 |
окружности под любым углом | САМОДЕЛ | AutoCAD | 7 | 17.02.2009 11:55 |