Нужно одним махом созадать набор UCS (2D).
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужно одним махом созадать набор UCS (2D).

Нужно одним махом созадать набор UCS (2D).

Ответ
Поиск в этой теме
Непрочитано 21.11.2005, 06:51 #1
Нужно одним махом созадать набор UCS (2D).
B2Slow
 
Иркутск
Регистрация: 20.06.2005
Сообщений: 57

Нужно одним кликом создать набор UCS, повернутых вокруг Z на 90 град., с шагом 10 градусов и одновременно проименовать их.
Можно ли сделать это макросом, т.к. придется проделывать это для каждого файла целому отделу?..
И еще бы, так же легким движением руки (можно в том же макросе) установить во всех layout-ах UCSFOLLOW=1. Напишите кому не трудно, на худой конец лиспом.
Заранее извиняюсь за потребительское отношение, освоить лисп абсолютно не хватает времени.
Просмотров: 3977
 
Непрочитано 21.11.2005, 12:43
#2
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


B2Slow, держи прогу для размножения UCS-ов. Обработку ошибок писать было лень, Apelsinov в случае чего - добавит.
Код:
[Выделить все]
(defun C:ucs (/ n)
  (setq adoc (vla-get-ActiveDocument (vlax-get-acad-object))
        css (vla-get-UserCoordinateSystems adoc)
        n 1)
  (foreach x (mapcar '(lambda (x) (/ (* pi x) 180)) '(10 20 30 40 50 60 70 80 90))
    (vla-add css (vlax-3d-point '(0.0 0.0 0.0))
      (vlax-3d-point (list (cos x) (sin x) 0.0))
      (vlax-3d-point (list (* -1 (sin x)) (cos x) 0.0))
      (strcat "UCS" (itoa n)))
    (setq n (1+ n)))
);end
Лентяй вне форума  
 
Непрочитано 21.11.2005, 14:09
#3
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


:shock:
Apelsinov вне форума  
 
Непрочитано 21.11.2005, 21:09
#4
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Чего :shock: ? Нечего тут делать большие глаза, панимаш. Готовь лучше сачок с неводом всяко-разное отлавливать, раз люди просют :!:
Лентяй вне форума  
 
Автор темы   Непрочитано 22.11.2005, 04:23
#5
B2Slow


 
Регистрация: 20.06.2005
Иркутск
Сообщений: 57


Спасибо. Оно еще и работает!!!:shock:
Только UCS - это ведь название стандартной акадовской команды?.. Пришлось переименовывать. И эта.. с UCSFOLLOW никак?
B2Slow вне форума  
 
Непрочитано 22.11.2005, 10:37
#6
Apelsinov

Проектировщик ВК. LISP-любитель.
 
Регистрация: 15.12.2003
Москва
Сообщений: 1,202
<phrase 1=


Лентяй
А фигли тут ловить-то?
Apelsinov вне форума  
 
Непрочитано 22.11.2005, 10:39
#7
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
B2Slow: Только UCS - это ведь название стандартной акадовской команды?
Незачем это баловство . UCS используется как строкоы - фрагмент имени новой координатной системы. Так что никакого смешения имен не происходит.
Цитата:
И эта.. с UCSFOLLOW никак?
Пока чой-то никак. Может после озарение, тскть, и снизойдет, а пока... Пусть теперь кто другой мается. У нас вона - новые гуры появились...
Лентяй вне форума  
 
Автор темы   Непрочитано 22.11.2005, 10:57
#8
B2Slow


 
Регистрация: 20.06.2005
Иркутск
Сообщений: 57


Лентяй, тут еще тех условия немного поменялись Понадобился угол от 270 до 90 (1 и 4 четверть). Помоги пожалуйста с проименованием. Углы вроде как добавил в список (
Код:
[Выделить все]
mapcar '(lambda (x) (/ (* pi x) 180)) '(10 20 30 40 50 60 70 80 90 -10 -20 -30 -40 -50 -60 -70 -80 -90)
, а вот именуются они по порядку. Буду признателен, если привяжешь название UCS к вычисляемому углу.
B2Slow вне форума  
 
Автор темы   Непрочитано 22.11.2005, 11:08
#9
B2Slow


 
Регистрация: 20.06.2005
Иркутск
Сообщений: 57


Цитата:
Цитата:
B2Slow: Только UCS - это ведь название стандартной акадовской команды?
Незачем это баловство . UCS используется как строкоы - фрагмент имени новой координатной системы. Так что никакого смешения имен не происходит.
Чегой-то я тогда недопонимаю.. А запускать тогда как?! Я всегда запускал именем , которое стоит после defun C:
Аааа, ты имеешь в виду тот, который в названии ПСК? Не, он не беспокоит. Я про тот, что в начале..
:?:
Цитата:
Сообщение от Лентяй
Может после озарение, тскть, и снизойдет, а пока... Пусть теперь кто другой мается. У нас вона - новые гуры появились...
Видимо, другие гуры, судя по твоим словам, уже на недосягаемом уровне. Отлавливают баги в чужих кодах
B2Slow вне форума  
 
Непрочитано 22.11.2005, 20:19
#10
Лентяй

Project Engineer
 
Регистрация: 05.01.2005
Лос Анджелес
Сообщений: 1,392


Цитата:
B2Slow: Буду признателен, если привяжешь название UCS к вычисляемому углу.
Замени строку, начинающуюся с (strcat "UCS" на
Код:
[Выделить все]
(strcat "UCS" (itoa n) "(" (rtos (* (/ x pi) 180) 5) ")"))
и будет тебе с начальникон твоим щастье - с порядковым номером и углом вместе.
Лентяй вне форума  
 
Автор темы   Непрочитано 23.11.2005, 04:21
#11
B2Slow


 
Регистрация: 20.06.2005
Иркутск
Сообщений: 57


Цитата:
Замени строку, начинающуюся с (strcat "UCS" на
Код:
(strcat "UCS" (itoa n) "(" (rtos (* (/ x pi) 180) 5) ")"))
и будет тебе с начальникон твоим щастье - с порядковым номером и углом вместе.
АМИНЬ.. :P

Спасибо за помощь.
B2Slow вне форума  
 
Автор темы   Непрочитано 23.11.2005, 12:09
#12
B2Slow


 
Регистрация: 20.06.2005
Иркутск
Сообщений: 57


Лентяяаааааай!!
А это в 2002 что, не будет работать?!:shock:
B2Slow вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нужно одним махом созадать набор UCS (2D).