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

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

Мои динамические блоки

Закрытая тема
Поиск в этой теме
Непрочитано 07.11.2006, 15:22
Мои динамические блоки
Shoorup
 
Минск
Регистрация: 16.09.2006
Сообщений: 1,587

Прогресс и опыт не стоит на месте. А по этому хочу поделиться своим опытом по созданию динамических блоков и конечно посмотреть на чужой.
Динамические блоки очень мощный инструмент, а умело им пользоваться далеко не каждый умеет. Уверен большинство идей (ухищрений, модификаций, построений) можно применить и для своей работы тем самым свести к минимуму однотонную и трудоемкую работу => что я и предлагаю на данной теме.
---
Дополнительно (спасибо VVA):
В 2010-2011-2012 в редакторе блоков при настройках по умолчанию нельзя добавлять к операциям некоторые вещи, например к операции Flip добавить Strech и т.д.
Описание проблемы:
http://forum.dwg.ru/showpost.php?p=7...postcount=2666
Решение:
http://forum.dwg.ru/showpost.php?p=7...postcount=2679
----
Тема закрыта, продолжение: http://forum.dwg.ru/showthread.php?t=66721
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Кулик Алексей aka kpblc, 09.11.2011 в 14:01.
Просмотров: 1891578
 
Непрочитано 11.11.2009, 12:18
#1481
zenon

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


cancercat, пробуй
отметка.dwg
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 11.11.2009, 12:18
#1482
avrubtsov

Инженер-конструктор
 
Регистрация: 25.08.2009
Красноярск
Сообщений: 470
Отправить сообщение для avrubtsov с помощью Skype™


ВОТ!
Вложения
Тип файла: dwg
DWG 2007
отметка.dwg (93.4 Кб, 3862 просмотров)
avrubtsov вне форума  
 
Непрочитано 11.11.2009, 13:16
#1483
Aqualung

машиностроитель
 
Регистрация: 24.08.2009
Тольятти
Сообщений: 259


Цитата:
Сообщение от Aqualung Посмотреть сообщение
можно ли как то заставить Alignment Parameter в блоке выравниваться и по линии размера? Почему то игнорирует он размерную линию. (акад 2009 en)
актуально и поныне)
__________________
рисую чертежи... можно акварелью
Aqualung вне форума  
 
Непрочитано 11.11.2009, 13:29
#1484
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


zenon, не получилось... По-прежнему выдаются миллиметры.
avrubtsov, получилось! Круто!
Если не секрет, как это получилось?
P.S. Однако, при вставке блока на другой чертёж по-прежнему выдаются миллиметры. И чтобы отметка читалась, приходится увеличивать её не в 500 раз, как обычно, а в 500 000. Что бы это значило? _dist выдаёт размеры как и должно быть...

Последний раз редактировалось cancercat, 11.11.2009 в 13:49.
cancercat вне форума  
 
Непрочитано 11.11.2009, 17:03
#1485
mey

к годам так 35, начну называть себя Архитектор
 
Регистрация: 20.08.2007
UKRAЇNA Dnipro
Сообщений: 200
<phrase 1= Отправить сообщение для mey с помощью Skype™


Цитата:
Сообщение от avrubtsov Посмотреть сообщение
ВОТ!
есть маленькое НО, но в целом работает

ага СаМоCAD уже ответил хотя у меня немного подругому
вот то что я хотел,, а все типоразмеры у меня в ворде,,

avrubtsov, CaMoCAD, zenon, большее спасибо ,,,
mey вне форума  
 
Непрочитано 11.11.2009, 17:58
#1486
avrubtsov

Инженер-конструктор
 
Регистрация: 25.08.2009
Красноярск
Сообщений: 470
Отправить сообщение для avrubtsov с помощью Skype™


cancercat, тут небольшая инструкция

правда с самим масштабом что-то не то в 1000 раз увеличить блок чтоли нужно?!

и еще....вставляю в другой чертеж - вроде все нормально
Вложения
Тип файла: doc отметка.doc (256.5 Кб, 202 просмотров)
avrubtsov вне форума  
 
Непрочитано 13.11.2009, 14:22
#1487
Cow-Brat

специалист по CadWork
 
Регистрация: 12.11.2009
СПб
Сообщений: 9
<phrase 1=


Скажите, плз, можно сделать так, чтобы при поворте текстовый аттрибут в блоке поворачивался, но не менял ориентацию. Т.е. положение текста менялось, но он оставался вертикальным?
__________________
Shit always happens. Ignore the system
Same shit different day
Cow-Brat вне форума  
 
Непрочитано 13.11.2009, 15:21
#1488
saa


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


Как вариант (обычно большинство делает так) добавляется параметр точки и к нему командой "переместить" привязывается атрибут или текст. При этом нужно чтобы в свойствах параметра точки была разрешена цепочка операций.
операцию поворота нужно при этом применять к параметру точки, но не к атрибуту

Последний раз редактировалось saa, 13.11.2009 в 15:22. Причина: дополнил
saa вне форума  
 
Непрочитано 13.11.2009, 15:47
#1489
Cow-Brat

специалист по CadWork
 
Регистрация: 12.11.2009
СПб
Сообщений: 9
<phrase 1=


Вот спасибо!
Отлично работает!
__________________
Shit always happens. Ignore the system
Same shit different day
Cow-Brat вне форума  
 
Непрочитано 13.11.2009, 15:52
#1490
AlexV

Инженер
 
Регистрация: 02.10.2008
С-Пб
Сообщений: 3,692


Цитата:
Сообщение от cancercat Посмотреть сообщение
Народ, подскажите, плиз, как в определение атрибута вставить поле с какой-нибудь координатой? Конкретно - есть динамический блок "Высотная отметка". При простановке на чертеже он автоматом "выдаёт" координату У. Проблема в том, что народ чертит в масштабе 1:1000, и всё корректно (т.е. отметка получается в метрах). Я же привык чертить 1:1, и у меня, естественно, при привязке к координатам показываются миллиметры. Как это можно исправить? Файл прилагаю. Кому не сложно - посмотрите! Я так думаю, что, поскольку у меня LT версия на работе, я и не смогу это поправить...
Посмотри мой блок. По-быстрому, для примера, создал, но атрибут содержит значение "Y" в метрах..

p.s. о-ё, чего-то торможу... все уже украдено до нас в #1482.. Последние посты не заметил.
Вложения
Тип файла: dwg
DWG 2007
Чертеж1.dwg (74.6 Кб, 3767 просмотров)
__________________
...Не пытайся гнуть ты ложку,
Не вяжи её узлом.
Ложка - ложка понарошку,
А по правде, - это лом!
AlexV вне форума  
 
Непрочитано 13.11.2009, 17:36
#1491
cancercat

инженер-преподаватель ;-)
 
Регистрация: 14.10.2008
Санкт-Петербург
Сообщений: 1,999


AlexV, всё работает. Только тот блок, что выложил я, можно было зеркалить и вертикально, и горизонтально, что очень удобно на насыщенном чертеже. Да, и у тебя, когда в минус отметка уходит, ставится "+-".
avrubtsov, если я меняю положение блока с "верха" на "низ" (есть там такая ручка), то отметка о5 становится в миллиметрах.
cancercat вне форума  
 
Непрочитано 13.11.2009, 19:57
#1492
avrubtsov

Инженер-конструктор
 
Регистрация: 25.08.2009
Красноярск
Сообщений: 470
Отправить сообщение для avrubtsov с помощью Skype™


иправил
только с масштабом помойму чет не то
я после вставки блока увеличил его в 1000 раз
если нужно, то лучшу это сделать внутри самого блока, либо присвоить ему свойство аннотативности
Вложения
Тип файла: dwg
DWG 2010
отметка.dwg (82.3 Кб, 3770 просмотров)
avrubtsov вне форума  
 
Непрочитано 23.11.2009, 02:38
#1493
МИХАИЛCAD


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


Попробую ещё раз (последний)У меня проблема с командой gatteесли динамический блоск меняется то приобретает дополнительное имя-анонимное после этого скрипт по замене атрибутов не работает так какgatte блок уже не находитпоможете?
МИХАИЛCAD вне форума  
 
Непрочитано 23.11.2009, 09:03
#1494
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от МИХАИЛCAD Посмотреть сообщение
Попробую ещё раз (последний)У меня проблема с командой gatteесли динамический блоск меняется то приобретает дополнительное имя-анонимное после этого скрипт по замене атрибутов не работает так какgatte блок уже не находитпоможете?
Пример блока?
Do$ вне форума  
 
Непрочитано 23.11.2009, 14:28
#1495
МИХАИЛCAD


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


Вот этот блок например
Вложения
Тип файла: zip 20-20.zip (29.4 Кб, 114 просмотров)
МИХАИЛCAD вне форума  
 
Непрочитано 23.11.2009, 16:06
#1496
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


В папке с экспрессами (у меня, например, это: "C:\Program Files\AutoCAD 2006\Express"), лежит файлик gatte.lsp, я его маленько подправил - должно работать.
После загрузки запускать коммандой mgatte.
Код:
[Выделить все]
;;
;;;
;;;    GATTE.LSP
;;;    Copyright © 1999 by Autodesk, Inc.
;;;
;;;    Your use of this software is governed by the terms and conditions of the
;;;    License Agreement you accepted prior to installation of this software.
;;;    Please note that pursuant to the License Agreement for this software,
;;;    "[c]opying of this computer program or its documentation except as
;;;    permitted by this License is copyright infringement under the laws of
;;;    your country.  If you copy this computer program without permission of
;;;    Autodesk, you are violating the law."
;;;
;;;    AUTODESK PROVIDES THIS PROGRAM "AS IS" AND WITH ALL FAULTS.
;;;    AUTODESK SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTY OF
;;;    MERCHANTABILITY OR FITNESS FOR A PARTICULAR USE.  AUTODESK, INC.
;;;    DOES NOT WARRANT THAT THE OPERATION OF THE PROGRAM WILL BE
;;;    UNINTERRUPTED OR ERROR FREE.
;;;
;;;    Use, duplication, or disclosure by the U.S. Government is subject to
;;;    restrictions set forth in FAR 52.227-19 (Commercial Computer
;;;    Software - Restricted Rights) and DFAR 252.227-7013(c)(1)(ii)
;;;    (Rights in Technical Data and Computer Software), as applicable.
;;;
;;;  ----------------------------------------------------------------
 
(Defun C:mgatte ( /
     N      ;selection set counter
     CC     ;changed counter
     BN     ;block name
     TG     ;tag name
     ESel   ;entity pick/name/list
     EL     ;entity list
     EN     ;entity name
     PASS   ;loop pass flag
     TAGL   ;list of valid tags for a block
     TAGS   ;String of valid tags for a block
     TAGT   ;Temp tag list
     ;TAG    ;tag name in loop
     TMP    ;temporary variable
     SS1    ;selection set of insert objects
     XX X   ;flag and counter
     OLDCC  ;previous count of changes for update test
     A      ;entity information in change loop
     FL LA  ;frozen layer check variables
     na b
     )
 (vl-load-com)
   (acet-error-init
      (List
         (List "cmdecho" 0)
         T     ;flag. True means use undo for error clean up.
      ) ;list
   );acet-error-init
   (sssetfirst nil nil)
   ;;
   (Setq n 0
         cc 0
   )
   (while (null Pass)
      (initget "Block _Block")
;;      (setq ESel (entsel "\nBlock name/<select block or attribute>: "))
      (setq ESel (entsel "\nSelect block or attribute [Block name]: "))
      (cond
        ((null ESel) (setq Pass 'T BN nil))
        ((= (type ESel) 'LIST) ;;pick selection
           (setq EL (entget (car ESel)))
           (if (= (cdr (assoc 0 EL)) "INSERT")
               (setq
;;;		 BN (cdr (assoc 2 EL))                                              ;_Do$ modify
		     BN (vla-get-EffectiveName (vlax-ename->vla-object (car ESel))) ;_Do$ modify
                     Pass 'T
                     ESel (nentselp (cadr ESel))
                     EL (entget (car Esel))
                     TG (if (= (cdr (assoc 0 EL)) "ATTRIB")
                            (cdr (assoc 2 EL))
                            nil
                        )
               )
               (prompt "\nSelected item not an INSERT.")
           );end if
        );end second conditional for picking attrib
        ((and (= (type ESel) 'STR) (= ESel "Block"))
           (setq BN (getstring "\nEnter block name: "))
           (if (tblsearch "BLOCK" BN)
              (setq Pass 'T)
              (prompt "\nInvalid block name.")
           )
        );end third conditional
      );the conditional statement ends
   ) ;;end of Block Name entry.
 
   (if BN (progn
     (setq Pass nil
           EN (cdr (assoc -2 (tblsearch "BLOCK" BN)))
     )
     (while EN
        (setq EL (entget EN))
        (if (= (cdr (assoc 0 EL)) "ATTDEF")
           (setq TAGL (cons (cdr (assoc 2 EL)) TAGL)))
        (setq EN (entnext EN))
     )
   )) ;;end if BN progn
   (if TG (setq Pass 'T))
 
   (if TAGL
     (progn
       (setq TAGS (car TAGL)
             TAGT (cdr TAGL)
       )
       (foreach TAG TAGT
         (setq TAGS (strcat TAGS " " TAG))
       )
     )
   )
 
   (while (and TAGS (null Pass))
      (initget TAGS)
      (prompt (strcat "\nKnown tag names for block: " TAGS))
      (setq ESel (nentsel "\nSelect attribute or type attribute name: "))
 
      (cond
        ((= (type ESel) 'STR)
           (setq ESel (xstrcase ESel))
           (if (member ESel TAGL)
             (setq Pass 'T
                   TG    ESel
             )
             (prompt "\nInvalid attribute name.")
           )
        )
        ((= (type ESel) 'LIST) ;;pick selection
           (setq TG (cdr (assoc 2 (entget (car ESel)))))
           (if TG
             (setq Pass 'T)
           )
        )
      );the conditional statement ends
   ) ;;end of Attribute Name entry.
 
 
   (if (and BN (null TAGL))
      (setq BN (prompt "\nThe block selected has no attributes!")))
   (If (And BN TG)
      (Progn
         (prompt (acet-str-format "\nBlock: %1   Attribute tag: %2" BN TG))
         (Setq
            NA (GetString T "\nEnter new text: ")
            SS1 (SsGet "_X"
                 (List
                    (Cons 0 "INSERT")
;;;                    (Cons 2 bn)                                           ;_Do$ modify
                    (Cons 66 1)
                 )
              ) 
            N (If SS1 (SsLength SS1) 0)
         )
         (initget 0 "Yes No _Yes No")
         (setq TMP
           (getkword
             (acet-str-format "\nNumber of inserts in drawing = %1  Process all of them? [Yes/No] <Yes>: " (itoa N))))
         (if (and TMP (= TMP "No"))
            (setq SS1 (ssget (list (cons 0 "INSERT")
;;;                                   (cons 2 BN)                            ;_Do$ modify
                                   (cons 66 1)))
                  N (if SS1 (sslength SS1) 0)
            )
         )
         (if (> N 0) (Princ "\nPlease wait..."))
         (setq x 0)
         (repeat N
            (setq A (ssname SS1 x)
                  B (entget A)
                  la (cdr (assoc 8 B))      ;layer name from object
                  fl (tblsearch "LAYER" la) ;table entry for layer
                  fl (cdr (assoc 70 fl))    ;layer status flag
            )
	   (if (= (vla-get-EffectiveName (vlax-ename->vla-object A)) bn)     ;_Do$ modify
            (if (/= fl 65) ;if layer not frozen
               (progn
                  (setq XX 1
                        oldcc cc)
                  (while XX
                     (setq
                        B (EntGet (EntNext (CDR (Assoc -1 B))))
                     )
                     (If (= (CDR (Assoc 0 B)) "SEQEND")
                        (Setq xx Nil)
                        (Progn
                           (If (= (CDR (Assoc 2 b)) tg)
                              (Progn
                                 (Setq B (subst (Cons 1 NA) (assoc 1 B) B)
                                       CC (1+ CC)
                                 )
                                 (EntMod B)
                              ) ;progn
                           ) ;if
                        ) ;progn
                     ) ;if
                  ) ;while
                  (If (/= cc oldcc) (EntUpd a))
               ) ;progn
            ) ;if
	  )                                                                 ;_Do$ modify
            (Setq X (1+ X))
         ) ;repeat
         (If (/= 1 cc)
           (princ (acet-str-format "\n%1 attributes changed." (itoa cc)))
           (princ (acet-str-format "\n%1 attribute changed." (itoa cc)))
         )
      ) ;progn
   )
   (acet-error-restore)
   (Princ)
) ;defun
(princ)
Do$ вне форума  
 
Непрочитано 24.11.2009, 09:24
#1497
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Помогите\подскажите, как создать вот такой динамический блок:

Сочинил я его коряво через использование параллельных размеров с использованием пользовательского блока вместо стрелок...
И тем не менее, работает не корректно, в определённых положениях появляется размерная линия "—"...
[IMG]http://i.*******info/i4/1f/b0/4198c6d3107dba9753ea31985fef.gif[/IMG]
А вот чисто одна параметризация, но вот желтой линии "", быть не должно, а без неё вся цепочка рушиться, и тупо отключить ей видимость тоже вариант не очень...
[IMG]http://i.*******info/i4/69/b8/64a7dbef2d52dfe0331a569a084d.gif[/IMG]
Вложения
Тип файла: dwg
DWG 2007
блок.dwg (139.2 Кб, 3691 просмотров)
Тип файла: dwg
DWG 2010
блок(2010).dwg (135.6 Кб, 3705 просмотров)
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 24.11.2009, 10:00
#1498
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Файлы не смог глянуть (ибо акад2006). Как я понял из картинок, нужно чтобы красные окружность, линия и точка вращались вокруг центра окружности, а зеленая линия вращалась и растягивалась. Это все одним параметром делается - полярным, к нему цепляем полярное растягивание и указываем какие объекты растягиваются, а какие просто вращаются. Как пример - вложение.
Вложения
Тип файла: dwg
DWG 2004
Dysney.dwg (33.8 Кб, 3728 просмотров)
Do$ вне форума  
 
Непрочитано 24.11.2009, 10:16 Спасибо Do$
#1499
Disney

Геодезист
 
Регистрация: 12.03.2009
Сибирь (где медведи по улицам ходят)
Сообщений: 860
Отправить сообщение для Disney с помощью Skype™


Do$
А я, дебил, пользовал готовые наборы параметров, а там "Полярное растяжение" состоит из "Полярный параметр" и "Опирация растягивания".
__________________
Почему все вдруг становятся умными, когда уже не надо?
Disney вне форума  
 
Непрочитано 24.11.2009, 10:33
#1500
Pum-purum

PHP-разработчик
 
Регистрация: 12.05.2008
Ижевск
Сообщений: 1,166


Disney, как сделать подобное видео?
Pum-purum вне форума  
Закрытая тема
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Динамические блоки > Мои динамические блоки