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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вертикальная выноска линейного размера

Вертикальная выноска линейного размера

Ответ
Поиск в этой теме
Непрочитано 13.12.2007, 06:23 #1
Вертикальная выноска линейного размера
Vova
 
Engineer
 
New-York
Регистрация: 05.09.2003
Сообщений: 10,288

Может, пригодится не только мне. На левой картинке размеры вынесены на лидере (меню правой кнопки 2006). Они всегда получаются косыми. На правой картинке косина сведена почти к нулю, но точного перпендикуляра не достичь, потому что выноска на переломе не имеет грипсы.
Можно-ли программно сделать из косой выноски строго перпендикулярную? Хотя-бы клика за 2-3. Файл также здесь

Миниатюры
Нажмите на изображение для увеличения
Название: DIM-PERPENDICULAR.jpg
Просмотров: 1417
Размер:	23.1 Кб
ID:	1480  

Вложения
Тип файла: dwg
DWG 2004
DIM-PERPENDICULAR.dwg (81.7 Кб, 5269 просмотров)

Просмотров: 30876
 
Непрочитано 15.12.2007, 15:13
#2
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,171


А чем Stretch не устраивает? Base point на "переломе" выноски, и все путем. Те же 3 клика.
По крайней мере, у меня получилось (версия Акада тоже 2006)
kp+ вне форума  
 
Автор темы   Непрочитано 15.12.2007, 16:10
#3
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


А с чем выравнивать? Если с перекрестьем, то получится неточно. А если размер не горизонтальный и не вертикальный? Или для достижения точности делать дополнительные построения, да менять UCS?
Vova вне форума  
 
Непрочитано 26.12.2007, 14:28
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


По просьбе Vova.
Должна "вертикалить" горизонтальные и "горизонталить" вертикальные и повернутые размеры.
Принцип работы:
Выносим размерный текст на выноске в желаемое положение Y, особо не заботясь о вертикальности выноски. Затем применяем в этим размерам DLV
Код:
[Выделить все]
;;;Пытается выровнять выноску Размера
;;; dim - ename or vla-object
(defun dim-leader-vert (dim / dimobj blk lst pt1 pt2 pt3 ptc pt_text)
  (if (= (type dim) 'vla-object)
    (setq dim (vlax-vla-object->ename dim))
  ) ;_ end of if
  (setq dimobj (vlax-ename->vla-object dim))
  (if (and
        (vlax-write-enabled-p dimobj)
        (wcmatch (vla-get-objectname dimobj)
                 "AcDbAlignedDimension,AcDbRotatedDimension"
        ) ;_ end of wcmatch
      ) ;_ end of and
    (progn
      (vla-put-textmovement dimobj acmovetextaddleader)
      (setq blk
             (vla-item (vla-get-blocks
                         (vla-get-activedocument (vlax-get-acad-object))
                       ) ;_ end of vla-get-Blocks
                       (cdr (assoc 2 (entget dim)))
             ) ;_ end of vla-item
      ) ;_ end of setq
      (setq lst nil)
      (vlax-for item blk
        (if (= (vla-get-objectname item) "AcDbBlockReference")
          (setq
            lst (cons
                  (vlax-safearray->list
                    (vlax-variant-value (vla-get-insertionpoint item))
                  ) ;_ end of vlax-safearray->list
                  lst
                ) ;_ end of cons
          ) ;_ end of setq
        ) ;_ end of if
        (if (= (vla-get-objectname item) "AcDbSolid")
          (progn
            (setq
              lst (cons
                    (vlax-safearray->list
                      (vlax-variant-value (vla-get-coordinate item 0))
                    ) ;_ end of vlax-safearray->list
                    lst
                  ) ;_ end of cons
            ) ;_ end of setq
          ) ;_ end of progn
        ) ;_ end of if
      ) ;_ end of vlax-for
      (if (and (car lst)
               (cadr lst)
          ) ;_ end of and
        (progn
          (setq delta (* (vla-get-textgap dimobj)
                         (vla-get-scalefactor dimobj)
                      ) ;_ end of *
          ) ;_ end of setq
          (setq pt1     (car lst)
                pt2     (cadr lst)
                ptc     (polar pt1 (angle pt1 pt2) (* 0.5 (distance pt1 pt2)))
                pt_text (vlax-safearray->list
                          (vlax-variant-value (vla-get-textposition dimobj))
                        ) ;_ end of vlax-safearray->list
          ) ;_ end of setq
          (setq
            pt3 (inters pt_text
                        (polar pt_text (angle pt1 pt2) 1e3)
                        ptc
                        (polar ptc (+ (angle pt1 pt2) (* 0.5 pi)) 1e3)
                        nil
                ) ;_ end of inters
          ) ;_ end of setq
          (setq pt3 (polar pt3 (angle pt2 pt1) delta))
          (vla-put-textposition dimobj (vlax-3d-point pt3))
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
;;;Dimention Leader Vertical
;;;Выравнивание выноски размера
;;;http://dwg.ru/f/showthread.php?t=15823
;;;Вертикальная выноска
(defun C:DLV ( / ss i)
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (dim-leader-vert (ssname ss (setq i (1+ i))))
    )
  (setq ss nil)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 27.12.2007, 07:03
#5
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Спасибо, VVA
Можно без спросу предложения об улучшении? Хорошо бы полочки направлять в ту сторону, в которую я захочу? (то есть лишний клик). Также может возникнуть ситуация, когда ранее нарисованным размерам требуется повернуть полочки в другую сторону.
То All> в связи с отсутствием отзывов полагаю, что такие размеры не вызвали интереса у публики. Может для метрики они не подходят? Или нормы запрещают? Обратите также внимание на несколько размеров из первой картинки, где стоит только один размерный текст, общий для нескольких размеров. Разве не Good? Особенно в метрике, где может быть много нулей. Экономит ведь место!
Vova вне форума  
 
Непрочитано 27.12.2007, 17:06
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Vova #5 Не вопрос "послать" лидер в сторону. Проблема методического характера: как это попроще запросить у пользователя. Т.е или обрабатывать размеры по одному или как?
Предлагаю модификацию предыдущей команды.
DLV0 - аналогична DVL - выноски выравниваются в сторону грипса мтекста размера
DLV180 - к углу в сторону грипса добавляется 180 градусов (pi). Те полочка идет в противоположную сторону
Мне кажется, вместо того, чтобы громоздить диалог по запросу стороны выноски, лучше применить к размерам DLV0 или DLV180 на выбор. К не понравившимся опять
DLV0 или DLV180 на выбор.
Код:
[Выделить все]
;;;Пытается выровнять выноску Размера
;;; dim - ename or vla-object
;;; ang - angle 0 or pi угол в радианах
(defun dim-leader-vert-ang (dim ang / dimobj blk lst pt1 pt2 pt3 ptc pt_text)
  (if (= (type dim) 'vla-object)
    (setq dim (vlax-vla-object->ename dim))
  ) ;_ end of if
  (setq dimobj (vlax-ename->vla-object dim))
  (if (and
        (vlax-write-enabled-p dimobj)
        (wcmatch (vla-get-objectname dimobj)
                 "AcDbAlignedDimension,AcDbRotatedDimension"
        ) ;_ end of wcmatch
      ) ;_ end of and
    (progn
      (vla-put-textmovement dimobj acmovetextaddleader)
      (setq blk
             (vla-item (vla-get-blocks
                         (vla-get-activedocument (vlax-get-acad-object))
                       ) ;_ end of vla-get-Blocks
                       (cdr (assoc 2 (entget dim)))
             ) ;_ end of vla-item
      ) ;_ end of setq
      (setq lst nil)
      (vlax-for item blk
        (if (= (vla-get-objectname item) "AcDbBlockReference")
          (setq
            lst (cons
                  (vlax-safearray->list
                    (vlax-variant-value (vla-get-insertionpoint item))
                  ) ;_ end of vlax-safearray->list
                  lst
                ) ;_ end of cons
          ) ;_ end of setq
        ) ;_ end of if
        (if (= (vla-get-objectname item) "AcDbSolid")
          (progn
            (setq
              lst (cons
                    (vlax-safearray->list
                      (vlax-variant-value (vla-get-coordinate item 0))
                    ) ;_ end of vlax-safearray->list
                    lst
                  ) ;_ end of cons
            ) ;_ end of setq
          ) ;_ end of progn
        ) ;_ end of if
      ) ;_ end of vlax-for
      (if (and (car lst)
               (cadr lst)
          ) ;_ end of and
        (progn
          (setq delta (* (vla-get-textgap dimobj)
                         (vla-get-scalefactor dimobj)
                      ) ;_ end of *
          ) ;_ end of setq
          (setq pt1     (car lst)
                pt2     (cadr lst)
                ptc     (polar pt1 (angle pt1 pt2) (* 0.5 (distance pt1 pt2)))
                pt_text (vlax-safearray->list
                          (vlax-variant-value (vla-get-textposition dimobj))
                        ) ;_ end of vlax-safearray->list
          ) ;_ end of setq
          (setq
            pt3 (inters pt_text
                        (polar pt_text (angle pt1 pt2) 1e3)
                        ptc
                        (polar ptc (+ (angle pt1 pt2) (* 0.5 pi)) 1e3)
                        nil
                ) ;_ end of inters
          ) ;_ end of setq
          (setq pt3 (polar pt3 (+ ang (angle pt2 pt1)) delta))
          (vla-put-textposition dimobj (vlax-3d-point pt3))
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
;;;Dimention Leader Vertical Right
;;;Выравнивание выноски размера
;;;http://dwg.ru/f/showthread.php?t=15823
;;;Вертикальная выноска
(defun C:DLV0 ( / ss i)
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (dim-leader-vert-ang  (ssname ss (setq i (1+ i))) 0)
    )
  (setq ss nil)
  )
;;;Dimention Leader Vertical Right Left
(defun C:DLV180 ( / ss i)
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (dim-leader-vert-ang  (ssname ss (setq i (1+ i))) pi)
    )
  (setq ss nil)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 27.12.2007, 19:33
#7
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Попробывал, есть ли такой лисп чтобы выправлял размеры выноски которых налагаются друг на друга, очень архитекторам бы пригодился,
они любят стены проемы простенки образмеривать,
да и я иногда балуюсь размерами

Алгоритм:
1. Выделите размеры
2. Конец


на скриншотах картинки до и после применения лиспа
цены бы этому лиспу не было....
Миниатюры
Нажмите на изображение для увеличения
Название: Захват1.jpg
Просмотров: 467
Размер:	23.3 Кб
ID:	1854  Нажмите на изображение для увеличения
Название: Захват2.jpg
Просмотров: 452
Размер:	24.8 Кб
ID:	1855  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 29.12.2007, 05:53
#8
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Сделал 3 кнопки:
1. *^C^C_aidimtextmove;1;_single
2. ^c^cdlv0
3. ^C^Cdlv180
(2-ая и 3-я это последний лисп от VVA)
№1 вытаскивает размерный текст на лидере 2-мя щелчками (рекомендую
собирать в кучку, чтобы полочки оказались на одном уровне. Пусть на данном этапе тексты наползают друг на друга)
№2 делает выноски строго вертикально полочками вправо.
№3 то-же, но полочки влево. Все тексты теперь разнесены красиво.
dextron3, попробуй
Еще раз спасибо VVA
Vova вне форума  
 
Непрочитано 29.12.2007, 15:51
#9
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Vova, а зачем тебе все размеры на одном уровне и в одну сторону,
для красоты или в чем то есть дело?
для моего случая, надо по мимо того чтобы выноски были влево и право
так еще и на разных уровнях,

1. Кнопка разносит каждый второй размер на 1й уровень размеров
2. Кнопка разносит размеры на второй уровень размеров
(т.е. если первая допустим на сантиметр от размерной линиии,
то вторая, выоста текста +3мм)
3. Поворот влево (как у тебя)
4. Поворот в право (как у тебя)

Кнопки нужны исключительно для того чтобы не налазили размеры
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 29.12.2007, 16:17
#10
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Как видно из картинки поста №1, размеры могут быть на нескольких уровнях, и полочки направлены в те стороны, где им лучше. То есть в разные. Это и делают кнопки №2 и №3. Я хотел сказать, что те размеры, которые должны быть на одном уровне, надо собирать кнопкой №1 в кучку, используя грипсы. Для другого уровне-другая кучка. А далее работают кнопки 1 и 2 и распределяют кучки так, чтобы не было наложения размерного текста.
To All> На моей картинке есть еще один прикол: если размерный текст одинаковый для нескольких размеров, то этот текст дается только один раз, а полочки их выносок смыкаются. Зацените это дело
Vova вне форума  
 
Непрочитано 29.12.2007, 21:03
#11
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Vova,
Сделал 3 кнопки:
1. *^C^C_aidimtextmove;1;_single

а что рамер выделить и перенесети за душку, этим нельзя пользоваться
тоже за два щелчка выполняется
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 29.12.2007, 23:17
#12
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


А ты пробовал, прежде чем отвечать? Надо ведь размерный текст оторвать от размерной линии и на лидере от нее отнести. Это возможно только если aidimtextmove=1. По умолчанию, если спeциально не задавать в разм. стиле на вкладке Fit слева внизу Over dimension line, with leader, как можно сделать персонально только через Properties либо через меню правой кнопки. Макрос это делает быстро.
Цитата:
Перенести за дужку
Что это за новый термин? Собственночо сочинения, или где-то услышал? Для размера точнее будет Перенести за шкирку. Как котенка. Патентую
Vova вне форума  
 
Непрочитано 30.12.2007, 09:51
#13
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Vova, так у меня в свойствах стоит при дистанции меньше цыфрового
значения, автоматически выноска ставиться,...
можешь мою цепочку расзмеров модифицировать, и выложить
как у тебя получилась оптимизация чтобы я окончательно понял
Миниатюры
Нажмите на изображение для увеличения
Название: Захват1.JPG
Просмотров: 323
Размер:	36.0 Кб
ID:	1908  
Вложения
Тип файла: dwg
DWG 2004
123.dwg (264.0 Кб, 2401 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 30.12.2007, 18:28
#14
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Здесь как раз иллюстрация к посту №10 (To All), где я просил заценить
Миниатюры
Нажмите на изображение для увеличения
Название: vert -leader-my.jpg
Просмотров: 270
Размер:	22.5 Кб
ID:	1914  
Вложения
Тип файла: dwg
DWG 2004
vert -leader-my.dwg (280.1 Кб, 2401 просмотров)
Vova вне форума  
 
Непрочитано 31.12.2007, 11:07
#15
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Ладно с одинаковыми размерами понятно, а как ты с этим справишься?


Всех с новым годом,
что общего с проектирощиками и строителями
пьют так же много
Миниатюры
Нажмите на изображение для увеличения
Название: Захват1.JPG
Просмотров: 251
Размер:	32.7 Кб
ID:	1920  
Вложения
Тип файла: dwg
DWG 2004
vert -leader-my.dwg (274.9 Кб, 2397 просмотров)
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 01.01.2008, 04:28
#16
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Ладно с одинаковыми размерами понятно, а как ты с этим справишься?
Сможешь повторить с одинаковыми размерами сам?
А с этим справился так:
штрихи я бы сделал потоньше и покороче; как в dwg файле
ЗЫ так ровненько получилось потому что до нового года еще 3.5 часов, и еще не налили. И вообще, какие у желающих размяться есть другие предложения по данному вопросу? Выкладывайте
Миниатюры
Нажмите на изображение для увеличения
Название: vert -leader-my-2.jpg
Просмотров: 267
Размер:	20.5 Кб
ID:	1926  
Вложения
Тип файла: dwg
DWG 2004
vert -leader-my-2.dwg (271.6 Кб, 2395 просмотров)
Vova вне форума  
 
Непрочитано 01.01.2008, 09:46
#17
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Это ты сам ёлочку под новый год нарисовал или с помощью лиспа?

Вот и год уже отматал на форуме, можно поздравить.......
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 01.01.2008, 20:34
#18
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Вышеуказанный лисп, вероятно, твоими руками сделал все выноски строго вертикальными и смотрящими полочками вправо. Мне осталось только разнести выноски по-уровню и тем-же лиспом развернуть полочки у левой половины размеров в другую сторону. Есть-ли предложения по устройству этих размеров как-то по-другому?
Так-же настырно повторяю вопрос из моего поста № 10 и 14
Vova вне форума  
 
Непрочитано 03.01.2008, 13:05
#19
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Выношу на суд еще одну модификацию.
DLV0 - как было и раньше (равняет размер вертикально/горизонтально, полочка текста остается в том же направлении, что и было)
DLV180 - как DLV0, полочка текста переносится в противоположную сторону от текущей (раньше было влево)
Новая команда
DLVY - запрашивает точку, и выносит размеры в эту позицию по DLV0
По принципу aidimtextmove для кучи размеров сразу
Код:
[Выделить все]
;;;Пытается выровнять выноску Размера
;;; dim - ename or vla-object
;;; ang - angle 0 or pi угол в радианах
(defun dim-leader-vert-ang-Y (dim ang Y / dimobj blk lst pt1 pt2 pt3 ptc pt_text)
  (if (= (type dim) 'vla-object)
    (setq dim (vlax-vla-object->ename dim))
  ) ;_ end of if
  (setq dimobj (vlax-ename->vla-object dim))
  (if (and
        (vlax-write-enabled-p dimobj)
        (wcmatch (vla-get-objectname dimobj)
                 "AcDbAlignedDimension,AcDbRotatedDimension"
        ) ;_ end of wcmatch
      ) ;_ end of and
    (progn
      (vla-put-textmovement dimobj acmovetextaddleader)
      (setq blk
             (vla-item (vla-get-blocks
                         (vla-get-activedocument (vlax-get-acad-object))
                       ) ;_ end of vla-get-Blocks
                       (cdr (assoc 2 (entget dim)))
             ) ;_ end of vla-item
      ) ;_ end of setq
      (setq lst nil)
      (vlax-for item blk
        (if (= (vla-get-objectname item) "AcDbBlockReference")
          (setq
            lst (cons
                  (vlax-safearray->list
                    (vlax-variant-value (vla-get-insertionpoint item))
                  ) ;_ end of vlax-safearray->list
                  lst
                ) ;_ end of cons
          ) ;_ end of setq
        ) ;_ end of if
        (if (= (vla-get-objectname item) "AcDbSolid")
          (progn
            (setq
              lst (cons
                    (vlax-safearray->list
                      (vlax-variant-value (vla-get-coordinate item 0))
                    ) ;_ end of vlax-safearray->list
                    lst
                  ) ;_ end of cons
            ) ;_ end of setq
          ) ;_ end of progn
        ) ;_ end of if
      ) ;_ end of vlax-for
      (if (and (car lst)
               (cadr lst)
          ) ;_ end of and
        (progn
          (setq delta (* (vla-get-textgap dimobj)
                         (vla-get-scalefactor dimobj)
                      ) ;_ end of *
          ) ;_ end of setq
          (setq pt1     (car lst)
                pt2     (cadr lst)
                ptc     (polar pt1 (angle pt1 pt2) (* 0.5 (distance pt1 pt2)))
                pt_text (if Y  Y (vlax-safearray->list
                          (vlax-variant-value (vla-get-textposition dimobj))
                        )) ;_ end of vlax-safearray->list
          ) ;_ end of setq
          (setq
            pt3 (inters pt_text
                        (polar pt_text (angle pt1 pt2) 1e3)
                        ptc
                        (polar ptc (+ (angle pt1 pt2) (* 0.5 pi)) 1e3)
                        nil
                ) ;_ end of inters
          ) ;_ end of setq
;;;          (setq pt3 (polar pt3 (+ ang (angle pt2 pt1)) delta))     ;;;Было
          (setq pt3 (polar pt3 (+ ang (angle pt3 pt_text)) delta))   ;;;Новое
          (vla-put-textposition dimobj (vlax-3d-point pt3))
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
;;;Dimention Leader Vertical Right
;;;Выравнивание выноски размера
;;;http://dwg.ru/f/showthread.php?t=15823
;;;Вертикальная выноска
(defun C:DLV0 ( / ss i)
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (dim-leader-vert-ang-Y  (ssname ss (setq i (1+ i))) 0 nil)
    )
  (setq ss nil)
  )
;;;Dimention Leader Vertical Right Left
(defun C:DLV180 ( / ss i)
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (dim-leader-vert-ang-Y  (ssname ss (setq i (1+ i))) pi nil)
    )
  (setq ss nil)
  )
(defun C:DLVY ( / ss i pt)
  (and
  (setq pt (getpoint "\nNew leader position : "))
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (dim-leader-vert-ang-Y  (ssname ss (setq i (1+ i))) 0 pt)
    )
  (setq ss nil)
  )
  (princ)
  )
(defun C:DLV2 ( / ss i pt what lst e1 ed mpt)
  (vl-load-com)
  (if
  (and
  (setq pt (getpoint "\nНовая позиция для четных размеров : " ))
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  )
  (progn
  (setq i '-1)
  (repeat (sslength ss)
    (setq e1  (ssname ss (setq i (1+ i))))
    (if (member '(100 . "AcDbAlignedDimension")(entget e1))
      (setq lst (cons e1 lst))
      )
    )
  (foreach x lst
    (setq mpt(cons(cdr(assoc 13(entget x))) mpt))
    )
  (setq mpt (apply 'mapcar (cons 'list mpt)))
  (setq mpt (mapcar '(lambda(x)(apply 'min x)) mpt))
  (setq lst (vl-sort lst '(lambda(x y)(< (distance mpt (cdr(assoc 13(entget x))))
                                         (distance mpt (cdr(assoc 13(entget y))))
                                         )
                            )
                     )
        )
  (setq lst (vl-remove-if '(lambda(x)(setq what (not what))) lst))
  (mapcar '(lambda(x)(dim-leader-vert-ang-Y  x 0 pt)) lst)
  (setq ss nil)
  )
  )
  (princ)
  )
(defun C:DLV1 ( / ss i pt what lst e1 ed mpt)
  (vl-load-com)(setq what t)
  (if
  (and
  (setq pt (getpoint "\nНовая позиция для нечетных размеров : " ))
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  )
  (progn
  (setq i '-1)
  (repeat (sslength ss)
    (setq e1  (ssname ss (setq i (1+ i))))
    (if (member '(100 . "AcDbAlignedDimension")(entget e1))
      (setq lst (cons e1 lst))
      )
    )
  (foreach x lst
    (setq mpt(cons(cdr(assoc 13(entget x))) mpt))
    )
  (setq mpt (apply 'mapcar (cons 'list mpt)))
  (setq mpt (mapcar '(lambda(x)(apply 'min x)) mpt))
  (setq lst (vl-sort lst '(lambda(x y)(< (distance mpt (cdr(assoc 13(entget x))))
                                         (distance mpt (cdr(assoc 13(entget y))))
                                         )
                            )
                     )
        )
  (setq lst (vl-remove-if '(lambda(x)(setq what (not what))) lst))
  (mapcar '(lambda(x)(dim-leader-vert-ang-Y  x 0 pt)) lst)
  (setq ss nil)
  )
  )
  (princ)
  )
Чтобы в DLV180 все было как раньше (влево), нужно в ф-ции dim-leader-vert-ang-Y раскоментировать строчку
Код:
[Выделить все]
;;;          (setq pt3 (polar pt3 (+ ang (angle pt2 pt1)) delta))     ;;;Было
И закоментировать эту
Код:
[Выделить все]
 
(setq pt3 (polar pt3 (+ ang (angle pt3 pt_text)) delta))   ;;;Новое
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 03.01.2008 в 13:35. Причина: Новые команды DLV1 и DLV2
VVA вне форума  
 
Непрочитано 03.01.2008, 13:39
#20
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


К #19 добавил еще 2 команды
DLV1 - выносит в новое указанное положение каждый нечетный размер (DLVY к нечетному размеру)
DLV2 - выносит в новое указанное положение каждый четный размер (DLVY к четному размеру)
Четность/нечетность определяется так: размеры сортируются по возрастанию от самой левой (min X, min Y) 1-й выносной линии (dxf группа 13). Ну и далее к полученному списку чет/нечет
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 03.01.2008, 14:03
#21
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, это супер лисп одназначно, создам для него специальную отдельную панельку, нужнейшая вещь для архитекторов.

Сначало думал что двух уровней не хватит, но решаю проблему маштабом размеров

спасибо...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 05.01.2008, 04:54
#22
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


VVA, а если-бы еще одну кнопочку добавить, чтобы получалось как в посте 14. То есть при нажатии на размер его размерный текст заменялся бы двумя пробелами (это наиболее частый вариант. Если понадобится больше провелов, можно подправить вручную). Тогда тулбарчик на основе одного лиспа стал бы поистине золотым
Vova вне форума  
 
Непрочитано 05.01.2008, 07:29
#23
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Ты имеешь ввиду чтобы объединяла одинаковые размеры в одну выноску с числом?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 08.01.2008, 18:20
#24
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Еще одна модификация. Все запросы объединил в одну команду.
Принцип - одна команда, много кнопок
Возможные варианты кнопок
DLV0 - ^C^CDLV;0;;0;;
DLV180 - ^C^CDLV;180;<>;0;
DLVY - ^C^CDLV;0;;0;
DLV1 - ^C^CDLV;0;;1;
DLV2 - ^C^CDLV;0;;2
По типу DLVY с установкой TextOverride
DLVYT - ^C^CDLV;180; ;0;;
При запросе значения TextOverride идет запрос строки с пробелами (нужно вводить обязательно Enter). В меню для ввода Enter на этом (и лучше на всех) запросе надо ставить символ "точка с запятой" - ;
Причем при запросе TextOverride если ввести некие символы (например пробелы), то они соответсвенно запишутся в TextOverride размеров, если ввести Enter, то TextOverride размеров будет игнорироваться (что было то и останется), если ввести <>, то размеры будут вычисляться т.е. удаляем TextOverride, даже если оно там было.
При запросе четных/нечетных размеров помимо опций можно пользоваться числами
0 - все
1 - нечетные
2 - четные
Код:
[Выделить все]
;;;Пытается выровнять выноску Размера
;;; dim - ename or vla-object
;;; ang - angle 0 or pi угол в радианах
;;; Y - новое положение размерной линии  или nil  
;;; TextOverride - значение TextOverride или nil - не менять  
(defun dim-leader-vert-ang-Y-text (dim     ang     Y       TextOverride
                                   /       dimobj  blk     lst
                                   pt1     pt2     pt3     ptc
                                   pt_text
                                  )
  (if (= (type dim) 'vla-object)
    (setq dim (vlax-vla-object->ename dim))
  ) ;_ end of if
  (setq dimobj (vlax-ename->vla-object dim))
  (if (and
        (vlax-write-enabled-p dimobj)
        (wcmatch (vla-get-objectname dimobj)
                 "AcDbAlignedDimension,AcDbRotatedDimension"
        ) ;_ end of wcmatch
      ) ;_ end of and
    (progn
      (vla-put-textmovement dimobj acmovetextaddleader)
      (setq blk
             (vla-item (vla-get-blocks
                         (vla-get-activedocument (vlax-get-acad-object))
                       ) ;_ end of vla-get-Blocks
                       (cdr (assoc 2 (entget dim)))
             ) ;_ end of vla-item
      ) ;_ end of setq
      (setq lst nil)
      (vlax-for item blk
        (if (= (vla-get-objectname item) "AcDbBlockReference")
          (setq
            lst (cons
                  (vlax-safearray->list
                    (vlax-variant-value (vla-get-insertionpoint item))
                  ) ;_ end of vlax-safearray->list
                  lst
                ) ;_ end of cons
          ) ;_ end of setq
        ) ;_ end of if
        (if (= (vla-get-objectname item) "AcDbSolid")
          (progn
            (setq
              lst (cons
                    (vlax-safearray->list
                      (vlax-variant-value (vla-get-coordinate item 0))
                    ) ;_ end of vlax-safearray->list
                    lst
                  ) ;_ end of cons
            ) ;_ end of setq
          ) ;_ end of progn
        ) ;_ end of if
      ) ;_ end of vlax-for
      (if (and (car lst)
               (cadr lst)
          ) ;_ end of and
        (progn
          (setq delta (* (vla-get-textgap dimobj)
                         (vla-get-scalefactor dimobj)
                      ) ;_ end of *
          ) ;_ end of setq
          (setq pt1     (car lst)
                pt2     (cadr lst)
                ptc     (polar pt1 (angle pt1 pt2) (* 0.5 (distance pt1 pt2)))
                pt_text (vlax-safearray->list
                            (vlax-variant-value
                              (vla-get-textposition dimobj)
                            ) ;_ end of vlax-variant-value
                          ) ;_ end of vlax-safearray->list
                pt_text (if Y
                          (inters Y (polar Y (angle pt1 pt2) 1e3)
                                  pt_text (polar pt_text (+ (angle pt1 pt2) (* 0.5 pi)) 1e3)
                                  nil)
                         pt_text   
                        ) ;_ end of if
          ) ;_ end of setq
          (setq
            pt3 (inters pt_text
                        (polar pt_text (angle pt1 pt2) 1e3)
                        ptc
                        (polar ptc (+ (angle pt1 pt2) (* 0.5 pi)) 1e3)
                        nil
                ) ;_ end of inters
          ) ;_ end of setq
;;;          (setq pt3 (polar pt3 (+ ang (angle pt2 pt1)) delta))     ;;;Было
          (setq pt3 (polar pt3 (+ ang (angle pt3 pt_text)) delta))    ;;;Новое
          (vla-put-textposition dimobj (vlax-3d-point pt3))
          (if (= (type TextOverride) 'STR)
            (vla-put-textoverride dimobj TextOverride)
          ) ;_ end of if
        ) ;_ end of progn
      ) ;_ end of if
    ) ;_ end of progn
  ) ;_ end of if
) ;_ end of defun
  
;;;Dimention Leader Vertical
;;;Выравнивание выноски размера
;;;http://dwg.ru/f/showthread.php?t=15823
;;;Вертикальная выноска
;;;Порядок запросов
;;;-  Поправочный угол - 0 или 180 (зерклит выноску)
;;;-  Значение TextOverride - строка TextOverride или
;;;                              Enter - не менять или
;;;                              <> - снять установленный TextOverride
;;; - Обрабатывать размеры - 0 - все
;;;                          1 - нечетные
;;;                          2 - четные
;;; - Новое положение размерной линии - Enter - не менять
;;;Возможные варианты кнопок
;;;DLV0 - ^C^CDLV;0;;0;;
;;;DLV180 -  ^C^CDLV;180;<>;0;
;;;DLVY -  ^C^CDLV;0;;0;
;;;DLV1 - ^C^CDLV;0;;1;
;;;DLV2 - ^C^CDLV;0;;2
;;;DLVYT - ^C^CDLV;180;  ;0;;
;;;  
(defun C:DLV (/ pt ang what Isrus TextOverride ss lst mpt *error*)
  (defun *error* (msg)
    (princ msg)
    (vla-get-activedocument (vlax-get-acad-object))
  ) ;_ end of defun
  (vl-load-com)
  (vla-startundomark
    (vla-get-activedocument (vlax-get-acad-object))
  ) ;_ end of vla-StartUndoMark
  (setq Isrus (= (getvar "DWGCODEPAGE") "ANSI_1251"))
  (if (null (setq ang
                   (getangle
                     (if Isrus
                       "\nПоправочный угол к размерной выноске (0 или 180) <0>: "
                       "\nCorrection angle to dimetsion leader (0 or 180) <0> :"
                     ) ;_ end of if
                   ) ;_ end of getangle
            ) ;_ end of setq
      ) ;_ end of null
    (setq ang 0)
  ) ;_ end of if
  (setq TextOverride
         (getstring t
                    (if Isrus
                      "\nЗначение TextOverride <не менять>: "
                      "\nTextOverride value <don't change>: "
                    ) ;_ end of if
         ) ;_ end of getstring
  ) ;_ end of setq
  (if (= TextOverride "")
    (setq TextOverride nil)
  ) ;_ end of if
  (if Isrus
    (initget
      "Все Нечетный Четный All Odd Even 0 1 2 _0 1 2 0 1 2 0 1 2"
    ) ;_ end of initget
    (initget "All Odd Even 0 1 2 _0 1 2 0 1 2")
  ) ;_ end of if
;;; what - обрабатываемые размеры (process the dimension)
;;;    0 - все                    (all)
;;;    1 - нечетные               (odd)
;;;    2 - четные                 (even)
  (if (null (setq what
                   (getkword
                     (if Isrus
                       "\nОбрабатывать размеры [Все 0/Нечетные 1/Четные 2] <Все>: "
                       "\nTo process the dimension [All 0/Odd 1/Even 2] <All>: "
                     ) ;_ end of if
                   ) ;_ end of getkword
            ) ;_ end of setq
      ) ;_ end of null
    (setq what "0")
  ) ;_ end of if
  (setq pt (getpoint
             (if Isrus
               "\nНовое положение размерной линии <не менять>: "
               "\nNew position of dimension line <don't change>: "
             ) ;_ end of if
           ) ;_ end of getpoint
  ) ;_ end of setq
  (if pt (setq pt (trans pt 1 0)))
  (if Isrus
    (princ "\nВыберите размеры")
    (princ "\nSelect dimention")
  ) ;_ end of if
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (setq i '-1)
  (repeat (sslength ss)
    (setq e1 (ssname ss (setq i (1+ i))))
    (if (member '(100 . "AcDbAlignedDimension") (entget e1))
      (setq lst (cons e1 lst))
    ) ;_ end of if
  ) ;_ end of repeat
  (setq ss nil)
  (if (/= what "0")
    (progn
      (setq what (= what "1"))
      (foreach x lst
        (setq mpt (cons (cdr (assoc 13 (entget x))) mpt))
      ) ;_ end of foreach
      (setq mpt (apply 'mapcar (cons 'list mpt)))
      (setq mpt (mapcar '(lambda (x) (apply 'min x)) mpt))
      (setq
        lst (vl-sort lst
                     '(lambda (x y)
                        (< (distance mpt (cdr (assoc 13 (entget x))))
                           (distance mpt (cdr (assoc 13 (entget y))))
                        ) ;_ end of <
                      ) ;_ end of lambda
            ) ;_ end of vl-sort
      ) ;_ end of setq
      (setq lst (vl-remove-if '(lambda (x) (setq what (not what))) lst))
    ) ;_ end of progn
  ) ;_ end of if
  (mapcar '(lambda (x)
             (dim-leader-vert-ang-Y-text x ang pt TextOverride)
           ) ;_ end of lambda
          lst
  ) ;_ end of mapcar
  (vla-endundomark
    (vla-get-activedocument (vlax-get-acad-object))
  ) ;_ end of vla-EndUndoMark
  (princ)
) ;_ end of defun
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 12.01.2008 в 12:08. Причина: Замечание Vova #44 dextron3 #46
VVA вне форума  
 
Непрочитано 10.01.2008, 12:33
#25
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


День добрый.
Очень зорошая идея.
Но вот что-то к посту №7 так и не дошли.... Очень жаль.
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 12:40
#26
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


и еще вопрос.
как можно (или что надо) поменять в настройках ... или еще где-то что-бы увеличить растояние от основной размерной линии до вспомогательной выносной. В настройках ее нет (либо не нашел).
"вспомогательная выносная линия располагается на расстоянии 4.25хDIM, а хотелось бы 4.5-4.8"
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 12:45
#27
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 67


Здравствуйте !
А есть ли утилитка , которая бы выравнивала многоэтажные размерные линии в одну цепочку ? Может встречал кто-нибудь ?
__________________
Andrey
Павлов Андрей вне форума  
 
Непрочитано 10.01.2008, 12:50
#28
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


а как это многоэтажные?
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 13:07
#29
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Дмитрий063 #25 Как альтернатива - разносить четные/нечетные размеры либо DLVY. Для автоматического выравнивания не ясен алгоритм работы. Алгоритм, предложенный в #7 - это местная БКК (большая красная кнопка). По поводу #26 я не понял про что речь. Приложи картинку или рисунок с вопросом.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.01.2008, 13:35
#30
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


вот...
Миниатюры
Нажмите на изображение для увеличения
Название: 123.jpg
Просмотров: 146
Размер:	7.8 Кб
ID:	2121  
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 14:34
#31
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 67


Цитата:
Сообщение от Дмитрий063 Посмотреть сообщение
а как это многоэтажные?
Ну , я имел ввиду если горизонтальные размеры сбились по вертикали (размерные линии и размерный текст не на одном уровне) , и чтобы выровнять их по одной линии .
__________________
Andrey
Павлов Андрей вне форума  
 
Непрочитано 10.01.2008, 15:58
#32
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


и вот такая ситуация
Миниатюры
Нажмите на изображение для увеличения
Название: 111.jpg
Просмотров: 139
Размер:	14.3 Кб
ID:	2125  
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 16:24
#33
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Гдето видел в данной теме лисп прям здесь или мне показалось,
как автоматически объеденить одинаковые размеры?
см. скриншот:
Миниатюры
Нажмите на изображение для увеличения
Название: Захват1.JPG
Просмотров: 135
Размер:	31.8 Кб
ID:	2126  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 10.01.2008, 16:26
#34
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


А такой бы лисп боролося с рассеяностью архитекторов

см скриншот:
Миниатюры
Нажмите на изображение для увеличения
Название: Захват2.jpg
Просмотров: 146
Размер:	24.7 Кб
ID:	2127  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 10.01.2008, 16:32
#35
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


Но это касается к одинаковым размерам.
а что касается разных....?
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 16:37
#36
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Этот лисп мне только снится....

Принцип работы:

1. Находит числа размеров которые или " на лазиют" друг на друга
или находятся на объектах чертежа, и автоматически выносит в пустое пространство.


Алгоритм:

1. Выделите область экрана (выделяется весь объект включая приметивы с размерами)

2. Каждый размер детектируется т.е. проверяется есть ли у него нахлест на рядом стоящие размеры или нахлест на существующие приметивы

3. Определяется чистая зона вокруг выноски размера

4. Выносится обозначение размера по кратчайшему расстоянию на чистую зону (т.е. пустой экран)

1 скриншот это до применения
2 скриншот полсе применения(там только один размер 201мм не исправился остальные так как надо)
Миниатюры
Нажмите на изображение для увеличения
Название: Захват3.jpg
Просмотров: 140
Размер:	36.7 Кб
ID:	2129  Нажмите на изображение для увеличения
Название: Захват4.jpg
Просмотров: 131
Размер:	37.7 Кб
ID:	2130  
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 10.01.2008 в 16:51.
dextron3 вне форума  
 
Непрочитано 10.01.2008, 16:40
#37
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Цитата:
Сообщение от Дмитрий063 Посмотреть сообщение
Но это касается к одинаковым размерам.
а что касается разных....?
Если разные то находятся обинаковые и объеденяются

и разносятся по этажно, (прим. автора)

высота разноски h=высота текста размера + высота текста размера


смотреть скриншот было/стало
Миниатюры
Нажмите на изображение для увеличения
Название: Захват5.jpg
Просмотров: 121
Размер:	47.8 Кб
ID:	2131  
__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 10.01.2008 в 16:48.
dextron3 вне форума  
 
Непрочитано 10.01.2008, 16:50
#38
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


Ну наверное такое не реально...
хотя бы такой вариант.... если 2 размера налазиют друг на друга то один бы зеркалился....
А в твоем случае частично поможет - у размеров есть в настройках "фон" - если выбрать фон экрана - то он "перекроет" линии. (впрочем и текст, и другие размеры...)
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 17:01
#39
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Цитата:
Сообщение от Дмитрий063 Посмотреть сообщение
Ну наверное такое не реально...
хотя бы такой вариант.... если 2 размера налазиют друг на друга то один бы зеркалился....
А в твоем случае частично поможет - у размеров есть в настройках "фон" - если выбрать фон экрана - то он "перекроет" линии. (впрочем и текст, и другие размеры...)
В том то весь и сок чтобы он не накрывал важные части чертежа, а относил на пустое место, не заю как на лиспе это выразить

Но алгоритм для бейсика таков:
1. Задаем область-поле от координаты вставки текста+ширина + высота по периметру, как бы по расходящейся спирали.
2. При попадании в каждую точку экрана если она пустая выдает 0 если нет, то 1
3. Когда суммарное поле 0-нулеков станет по площади равно размерного
текста (высота на длинну), то координаты вставки
размерного обозначения переносятся в левый нижний угол данного пустого
поля.

Можно лисп сделать с одинарным выделением размеров поочереди,
так как при множестве размеров комп может просто зависнуть

Если это комуто интересно
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 10.01.2008, 17:12
#40
Дмитрий063

рисую...
 
Регистрация: 10.01.2008
Самара
Сообщений: 1,259
<phrase 1=


а что в бейсике есть?
Дмитрий063 вне форума  
 
Непрочитано 10.01.2008, 17:21
#41
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Павлов Андрей
По поводу выравнивания в одну цепочку в первом приближении
Код:
[Выделить все]
;;Выравнивание размеров в одну цепочку  
  (defun C:DIMALIGN ( / ss i pt1 pt2 lst e1 ed mpt ang90)
  (vl-load-com)
  (if
  (and
  (setq pt1 (getpoint "\nЛиния выравнивания. Первая точка : " ))
  (setq pt2 (getpoint pt1 "\nЛиния выравнивания. Вторая точка : " ))
  (setq pt1 (trans pt1 1 0))
  (setq pt2 (trans pt2 1 0))
  (setq ang90 (+ (angle pt1 pt2)(* 0.5 pi)))
  (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  )
  (progn
  (setq i '-1)
  (repeat (sslength ss)
    (setq e1  (ssname ss (setq i (1+ i))))
    (if (member '(100 . "AcDbAlignedDimension")(setq ed(entget e1)))
      (progn
        (if (and
              (setq mpt (inters pt1 pt2
                                (cdr(assoc 10 ed))
                                (polar (cdr(assoc 10 ed)) ang90 1e3)
                                nil
                                )
                    )
              (setq ed (subst (cons 10 mpt)(assoc 10 ed) ed))
              )
          (progn
            (entmod ed)
            (entupd e1)
            )
                                
      )
      )
    )
    )
  )
  )
  (setq ss nil)  
  (princ)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 11.01.2008, 11:22
#42
Павлов Андрей

Инженер-строитель
 
Регистрация: 27.05.2004
Республика Беларусь
Сообщений: 67


VVA .
Спасибо огромное за DIMALIGN !!!!!!!!!
__________________
Andrey
Павлов Андрей вне форума  
 
Непрочитано 11.01.2008, 21:29
#43
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, а выравнивание с объединением одинаковых размеров в общую выноску, такой лисп можно?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 12.01.2008, 04:12
#44
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


По лиспу из поста /24
Любая из предложенный кнопок, а также вызов DLV выдает следущее:
Код:
[Выделить все]
Command: dlv
Correction angle to dimetsion leader (0 or 180) <0> :
TextOverride value <don't change>: 111
To process the dimension [All 0/Odd 1/Even 2] <All>:
New position of dimension line <don't change>:
Select dimention
Select objects: 1 found
Select objects: 1 found, 2 total
Select objects:
no function definition: DIM-LEADER-VERT-ANG-Y-TEXT
Command:
Vova вне форума  
 
Непрочитано 12.01.2008, 09:35
#45
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Vova #44 Исправил. см. пост #24. Странно что только к 44 посту заметили.
> Dextron3 #43 Пока думаю над этим в свободное время.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.01.2008, 09:44
#46
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Цитата:
Сообщение от VVA Посмотреть сообщение
>Vova #44 Исправил. см. пост #24. Странно что только к 44 посту заметили.
> Dextron3 #43 Пока думаю над этим в свободное время.
При тестировки лиспа
который разносит по двум уровням чет не чет
нашел баг

Когда уже повернул выноски в лево и право, то при выноске на уровень они поварачиваются все в одну сторону, проделанная работа обнуляется


можно откорректировать чтобы запоминало
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.01.2008, 12:11
#47
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>dextron3 #46 Исправил. см. пост #24. Поправочный угол 0 к размерной выноске оставляет ее там где и была
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.01.2008, 13:11
#48
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Command: (LOAD "C:/Documents and Settings/Aleks/Рабочий стол/defun
dim-leader-vert-ang-Y-text.lsp") CLV

Command:
Command:
Command: DLV

Select objects: 0
Specify opposite corner:

Invalid window specification.

Select objects: Specify opposite corner: 31 found

Select objects:
nil


Или я не допонял как функционирует лисп из #24
кнопками вызывает какоето окно с привязкой к началу координат,

а почему от первого тобой предложенного варианта отказались,
он работает как часы без сбоев
Миниатюры
Нажмите на изображение для увеличения
Название: Захват1.JPG
Просмотров: 179
Размер:	8.6 Кб
ID:	2186  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 12.01.2008, 15:31
#49
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>dextron3 Что-то ты не так скопировал. Запросы лиспа из #24
Цитата:
Команда: dlv
Correction angle to dimetsion leader (0 or 180) <0> :
TextOverride value <don't change>:
To process the dimension [All 0/Odd 1/Even 2] <All>: 1
New position of dimension line <don't change>:
Select dimention
Выберите объекты: Противоположный угол: найдено: 8
Выберите объекты:
Он отличается от предыдущих тем, что все запросы собраны в одну команду, + возможность менять textoverride. Вместо команд DLV0, DLV180 и т.п. делаются кнопки. Об этом достаточно подробно (на мой взгляд) написано в #24 и примечаних в лиспе. От первого варианта не отказались, это он, но вид сверху
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.01.2008, 16:46
#50
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Разобрался спасибо!
Буду ждать доп кнопку "объединение одинаковых значений"

__________________
инженер проектировшик с опттом программа авто гад образование высшие

Последний раз редактировалось dextron3, 12.01.2008 в 17:46.
dextron3 вне форума  
 
Автор темы   Непрочитано 12.01.2008, 17:54
#51
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Sorry, но так и не смог оттестировать лисп №24 Непонятно, что происходит. То одна выноска не становится в общий ряд, то какая-то оказывается невертикальной. И слишком много слов в ком. строке, не удается работать на автомате. Моя технология простановки размеров в цепочке такая: Делаю цепочку размеров. Причем не всегда только, допустим, слева направо. Не всегда для этого используется Dimcontinue (которая сама по себе делает выноски для некоторых размеров, но наклонные). Иногда сначала ставится какой-то размер в середине будущей цепочки и то-ли слева направо, то-ли наоборот. А второй размер тоже спонтанный. И он не обязательно станет в прямую линию с первым. Наконец, цепочка сформировалась, но не выровнена и текст налезает друг на друга. И вот теперь настает пора упорядочить при помощи лиспа. Я бы хотел иметь такие кнопки:
1. Выровнять размерные линии путем указание эталонного размера или задания точки
2. Вынести вертикальный лидер на заданный уровень только у указанных размеров (а не у четных-нечетных)
3. Развернуть указанные мышкой полочки в противоположном направлении (0 или 180 град неинформативно, ибо зависит от того, в какую сторону строился размер)
4. замена текста указанием мыши (в данном случая было-бы достаточно заменить текст на два пробела, но для универсальности кнопка была-бы полезна и для других случаев)
Возможно, в такой комбинации программа удовлетворила бы и тех, кто задал последующие пожелания
Vova вне форума  
 
Непрочитано 12.01.2008, 21:19
#52
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Vova, #24 все о чем ты написал есть, именно эти команды

1 Лисп для Павлова андрея
2 это DLVy, чет не чет это уже тюнинг, а ты сам выбирай какие вынести на какую дистанцию
3. 0 и 180 это условно в том лиспе щелкнул на одну сторону повернулся в противоположную
4. Не пойму для чего, тебе что по размеру два раза щелкнуть и перебить не быстро, или для каких то других целей
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 12.01.2008, 22:33
#53
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Цитата:
Не пойму для чего, тебе что по размеру два раза щелкнуть и перебить не быстро, или для каких то других целей
Два раза щелкнуть и перебить это только если двойной клик в CUI переопределить. А так надо брать команду Ddedit. И при этом выйдет редактор, и только в нем перебивается текст. А зачем это надо? Так ты ведь не ответил на мой вопрос в № 16. И, очевидно, не понял, как это делается. Иначе бы не задал этот вопрос, а также твой номер 43 (в лиспе как раз текст перебивается)
Я думаю, как сделать все более упорядочным и универсальным и для этого программист должен работать в паре с пользователем, а лучше с несколькими, что сейчас и происходит
Vova вне форума  
 
Непрочитано 14.01.2008, 18:36
#54
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Vova 51 Может я не правильно объяснил, но #24 это эти команды, только для них нужно сделать соответвтующие кнопки. Для простоты сделяю еще пару команд через небольшой тайм-аут. Пока вариант DIMALIGN по тз №1 Vova#51.
Код:
[Выделить все]
;;Выравнивание размеров в одну цепочку  путем указания на эталонный или точки
;;http://dwg.ru/f/newreply.php?do=postreply&t=15823
  (defun C:DIMALIGN ( / ss i pt1 pt2 lst e1 ed mpt ang90 pt14)
  (vl-load-com)
   (setq e1 nil mpt 1) 
   (while mpt
     (cond ((= mpt 1)
            (setq e1 (car(entsel "Выберите эталонный размер <указать точку>:")))
            (if e1
              (if (and (=(cdr(assoc 0 (setq ed (entget e1)))) "DIMENSION")
                       (member '(100 . "AcDbAlignedDimension")ed)
                       )
                (progn
                (setq mpt nil)
                (setq pt1 (cdr(assoc 10 ed)))
                )
                (princ "\nНужно выбрать линейный размер")
                )
              (setq mpt 2)
              )
            )
           ((= mpt 2)
            (if(setq pt1 (getpoint "\nУкажите точку выравнивания <выбрать размер>:"))
              (setq pt1 (trans pt1 1 0) mpt nil)
              (setq mpt 1)
              )
            )
           (t nil)
           )
     )
  (if (setq ss (ssget "_:L" '((0 . "DIMENSION"))))
  (progn
  (setq i '-1)
  (repeat (sslength ss)
    (setq e1  (ssname ss (setq i (1+ i))))
    (if (member '(100 . "AcDbAlignedDimension")(setq ed(entget e1)))
      (progn
        (setq pt2 (polar pt1 (+ (setq ang90 (angle (cdr(assoc 10 ed))(cdr(assoc 14 ed))))(* 0.5 pi)) 1e3))
        (if (and
              (setq mpt (inters pt1 pt2
                                (cdr(assoc 10 ed))
                                (polar (cdr(assoc 10 ed)) ang90 1e3)
                                nil
                                )
                    )
              (setq ed (subst (cons 10 mpt)(assoc 10 ed) ed))
              )
          (progn
            (entmod ed)
            (entupd e1)
            )
                                
      )
      )
    )
    )
  )
  )
  (setq ss nil)  
  (princ)
  )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 15.01.2008, 19:25 Небольшая редакция
#55
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Новая редакция
DLV - полная команда
DLVY - Вынести лидер на заданный уровень у выбранных размеров
DLVROT - Развернуть у выбранных размеров полочки выноски в противоположном направлении
DLVTEXT - Замена TextOverride у выбранных размеров с выноской
DLVTEXT2 - Замена TextOverride у выбранных размеров 2 пробелами с выноской
DTO - Замена TextOverride у выбранных размеров
DTO2 - Замена TextOverride у выбранных размеров 2 пробелами
DLA - Выровнять размерные линии
DUIV - Объединение одинаковых значений выбранных размеров
Вложения
Тип файла: rar dimtools.RAR (4.6 Кб, 211 просмотров)
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 18.02.2008 в 15:16. Причина: Dimtools.lsp заменен архивом dimtool.rar
VVA вне форума  
 
Непрочитано 15.01.2008, 21:40
#56
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Vova, дай скриншотами как было и как должно быть я не могу понять что именно тебе нужно...
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Автор темы   Непрочитано 20.01.2008, 18:43
#57
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Наконец добрался до опробования последней версии. Первое впечатление очень положительное. Несущественное замечание по поводу названий команд. Все они начинаются с букв DLV, что означает Dimension Leader Vertical, а команда, выравнивающая размерные линии наз. Dimalign. Хотя по смыслу так и есть. А если эту функцию записать как DLA (Dimension Line Align)?
К сожалению, немного народа участвует в обсуждении данной проги, как будто это мало кому надо. На самом деле это очень полезная примочка, которая обълегчает жизнь при простановке цепочки размеров, если расстояния между выносными линиями не позволяет разместить размерный текст внутри. Заодно выравнивает размеры в одну точную линию, заодно перебивает размерный текст, если это необходимо. (удобнее, чем команда Ddedit) . Уточняю также, что к типу размера типа Leader эта прога отношения не имеет. Только к линейному размеру, размерный текст которого выносится на лидере, причем строго вертикально по отношению к размерной линии.
Личная просьба к VVA: сбрось мне на мыло эту прогу, а то приаттаченная к сообщению она выдает на моем компе крякозябры вместо руссого. (если я копирую полностью написанную программу, например, с номера 54, то там русский нормальный)
Еще раз спасибо

Последний раз редактировалось Vova, 20.01.2008 в 18:49.
Vova вне форума  
 
Непрочитано 18.02.2008, 15:22
#58
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Цитата:
Сообщение от dextron3 Посмотреть сообщение
Буду ждать доп кнопку "объединение одинаковых значений"
Обновил команды в #55
Добавил 3 команды
DTO (DTO2) - замена TextOverride у выбранных размеров. В отличие от DLVTEXT не тянет выносу
DUIV - объединение одинаковых значений размеров. Значения размров беруться из MTEXT размера. Поэтому команде без разницы, вычисленный размер или переписанный. Сравниваются MTEXT'ы размеров (т.е. то, что видим). Объединяюся идущие подряд (без перебивок другими значениями размеров). Значения одинаковых размеров заменяются пробелом, кроме последнего.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 18.02.2008, 18:36
#59
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA, что то команда DUIV,
ведет себя не так как хотелось бы,
см. скриншот
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 178
Размер:	21.1 Кб
ID:	3490  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 18.02.2008, 18:43
#60
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


А ты сначала DLVY выровняй размер, а потом попробуй DUIV
*** Добавлено
Вообще здесь ситуация неоднонозначная. DUIV из #55 просто заносит в TextOverride пробел. Поведение размера зависит от его настроек. Скажем, если размер умещается между выносными, по размерный лидер пропадает.
Возможен второй вариант, всегда насильственно задавать лирер. Команда DUIV1. Для ее работы требуются ф-ции споста #55
Код:
[Выделить все]
(defun C:DUIV1 ( / *error ss i e1 lst mpt Isrus)
 (defun *error* (msg)(princ msg)
 (vla-endundomark(vla-get-activedocument (vlax-get-acad-object)))) ;_ end of defun
  (vl-load-com)
  (vla-startundomark(vla-get-activedocument (vlax-get-acad-object)))
  (if (setq Isrus (= (getvar "DWGCODEPAGE") "ANSI_1251"))
    (princ "\nВыберите размеры для объединения одинаковых значений")
    (princ "\nSelect dimention to unite identical values")
  ) ;_ end of if
  (setq ss (ssget "_:L" '((0 . "*DIMENSION"))))
  (setq i '-1 lst nil mpt nil)
  (repeat (sslength ss)
    (setq e1 (ssname ss (setq i (1+ i))))
    (if (member '(100 . "AcDbAlignedDimension") (entget e1))
      (setq lst (cons e1 lst))
    ) ;_ end of if
  ) ;_ end of repeat
  (setq ss nil)
  (foreach x lst
     (setq mpt (cons (cdr (assoc 13 (entget x))) mpt))
   ) ;_ end of foreach
      (setq mpt (apply 'mapcar (cons 'list mpt)))
      (setq mpt (mapcar '(lambda (x) (apply 'min x)) mpt))
      (setq
        lst (vl-sort lst
                     '(lambda (x y)
                        (< (distance mpt (cdr (assoc 13 (entget x))))
                           (distance mpt (cdr (assoc 13 (entget y))))
                        ) ;_ end of <
                      ) ;_ end of lambdazz
            ) ;_ end of vl-sort
      ) ;_ end of setq
  
 (setq mpt (mapcar 'dim-get-text-string lst))
 (setq e1 (car mpt) ss nil) 
 (foreach item mpt
   (if (= e1 item)
     (setq ss (cons " " ss))
     (setq ss (cons e1 (cdr ss)) e1 item ss (cons " " ss))
     )
   )
  (setq ss (cons e1 (cdr ss)))
  ;(setq ss (reverse ss))
  (mapcar '(lambda ( edim txt)
;;;             (if (= txt " ")
;;;               (vla-put-textoverride (vlax-ename->vla-object edim) txt)
;;;               )
      (if (= txt " ")
      (dim-leader-vert-ang-Y-text edim 0 nil txt)
      (dim-leader-vert-ang-Y-text edim 0 nil nil)  
        )
             )
          lst
          (reverse ss)
          )
  (vla-endundomark(vla-get-activedocument (vlax-get-acad-object)))
  (princ)
)
Но тогда уже "залидерит" все, что попало
__________________
Как использовать код на Лиспе читаем здесь

Последний раз редактировалось VVA, 18.02.2008 в 18:56.
VVA вне форума  
 
Автор темы   Непрочитано 08.03.2008, 06:11
#61
Vova

Engineer
 
Регистрация: 05.09.2003
New-York
Сообщений: 10,288


Комментарий к последнему варианту проги, пост 55:
DLVTEXT и DLVTEXT2 вполне заменяются командой DTO. Даже команду DTO2 (сделанную по моей просьбе) можно убрать, так как набить нужное количество пробелов командой DTO очень просто. DUIV оставляет текст только на правом конце цепочки, а на остальных размерах делает один пробел. Но может понадобиться текст слева, а количество пробелов больше 1. Я думаю, не стоит улучшать эту команду. Все, что нужно, сделает универсальная DTO. Ею можно поставить нужное количество пробелов именно там, где надо.
Таком образом, я бы оставил следующие команды:
DLVY, DLVROT, DTO, DLA
Первые две лучше переименовать. Вместо DLVY (что означает Dimension Leader Vertical, координата Y) Предлагаю DTL (Dimension Техт на Leader-e) Вместо DLVROT - DTR (Dimension Text Rotate)
Тогда будет логично и запоминаемо: DTL, DTR, DTO, DLA.
После того, как VVA причешет лисп, я (как заказчик проги) еще раз разъясню, как с этим добром работать.
А пока нетерпеливые могут сделать следующее: сделать неровную цепочку размеров и применить к ней команду DLA. Затем попробуйте применить к размеру, который надо переписать, команду DTO, причем новый текст пишите в ком. строке
ЗЫ. Вероятно, в этом-же наборе могла быть полезной команда, которая бы возвращала выделенные размеры в самое исходное положение, снимая с него лидер. типа DimHome. (DHM) Потому что могут быть такие пограничные состояния, когда не сразу видно, что лучше-выносить текст на лидере или оставить его " между ног" размера

Последний раз редактировалось Vova, 08.03.2008 в 06:21.
Vova вне форума  
 
Непрочитано 10.03.2008, 12:37
2 | #62
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


>Vova Пробуй

Команды
DTL - Вынести лидер на заданный уровень у выбранных размеров
DTR - Развернуть у выбранных размеров полочки выноски в противоположном направлении
DTO - Замена TextOverride у выбранных размеров
DLA - Выровнять размерные линии
DHM - Выключить размерную выноску
DUIV - Объединение одинаковых значений выбранных размеров
Вложения
Тип файла: rar dimtoolsv2.rar (4.3 Кб, 339 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 10.03.2008, 17:22
#63
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


VVA,
DUIV - Объединение одинаковых значений выбранных размеров
что то не так как хотелось бы работала просто хотелось чтобы объединяла а не просто удаляла
Миниатюры
Нажмите на изображение для увеличения
Название: Snap1.jpg
Просмотров: 377
Размер:	17.8 Кб
ID:	4165  Нажмите на изображение для увеличения
Название: Snap2.jpg
Просмотров: 378
Размер:	22.8 Кб
ID:	4166  Нажмите на изображение для увеличения
Название: Snap3.jpg
Просмотров: 386
Размер:	13.0 Кб
ID:	4167  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 10.03.2008, 17:29
#64
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,996


Принцип работы DUIV описан в #58. Выключить размерную выноску не проблема (если в остальном устраивает). Подождем еще комментариев от Vova, может еще чего-нибудь править придется. Пока можешь воспользоваться DHM, чтобы убрать размерные лидеры.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 08.04.2009, 15:29
#65
Yu_rok


 
Регистрация: 08.04.2009
Тамбов
Сообщений: 69


Изначально заложено, что выноски меняются на вертикльные. А можно ли сделать так, чтобы после применения этих команд выноска оставалась под своим изначальным наклоном? А для того чтобы делать вертикально оставить DTL в том виде, как сейчас.

DUIV (Объединение одинаковых значений выбранных размеров) вставляет _один_ пробел во все размеры, кроме последнего. Из-за этого полочки выносок не сливаются в одну. Можно использовать DTO(Замена TextOverride у выбранных размеров), но с помощью этой команды не получается наставить пробелов, чтобы удлинить полочку размера. Приходится лезть в свойства

З.Ы.: Спасибо за работу. Стало удобно работать с размерами :-)

Последний раз редактировалось Yu_rok, 08.04.2009 в 15:39.
Yu_rok вне форума  
 
Непрочитано 20.08.2012, 11:28
#66
Astartes

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


VVA, Почему то DLA не всегда срабатывает.
Прикладываю файл, где размеры не реагируют на команду. Хотя другие размеры из этого же файла нормально выравниваются. В чем может быть дело?
Вложения
Тип файла: dwg
DWG 2007
МЧ2.dwg (153.0 Кб, 1182 просмотров)
Astartes вне форума  
 
Непрочитано 16.04.2014, 15:28
#67
Isuma

конструктор
 
Регистрация: 29.09.2008
Санкт-Петербург
Сообщений: 159
<phrase 1=


VVA
Спасибо ОГРОМНЕЙШЕЕ!
Есть один вопрос: можно ли сделать выноски для размеров не под 90 градусов, а под произвольным? и можно ли сделать так, чтобы по умолчанию отнесение выноски от размера было на другом расстоянии?
__________________
Идеал оптимизации - это когда жмёшь куда попало, а получаешь то, что нужно.
Isuma вне форума  
 
Непрочитано 16.12.2020, 22:35
#68
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Приветствую, не нашел опцию в программе которая выравнивает хвосты у размерных линий по прямой, скриншот как было и как стало прилагаю,

заранее благодарен
Миниатюры
Нажмите на изображение для увеличения
Название: Захват44.jpg
Просмотров: 107
Размер:	30.7 Кб
ID:	232739  
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 16.12.2020, 23:18
#69
Кулик Алексей aka kpblc
Moderator

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


Настраивай размерный стиль (ставь фиксированный размер выносных линий). Мне так каэцца.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.12.2020, 07:23
#70
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Дело в том что эта процедура нужна для корректировки уже начерченного массива размеров, чтобы чертеж почистить, приходится проводить линию и каждый размер, а именно у размера по два хвоста и вытягивать или подрезать за ручки, так как не работает почему-то команда удлинить и укоротить, вот так в 22 веке топорная работа.... интересно существует уже лисп программка за 15 лет, или это только мне понадобилось?

где это нужно, когда хочется чтобы чертеж в решетку из размеров не превращался, их выносишь на пустую область, тем самым чертеж становится чистый, а размеры по периметру... и т.д.


Ах да хотел спросить как правильно эти хвосты называть по технически, полка знаю, засечки знаю, а это как называется?
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 17.12.2020, 09:27
#71
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от dextron3 Посмотреть сообщение
как правильно эти хвосты называть
Выносные линии - см. выше. Создаешь новый размерный стиль и назначаешь его размерам, в чем проблема-то?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.12.2020, 13:11
#72
dextron3

проектировшик
 
Регистрация: 01.01.2007
СССР
Сообщений: 5,149


Так выносные линии которые разной длины они в ручную расставлялись с автоматической привязкой, то есть не важно в каком стиле, они как были разной длины так и остались, или Вы что то другое имеете ввиду?


мне нужно выравнивать именно точки прикрепления выносных линий в одну прямую, либо по Х либо по У
__________________
инженер проектировшик с опттом программа авто гад образование высшие
dextron3 вне форума  
 
Непрочитано 17.12.2020, 13:15
#73
Кулик Алексей aka kpblc
Moderator

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


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