|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Помогите! Рисование осевых...
BSUIR
Регистрация: 28.02.2007
Сообщений: 5
|
||
Просмотров: 3874
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
http://my.opera.com/kpblc/blog/show.dml/299368
И внутри страницы поиск по слову "осев"
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 24.10.2005
Новокузнецк
Сообщений: 1,124
![]() |
я динамическим блоком сделал и особо не парюсь... можно изменять диаметр кружка номер, выносить на нужную длину осевую, смещать номер в сторону, поворачивать на любой угол и как бонус можно выбирать маркер оси существующий или нет...
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Дин.блок только для версий от 2006 и выше. А версия у автора неизвестна.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Машиностроение, Проектирование Регистрация: 15.09.2003
Москва
Сообщений: 1,113
![]() |
Цитата:
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Слова нет, а поиск есть
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Конструктор по сути (машиностроитель) Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391
|
крыс, потрясающе! Я и не знал что столько всего есть у тя. Да ещё и буржуев учишь тоже. Жаль времени нет совсем, а то бы всё скачал и настроил у ся. Была бы тут репутация, пунктов на 10 бы поднял...
__________________
Век живи, век учись - ... |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Я еще и на машинке могу, и крестиком (с)
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 28.02.2007
BSUIR
Сообщений: 5
![]() |
Не судите предвзято... Я в лиспе как обезьяна) :roll: Просто решил в меру своих возможностей как то справиться с этой проблемкой)
А вот в строчке (setq cir (entget (ssname ss i))) ошибся - вместо i у меня был 0 - просто чтобы не париться сюда выкладывал только основу проги (удалил счетчик - а i поменять забыл) Но все же спасибо "Кулик Алексей aka kpblc" за данное решение. Выручил! :P А сам пишел к выводу, что надо учить лисп))) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,411
|
Я когда по ПМ отвечал, я не проверял командные режимы. Поэтому я не был готов к тому, что "_.dimcenter" в лисповом режиме "некорректно" работает. Возможно, что это особенность наподобие "_.-block", но от этого не легче. Говорю сразу - создавал временный набор, подсвечивал его - по фигу. Не работает. Замена (command) на (vl-cmdf) тоже успеха не принесла.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 28.02.2007
BSUIR
Сообщений: 5
![]() |
А может попробовать выделять объект (окружность) с помощью entsel а потом каким то образом оттуда выдирать (из свойств объекта) радиус... Тогда должен будет работать command "_.dimcen" Я пробовал по разному - но не получается радиус найти, строчка (cdr(assoc 40 entget(от выбранного объекта))) выдает ошибку...
(defun a () (setq ss (entsel "/nViberite krug")) (command "_.dimcenter" 160) (command "_.linetype" "_s" "center" "") (command "_.dimcen" ss) (command "_.linetype" "_s" "bylayer" "") ) Кароче надо как то из переменной krug вычислить радиус и заменить 160 на этот радиус +4... Предлагаем решения... :roll: |
|||
![]() |
|
||||
Регистрация: 28.02.2007
BSUIR
Сообщений: 5
![]() |
ТА-ДА!!! :P
Придумал немного измененный вариант решения. Смысл как и раньше не менялся. Просто фигуру изначальную выбирал через точку окружности, которую вычислял из радиуса и координат центра... Вроде попроще чем те, которые выложены на http://my.opera.com/kpblc/blog/show.dml/299368 Код: (defun new () (setq ss (ssget)) (setq cir (entget (ssname ss 0))) (setq radius (cdr (assoc 40 cir))) (setq x (car(cdr (assoc 10 cir)))) (setq y (car(cdr(cdr (assoc 10 cir))))) (setq z (car(cdr(cdr(cdr (assoc 10 cir)))))) (setq to4ka (list (+ x radius) y z)) (command "_.dimcen" (+ radius 4)) (command "_.linetype" "у" "center" "") (command "_.dimcenter" to4ka) (command "_.linetype" "у" "bylayer" "") ) ![]() |
|||
![]() |
|
||||
Регистрация: 28.02.2007
BSUIR
Сообщений: 5
![]() |
То же самое но только для нескольких объектов...
(defun osi () (setq ss (ssget)) (setq i 0 l (sslength ss) sum 0 ) (while (< i l) (setq cir (entget (ssname ss i))) (setq radius (cdr (assoc 40 cir))) (setq x (car(cdr (assoc 10 cir)))) (setq y (car(cdr(cdr (assoc 10 cir))))) (setq z (car(cdr(cdr(cdr (assoc 10 cir)))))) (setq to4ka (list (+ x radius) y z)) (command "_.dimcen" (+ radius 4)) (command "_.linetype" "ó" "center" "") (command "_.dimcenter" to4ka) (command "_.linetype" "ó" "bylayer" "") (setq i (+ i 1)) ) ) А может кто подскажет как в самом тексте программы настраивать свойства линии (в данном случае CENTER). Предлагаем решения |
|||
![]() |
|
||||
CAD Operator Регистрация: 01.11.2005
Samara-Gorodok
Сообщений: 389
|
Цитата:
__________________
АвтоКАД это не только электронный кульман, Но и великий ГЕМОР |
|||
![]() |