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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Некорректное поведение _-block

Некорректное поведение _-block

Ответ
Поиск в этой теме
Непрочитано 11.07.2005, 14:00 #1
Некорректное поведение _-block
Кулик Алексей aka kpblc
Moderator
 
LISP, C# (ACAD 200[9,12,13,14])
 
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 40,406

Народ, помогите, крыша плывет, понять не могу, в чем дело. Суть прикола: даю команду _-block, имя есть, выбраны объекты, есть точка вставки, все ок. Жму последний Enter и объекты, попавшие в выбор, удаляются с экрана! При этом потом можно вставить как обычный блок, все нормально, но зачем делать одну работу дважды? Кроме того, если работать через диалог, то все нормально.
Может, какая системная переменная хулиганит? Но какая?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Просмотров: 4684
 
Непрочитано 11.07.2005, 14:07
#2
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Так и должно быть - это старорежимное поведение команды "блок". Используй - "oops" сразу после.
Alaspher вне форума  
 
Автор темы   Непрочитано 11.07.2005, 14:11
#3
Кулик Алексей aka kpblc
Moderator

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


Да дело в том, что у меня рисуется несколько элементов, с которыми оперировать хочется сразу полностью. Гибкость группы предоставлять не хоцца, да и не особо у меня получается с ними что-то...
Придется делать потом _-insert, а жаль.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.07.2005, 14:39
#4
Apelsinov

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


>kpblc
а группы вообще не при чем.
Это , как я понял, все а программе делается? Тогда либо вставлять блок в то же место по -insert , либо делать все вообще по другому через vla-...

в твоем случае лучше просто вставить и не париться
Apelsinov вне форума  
 
Автор темы   Непрочитано 11.07.2005, 15:08
#5
Кулик Алексей aka kpblc
Moderator

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


> Apelsinov: понял, через _-insert и придется.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.07.2005, 16:16
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


kpblc, Alaspher тебе на твой вопрос ответил.
А для чего ты используешь _-block ?
Alan вне форума  
 
Автор темы   Непрочитано 11.07.2005, 16:20
#7
Кулик Алексей aka kpblc
Moderator

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


Да у меня ГП-шники рисуют подъемные краны и пути под них. Естественное желание - указать начало и конец пути, задать там еще несколько параметров и получить уже готовый путь с отрисовкой опасной зоны, конечных стоянок, стопоров и т.п. Вот чтобы оперовали с ним как с единым целым и хочется сделать блок. По-моему, самый простой способ.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 11.07.2005, 18:17
#8
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


В этом случае необходимо использовать не блок, а Анонимный Блок.
Т.е. программно чертишь твои подъемные краны и пути под них, заносишь в набор, и получаешь результат.
Код:
[Выделить все]
;;;--------------------------------------------------------------------;;;
;;;                   Автор: Калашников Евгений                        ;;;
;;;          Технологическое бюро цеха металлоконструкций              ;;;
;;;        ОАО "Западно-Сибирский металлургический комбинат"           ;;;
;;;                         г.Новокузнецк                              ;;;
;;;             E-Mail:  tb5@ugm.zsmk.nvkz.kuzbass.net                 ;;;
;;;--------------------------------------------------------------------;;;


; Функция создания и вставки Анонимного блока из набора объектов
(defun UnBlock (pt ss / blkDat bn count Obj Objd Onjn blkName insDat insName)
    ; pt - точка вставки блока
    ; ss - набор объектов, из которых нужно создать анонимный блок
    ;      Набор объектов должен быть создан командой SSGET или SSADD
    
    (setq blkDat (list (cons 0 "BLOCK") (cons 2 "*Unnn") (cons 10 pt) (cons 70 1)) )
    (setq bn (entmake blkDat))
    
    (setq count (- (sslength ss) 1))
    (while (>= count 0)
        (setq Obj (ssname ss count))
        (setq Objd (entget Obj))
        (entdel Obj)
        (setq Onjn (entmake Objd))
        (setq count (- count 1))
    )
    (setq blkName (entmake '((0 . "ENDBLK")) ))
    (setq insDat (list (cons 0 "INSERT")
		       (cons 2 blkName)
		       (cons 10 pt)
;;;		       (cons 70 1)
		 )
    )
    (setq insName (entmake insDat))
)
Alan вне форума  
 
Непрочитано 11.07.2005, 20:22
#9
Лентяй

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


kpblc, я тэбе дам адын савэт, но ты нэ абыжайса (С). Не выпендривайся, пользуйся командой _BLOCK с диалоговым окном, в коем поставь птичку в боксе "Convert to Block", и будет теебе ЩАСТЬЕ.
Лентяй вне форума  
 
Автор темы   Непрочитано 12.07.2005, 08:03
#10
Кулик Алексей aka kpblc
Moderator

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


> Лентяй : я и не обижаюсь. Если бы такое было можно, обязательно бы пользовался. Но, увы, низзя. Так что приходится в Москву через Баку.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.07.2005, 09:31
#11
Лентяй

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


Тады, канешна, ой. Хотя, если низзя, не очень хотца, то можно.
Лентяй вне форума  
 
Непрочитано 12.07.2005, 09:59
#12
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Лентяй
если низзя, не очень хотца, то можно.
Не всегда.

> kpblc
На странице: http://www.uniip.ru/lib/download/download.html есть моя утиль - "Утилита для создания безымянных блоков, версия: 2.0 (бета)", исходник которой (прилагается) подойдёт тебе процентов на 90, а то и полностью.
Alaspher вне форума  
 
Автор темы   Непрочитано 12.07.2005, 10:19
#13
Кулик Алексей aka kpblc
Moderator

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


Ух ты!
Всем спасибо, тема (пока) закрыта.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.07.2005, 10:29
#14
Apelsinov

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


>ALL

Гопода, простите мою безграмотность, объясните мне:

- что такое безымянные блоки
- какие их отличия от обычных блоков
- в каких случаях оправдано их использование.
- подводные камни
Apelsinov вне форума  
 
Автор темы   Непрочитано 12.07.2005, 10:53
#15
Кулик Алексей aka kpblc
Moderator

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


> Apelsinov : попробую рассказать, как я понимаю их со своей колокольни.
Безымянных блоков, строго говоря, не существует. Фактически это блок с уникальным именем типа *U111. Абослютно одинаковые наборы объектов могут входить в разные блоки с разными именами. Подобные блоки создаются в момент простановки размеров, только имя там *D....
Если проставить размер, а перед указанием точки установки размерной линии отказаться, в базе чертежа будет блок с именем вида *D1234 - это и есть "непроставленный" размер. По крайней мере, на размерах все это легче понять мне было. Удаление примитива "размер" не удаляет такой безымянный блок и, используя некоторые полушаманские методы, можно попытаться восстановить удаленные размеры. Тут есть, конечно, ограничение: блоки (по крайней мере размерные) удаляются в момент выхода из редактирования. Но это уже другой разговор (Это мне рассказал Эдуард, эх-эх-эх, жалко, что он не появляется...)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.07.2005, 10:59
#16
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


Цитата:
Сообщение от Apelsinov
- что такое безымянные блоки
Это блоки имена которых начинаются на "*" (звёздочка), например "*U121". "U" означает - "пользовательский", от - "user".
Цитата:
Сообщение от Apelsinov
- какие их отличия от обычных блоков
Эти блоки не показываются в списке блоков пользователю. Т.е., юзер не может их вставить штатными средствами ACAD'а. Если описание такого блока не используется, оно автоматически вычищается при следующей загрузке рисунка.
Цитата:
Сообщение от Apelsinov
- в каких случаях оправдано их использование.
Когда надо скрыть блок от пользовательских вставок.
Цитата:
Сообщение от Apelsinov
- подводные камни
Блок не виден пользователю в списке блоков, что может его (пользователя) раздражать.
Alaspher вне форума  
 
Автор темы   Непрочитано 12.07.2005, 11:48
#17
Кулик Алексей aka kpblc
Moderator

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


> Alaspher : прислали тут файлик, тьма блоков с именами *X - это что может быть? Файл импортирован из Компаса, криво.
Кстати, через _Insert они все видны были, кажись (но тут не уверен насчет *U-блоков)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.07.2005, 11:54
#18
Alaspher


 
Регистрация: 11.10.2004
e•burg
Сообщений: 755


> kpblc
Вообще: *Dnnn (dimensions), *Xnnn (hatch patterns) - это по докам. А вот чего там Компас мог наворотить..., звиняйте - аллах и тот бессилен...
Alaspher вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Некорректное поведение _-block