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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Небыстрый "Быстрый выбор" !

Небыстрый "Быстрый выбор" !

Ответ
Поиск в этой теме
Непрочитано 06.06.2004, 10:27
Небыстрый "Быстрый выбор" !
Psip!
 
Сообщений: n/a

Проблема:
на большом чертеже нужно найти некоторые объекты, к примеру текст "02в", "03в", "02d" ну и так далее. Пользуюсь для этого "Быстрым выбором", а именно Сервис\Быстрый выбот\затем из падающего меню нахожу "Текст", затем "Содержимое", "=равно", и только затем пишу нужный мне текст!
Потом повторяю все операции снова, потом снова, потом снова, и как-то хочется убыстрить выбор!!! Хотя бы до возможности сохранения в менюшке предыдущего запроса. А в идеале - до написания нескольких макросов для поиска нескольких разных объектов.
Гуру, отзовитесь! Need help!
Просмотров: 14788
 
Непрочитано 19.06.2009, 14:40
#41
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от zenon Посмотреть сообщение
в модели _draworder затем в каждом листе _regenall
луки, а чтобы все объекты перенести с листов в модель воспользуйтесь командой CHSPACE из Express Tools.
 
 
Непрочитано 19.06.2009, 14:45
#42
vasilyis

Инженер
 
Регистрация: 05.05.2008
Москва
Сообщений: 1,074


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
луки, а чтобы все объекты перенести с листов в модель воспользуйтесь командой CHSPACE из Express Tools.
Это можно также сделать, если имеется АКАД 2010-й. В ПЛ нажать ПКМ на вкладке листа и выбрать соответствующую команду.
__________________
Рапик отдай папе кость, Ты ведь не собака. /анекдот АРМЯНСКОГО РАДИО/

Последний раз редактировалось vasilyis, 19.06.2009 в 14:52.
vasilyis вне форума  
 
Непрочитано 19.06.2009, 14:51
#43
AlphaGeo


 
Сообщений: n/a


vasilyis, у меня 2008 и команда СМЕНАПРОСТР (_CHSPACE) уже даже не в Expess'ax, а в самом AutoCAD'e. В Expess Tools, я думаю, она еще раньше появилась.
 
 
Непрочитано 19.06.2009, 15:07
#44
луки


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


Цитата:
Сообщение от zenon Посмотреть сообщение
в модели _draworder затем в каждом листе _regenall
Спасибо за ответ, но проблема в том, что мы чертим электрические схемы сразу на листах (layout), не используя пространство модели. Это конечно, на мой взгляд, очень не удобно, но так сложилось задолго до моего появления в этой фирме. Может быть кто-нибудь знает как одной командой выделить все элементы одного типа на всех листах (элементы начерчены на листах, а не в модели)
PS autocad 2006
луки вне форума  
 
Непрочитано 19.06.2009, 15:16
#45
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,335
<phrase 1=


Цитата:
Сообщение от луки Посмотреть сообщение
Спасибо за ответ, но проблема в том, что мы чертим электрические схемы сразу на листах (layout), не используя пространство модели.

Цитата:
Сообщение от луки Посмотреть сообщение
Это конечно, на мой взгляд, очень не удобно, но так сложилось задолго до моего появления в этой фирме.
это не просто неудобно это называется полным извращением.
Какой смысл чертить в layout если при этом не используются его преимущества, лучше уж сразу чертить в модели.
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 19.06.2009, 20:13
#46
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,453


Ну можно выделить элементы во всех листах, но только программно и соответственно нужную команду тоже надо применять программно, но это все не про вас раз уж вы чертите все в листах.
Sleekka вне форума  
 
Непрочитано 20.06.2009, 17:13
#47
луки


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


Спасибо всем, кто давал советы. Немного поломав голову, нашел решение своей задачи , случайно обнаружив в HELP команду -layout и позаимствовав идею у одного из читателей форума, с временной заморозкой слоев. Мне нужно было решить проблему с порядком прорисовки элементов, элементы одного из слоев должны быть "поверх" всех остальных, и это, как мне кажется, вышло. Макрос листает листы (layout), которые в нашей компании называют просто числами, в порядке следования листов. Привел лишь часть макроса, чтобы не загромождать топик, ведь элементы макрокоманды однотипны:
Код:
[Выделить все]
^C^C_layout;_set;1;_-layer;_set;0;_freeze;*;_thaw;BL;;_select;all;;_draworder;_previous;;_front;_-layer;thaw;*;;^C^C_layout;_set;2;_-layer;_set;0;_freeze;*;_thaw;BL;;_select;all;;_draworder;_previous;;_front;_-layer;thaw;*;
Конечно очень топорно, но ничего лучшего придумать не вышло, поскольку не удалось найти в языке макрокоманд какой-нибудь замены оператору for.
PS прошу помидорками не кидаться, я только пару недель как начал изучать макрокоманды, а лисп не знаю совсем
PPS здесь приведен макрос для изменения порядка прорисовки, но используя этот подход можно вносить разнообразные однотипные изменения для элементов принадлежащих определенному слою.

Последний раз редактировалось луки, 20.06.2009 в 17:20.
луки вне форума  
 
Непрочитано 20.06.2009, 18:59
#48
Sleekka

-
 
Регистрация: 24.07.2005
Москва
Сообщений: 1,453


молодец - так держать
Sleekka вне форума  
 
Непрочитано 14.08.2009, 16:05
#49
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


привет всем! )))
уфф ... прочитал вроде всё...
но моего вопроса тут вроде не возникло... про имя блока
есть (assoc 2 entget) - это имя блока
а есть vla-get-EffectiveName
вот у меня две эти хрени не совпадают ... ну второй еще адекватный, а вот assoc 2 пишет *Unnn
вот собственно вопрос :
какой фильтр для ssget написать чтоб выбрать все блоки, у которых совпадает vla-get-EffectiveName
... и вообще можно ли так сделать набор?
kakt00z вне форума  
 
Непрочитано 14.08.2009, 16:29
#50
Кулик Алексей aka kpblc
Moderator

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


Выбрать все блоки и потом последовательно исключать ненужные.
__________________

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

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Алексей, спасиб!!!
как всегда, всё проще чем мне кажется ))
ЗЫ: может какие замечания по коду будут?
вот чё получилось:
Код:
[Выделить все]
(defun c:bl_pick (/ ss ss1 ent bl-name i)
  (setq	bl-name	(vla-get-EffectiveName
		  (vlax-ename->vla-object
		    (car (entsel "Какие блоки выделить?"))
		  )
		)
  ); setq
  (setq ss (ssget "_X" '((0 . "INSERT"))))
  (setq	i   0
	ss1 (ssadd)
  )
  (repeat (sslength ss)
    (if	(= bl-name
	   (vla-get-EffectiveName
	     (vlax-ename->vla-object (setq ent (ssname ss i)))
	   )
	)
      (setq ss1 (ssadd ent ss1))
    );if
    (setq i (1+ i))
  );repeat
  (sssetfirst nil ss1)
);defun
kakt00z вне форума  
 
Непрочитано 18.08.2009, 15:21
#52
Кулик Алексей aka kpblc
Moderator

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


Я бы еще попутно удалил бы (принудительно) ss - так, для гарантии. Либо использовал бы ssdel для удаления примитивов из набора.
Да, и вот еще: зачем выполнять выборку по всему файлу? Может, человеку понадобится как-то по-другому? Я бы снял "_X" в ssget
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.08.2009, 01:37
#53
kakt00z

инженер-проектировщик КИПиА
 
Регистрация: 30.08.2008
Минск
Сообщений: 159


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
...Либо использовал бы ssdel для удаления примитивов из набора.
а не поплывет, если удалять примитивы из ss в цикле?, т.е.
если писать (setq ss (ssdel (ssname ent i) ss)) - это ж будет новый набор без примитива ent, а щетчик то идет тот же.. ? или я не прав?
kakt00z вне форума  
 
Непрочитано 19.08.2009, 02:14
#54
Кулик Алексей aka kpblc
Moderator

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


Я говорил про нечто типа
Код:
[Выделить все]
(defun c:block-pick (/ fun_conv-ent-to-vla fun_get-ent-name base selset count ent)

  (defun fun_conv-ent-to-vla (ent)
    (cond
      ((= (type ent) 'ename) (vlax-ename->vla-object ent))
      ((= (type ent) 'vla-object) ent)
      ) ;_ end of cond
    ) ;_ end of defun

  (defun fun_get-ent-name (ent)
    (setq ent (fun_conv-ent-to-vla ent))
    (cond
      ((vlax-property-available-p ent 'effectivename)
       (vla-get-effectivename ent)
       )
      ((vlax-property-available-p ent 'name)
       (vla-get-name ent)
       )
      ) ;_ end of cond
    ) ;_ end of defun

  (vl-load-com)
  (if (= (type (setq base (vl-catch-all-apply
                            (function
                              (lambda ()
                                (ssname (ssget "_+.:S:E" '((0 . "INSERT"))) 0)
                                ) ;_ end of lambda
                              ) ;_ end of function
                            ) ;_ end of vl-catch-all-apply
                     ) ;_ end of setq
               ) ;_ end of type
         'ename
         ) ;_ end of =
    (progn
      (setq selset (ssget '((0 . "INSERT")))
            base   (fun_get-ent-name base)
            count  0
            ) ;_ end of setq
      (repeat (sslength selset)
        (if (/= (fun_get-ent-name (setq ent (ssname selset count))) base)
          (progn
            (ssdel ent selset)
            (setq count (1- count))
            ) ;_ end of progn
          ) ;_ end of if
        (setq count (1+ count))
        ) ;_ end of repeat
      (sssetfirst selset selset)
      ) ;_ end of progn
    ) ;_ end of if
  ) ;_ end of defun
__________________

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


 
Регистрация: 24.05.2009
Екатеринбург
Сообщений: 86


Выбор примитивов по образцу - команда _SelSim
Команда выбора по образцу появлется в контекстном меню.
http://www.caduser.ru/forum/index.ph...8009&PAGEN_1=4
kheylan вне форума  
 
Непрочитано 26.08.2011, 08:26
#56
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 794


Граждане приветствую.
Можно ли сделать так чтобы QSelect сохранял предыдущий выбор? Т.е. мне нужно выбрать мультивыноски (я использую их для простановки позиций) в диапазоне от 14 до 31.
Для этого я нужно проделать относительно долгую операцию. КюСелект – мультивыноска - содержимое-поиск по глобальным символам- вбить значение диапазона.
Это нужно проделывать все заново при новом выборе. Допустим мне нужно изменить диапазон. Можно ли как то сделать, чтобы настройки предыдущего выбора сохранялись?
Аккад 2011
Astartes вне форума  
 
Непрочитано 26.08.2011, 10:42
#57
CaMoCAD


 
Регистрация: 25.03.2008
Зелик
Сообщений: 1,351
<phrase 1= Отправить сообщение для CaMoCAD с помощью MSN


Цитата:
Сообщение от Astartes Посмотреть сообщение
Можно ли как то сделать, чтобы настройки предыдущего выбора сохранялись?
Если нет желания/возможности использовать LISP, то могут пригодиться группы (group)
__________________
* Буква "ё" не используется в тексте исключительно в связи с требованиями ЕСКД.
CaMoCAD вне форума  
 
Непрочитано 26.08.2011, 11:46
#58
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 794


CaMoCAD, Желание есть! Возможности тоже есть (всмысле Акад полный не ЛТ). А вот знаний лиспа нету. Или есть уже готовый такой лисп?
Astartes вне форума  
 
Непрочитано 07.06.2019, 13:57
#59
allar8


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


Нашел зачетную макрос команду для быстрого выбора мультивыносок
^C^C(defun mfunc(/ selset) (if (setq selset (ssget '((0 . "MULTILEADER")))) (sssetfirst selset selset)));(mfunc);
Попробовал слелать для текста
^C^C(defun mfunc(/ selset) (if (setq selset (ssget '((0 . "Text")))) (sssetfirst selset selset)));(mfunc);
Работает
Думаю можно с ней экспериментировать

Для Мтекста тож работает
^C^C(defun mfunc(/ selset) (if (setq selset (ssget '((0 . "MText")))) (sssetfirst selset selset)));(mfunc);

А вот ишо бы для блоков ее реализовать
Не подскажите случаем кто нить как на английском наименование примитива "Вхождение блока". Точнее что высвечивается при выборе блока в свойствах
у пользователей английсих версий автокада вот тут (см. вложение)

Ну и не плохо бы и для остальных наиболее частых примитивов (Отрезок, полилиния, Круг, и т.п.)
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 6
Размер:	18.9 Кб
ID:	215031  

Последний раз редактировалось allar8, 07.06.2019 в 14:32.
allar8 на форуме  
 
Непрочитано 07.06.2019, 14:37
#60
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 6,618


DXF код 0 - вставка блока "INSERT"
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Небыстрый "Быстрый выбор" !

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

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