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

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

Вращающийся блок

Ответ
Поиск в этой теме
Непрочитано 03.11.2006, 13:09 #1
Вращающийся блок
Dante
 
Николаев
Регистрация: 01.12.2005
Сообщений: 76

Всем здрасте!

Никто, случайно не сталкивался с задачей создания блока который бы поворачивался в зависимости от текущей системы координат?

Поясню:

Нужно для генплана на котором много домов зделать оси так чтобы они были постоянны для всех домов при том что разные дома печатаются как отдельно друг от друга так и всё вместе, т.е. я имею ввиду при компоновке на листе (в пространсве листа) разные дома распологаются по разному соотв. оси соседнего здания (названия осей в кружочках) получаются перевёрнутыми или их нужно дуюлировать в разные слои где отл. только ориентация текста в кружках, а нельзя ли так что бы они кружки с текстом сами поварачивались в зависимости от выбранной системы координат?
Просмотров: 2467
 
Непрочитано 03.11.2006, 13:38
#2
Neznayka


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


МОЖЕт на палитру перетащить и вручную забивать углы каждый раз?
понимаю что что полумера, но я так делаю ибо иного выхода не вижу
Neznayka вне форума  
 
Непрочитано 03.11.2006, 16:09
#3
Jek


 
Регистрация: 18.07.2006
Стольный г. Омск
Сообщений: 56


Если используется 2006 CAD, то можно попробовать помучить динамические блоки. В них существует параметр "Поворот", который можно "прикрутить" к конкретному месту блока.
Jek вне форума  
 
Непрочитано 03.11.2006, 17:41
#4
Jek


 
Регистрация: 18.07.2006
Стольный г. Омск
Сообщений: 56


Как-то так, примерно...
[ATTACH]1162564798.rar[/ATTACH]
Jek вне форума  
 
Автор темы   Непрочитано 03.11.2006, 18:38
#5
Dante


 
Регистрация: 01.12.2005
Николаев
Сообщений: 76


не это не то, каждый блок вращать можно и целиком...
без лиспа ни как
Dante вне форума  
 
Непрочитано 07.11.2006, 08:38
#6
Кулик Алексей aka kpblc
Moderator

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


ИМХО: Попытка создания такого блока может породить несколько проблем типа: в этом ВЭ масштаб 1:1000, а в этом - 1:100 (утрирую, конечно, но тем не менее). А вид-то должен быть одинаков... В общем, я б подумал насчет того, чтоб блок размещать на пространстве листа. А повернуть в таких блоках атрибут уже не особо проблема (ИМХО).
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.11.2006, 10:34
#7
Dante


 
Регистрация: 01.12.2005
Николаев
Сообщений: 76


Цитата:
Сообщение от kpblc
ИМХО: А повернуть в таких блоках атрибут уже не особо проблема (ИМХО).
Да повернуть можно и блок целяком (он же круглый, я имею ввиду кружок с номером оси) но это же нужно зделать на куче блоков - что так тымеать каждый что эдок, хотя можно просто их всех выделить и в пропертиесах поменять угол вставки - иногда помогает
Dante вне форума  
 
Непрочитано 07.11.2006, 11:01
#8
Кулик Алексей aka kpblc
Moderator

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


Стоп-стоп. Тут все по идее будет опделеяться тем, где вставлен блок. Потому как (еще раз повторю) блок может быть вставлен в одном месте, которое 2 раза отображается на одном и том же листе. Под разными углами и в разных масштабах. Если же он вставлен в листе, то просто угол поворота назначается 0 и все
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.11.2006, 14:58
#9
Dante


 
Регистрация: 01.12.2005
Николаев
Сообщений: 76


Ну. Смотри. Блок вчтавляется несколько раз с разными атрибутами, т.е. блок представляет из себя закрашенный кружок с атрибутом (номер оси) по серидине. и таких Блоков много с разными арибутами, но одно хдание рисуется один раз а различные масштабы и положения задаются в пространстве листа. Так что можно по идее выделять их всех и задавать нулевой угол вставки. но Только как зделать это всё програмно: т.е. на кнопку повесить такой скрипт я не знаю. Или вообще наи=писать такой макрос или ещё что то который бы при каждом изменении положения и ориентации ПСК находил все блоки с опр. именем и поворачивал их в ноль
Dante вне форума  
 
Непрочитано 07.11.2006, 15:09
#10
Кулик Алексей aka kpblc
Moderator

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


Тады попробуй запустить такое убоище:
Код:
[Выделить все]
(defun c:attto0 (/                            adoc
                 selset                       _kpblc-block-attr-get-pointer-mask
                 _kpblc-conv-selset-to-ename
                 )
  (defun _kpblc-conv-selset-to-ename (selset)
    (if selset
      (vl-remove-if 'listp (mapcar 'cadr (ssnamex selset)))
      ) ;_ end of if
    ) ;_ end of defun

  (defun _kpblc-block-attr-get-pointer-mask (blk mask /)
    (vl-sort
      (vl-remove-if-not
        '(lambda (x)
           (wcmatch (strcase (vla-get-tagstring x)) (strcase mask))
           ) ;_ end of lambda
        (vlax-safearray->list (vlax-variant-value (vla-getattributes blk)))
        ) ;_ end of vl-remove-if-not
      '(lambda (a b)
         (< (strcase (vla-get-tagstring a)) (strcase (vla-get-tagstring b)))
         ) ;_ end of lambda
      ) ;_ end of vl-sort
    ) ;_ end of defun

  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark adoc)
  (if (setq selset (ssget '((0 . "INSERT") (66 . 1))))
    (foreach blk (_kpblc-conv-selset-to-ename selset)
      (mapcar '(lambda (x) (vla-put-rotation x 0.))
              (_kpblc-block-attr-get-pointer-mask blk "*")
              ) ;_ end of mapcar
      ) ;_ end of foreach
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
Код (пока) впрямую не учитывает не мировую систему вставки блока. Так что возможно, что будут неправильности в работе. Если что, сообщи.
__________________

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


 
Регистрация: 01.12.2005
Николаев
Сообщений: 76


данке! Буду испытавать.

PS а где вообще в сети можно и можно ли нормальной докой русскоязычной по лиспу разжится?
Dante вне форума  
 
Непрочитано 07.11.2006, 15:35
#12
Кулик Алексей aka kpblc
Moderator

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


http://cad.dp.ua/doc2.php#part1
http://my.opera.com/kpblc/blog/show.dml/245799
Только не надо расценивать вторую ссылку как попытку накрутить счетчик у себя на блоге
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Вращающийся блок

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

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