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

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

Перевёрнутый размер.

Ответ
Поиск в этой теме
Непрочитано 22.03.2006, 17:52 #1
Перевёрнутый размер.
Grinzaid
 
Архитектор
 
Израиль
Регистрация: 14.10.2003
Сообщений: 365

Ситуяйция такая:

Некоторые размеры начерчены при перевёрнутом UCS. При возвращении в UCS World никак не могу заставить эти перевёртыши отображаться нормально. А новые размеры тем временем получаются "традиционной ориентации".

Таким образом на чертеже присутствуют размерные значения, повёрнутые во все возможные направления. Сравнительный анализ параметров двух разных размеров не показал ни одного отличия, да и на matchprop перевёртыши не реагируют. Как это исправить?
__________________
С уважением,
Влад Гринзайд.
Просмотров: 15635
 
Непрочитано 22.03.2006, 17:57
#2
X-DeViL

Бизнес-шмизнес
 
Регистрация: 26.05.2004
Питер
Сообщений: 1,911


Одно время я такую тему... поищи что ответили...
X-DeViL вне форума  
 
Непрочитано 22.03.2006, 18:03
#3
Никита В.

CAD Operator
 
Регистрация: 01.11.2005
Samara-Gorodok
Сообщений: 389


А никак...
Я сам часто пользуюсь линейными размерами в новых ПСК вместо DimALig. По сути дела это просто напросто повернутые DimLinear.
__________________
АвтоКАД это не только электронный кульман,
Но и великий ГЕМОР
Никита В. вне форума  
 
Непрочитано 22.03.2006, 18:29
#4
asys

архитектор
 
Регистрация: 10.08.2005
Ростов-на-Дону
Сообщений: 5,342


МОгу предложить так:
ставишь ПСК и вид по размеру (чтоб нормально отображался) потом Copy wiht base point, переходишь в world ПСК и вставляешь. Один болшой бед - при множестве разных размерови ПСК реальный гимор
asys вне форума  
 
Непрочитано 23.03.2006, 17:04
#5
Zouss


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


закинул в download рецептик на lsp
http://dwg.ru/dwl/index.php?id=610
жду каментов, ибо подозреваю, что можно бы и доработать
Zouss вне форума  
 
Непрочитано 23.03.2006, 17:36
#6
Кулик Алексей aka kpblc
Moderator

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


Комментарии закинул туда.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 24.03.2006, 15:04
#7
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


Zouss, что-то эта штука неправильно фурычит: она переворачивает размеры, перпендикулярные выбнанному, в нули.
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Непрочитано 24.03.2006, 15:31
#8
Zouss


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


Grinzaid, спасибо за ценную информацию. Попробуй закомментировать строку файла, которая правит 50 группу
Код:
[Выделить все]
      (progn
;;;	(setq ed (subst templdx50 (assoc 50 ed) ed))   ;правим группы на нужные нам
	(setq ed (subst templdx51 (assoc 51 ed) ed))
	(entmod ed)				       ;обновляем примитив в БД чертежа			
      ) ;_  progn
придется таки прочитать инструкцию по dxf, как рекомендовал kpblc, кстати, если вышлешь фрагмент своего чертежа оно вернее будет - у меня банально нет реального материала на котором можно погонять прогу и отловить подобные спотыкачки
Zouss вне форума  
 
Непрочитано 24.03.2006, 15:40
#9
AY

webcad.pro
 
Регистрация: 06.01.2005
Московская обл.
Сообщений: 501


Вот ссылка на такую же тему:
http://dwg.ru/forum/viewtopic.php?t=3318
AY вне форума  
 
Автор темы   Непрочитано 24.03.2006, 20:49
#10
Grinzaid

Архитектор
 
Регистрация: 14.10.2003
Израиль
Сообщений: 365
<phrase 1=


А я вдруг допёр как это сделать по-рабоче-крестьянски:

Код:
[Выделить все]
(defun c:ddd ()				       
  (command "select" pause "")
  (command "_copybase" "0,0" "p" "")
  (command "erase" "p" "")
  (command "_pasteclip" "0,0" "")
  )
__________________
С уважением,
Влад Гринзайд.
Grinzaid вне форума  
 
Непрочитано 25.04.2006, 12:41
#11
Кулик Алексей aka kpblc
Moderator

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


Подниму тему по новой. Вариант, без проверок - времени нет
Код:
[Выделить все]
(defun c:dimred	(/ adoc ent selset item)
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark adoc)
  (if (and (setq ent (entsel "\nУкажите \"правильный\" размер <Выход> : "))
	   (setq ent (car ent))
	   (= (cdr (assoc 0 (entget ent))) "DIMENSION")
	   (setq selset (ssget '((0 . "DIMENSION"))))
	   ) ;_ end of and
    (while (and	selset
		(> (sslength selset) 0)
		) ;_ end of and
      (setq item (ssname selset 0))
      (ssdel item selset)
      (entmod (subst item
		     (assoc 210 (entget ent))
		     (assoc 210 (entget item))
		     ) ;_ end of subst
	      ) ;_ end of entmod
      ) ;_ end of while
    ) ;_ end of if
  (vla-endundomark adoc)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 25.04.2006, 15:54
#12
Zouss


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


почему все таки 210 группа?
из ACADного хелпа

Цитата:
Group Codes in Numerical Order

210 Extrusion direction (fixed)
DXF: X value of extrusion direction
APP: 3D extrusion direction vector

220, 230
DXF: Y and Z values of the extrusion direction
Zouss вне форума  
 
Непрочитано 25.04.2006, 16:05
#13
Кулик Алексей aka kpblc
Moderator

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


Так если нарисовать 2 примитива, один в мировой, второй - нет, то отличаться у них будут 210 группы примерно так:
1 примитив: (210 0.0 0.0 1.0)
2 примитив: (210 0.0 1.0 0.0)
Соответственно поменяв 210 группу, мы поменяем ему OCS.
В любом варианте, я код не проверял! Если не работает, прошу ногами в прыжках не бить
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.04.2006, 16:14
1 | #14
Кулик Алексей aka kpblc
Moderator

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


Ну вот, благодаря усилиям Magic, появилось нечто такое:
Код:
[Выделить все]
(defun c:dimred     (/ adoc ent selset item)
  (vl-load-com)
  (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark adoc)
  (if (and (setq ent (entsel "\nУкажите \"правильный\" размер <Выход> : "))
        (setq ent (car ent))
        (= (cdr (assoc 0 (entget ent))) "DIMENSION")
        (setq selset (ssget '((0 . "DIMENSION"))))
        ) ;_ end of and
    (while (and     selset
          (> (sslength selset) 0)
          ) ;_ end of and
      (setq item (ssname selset 0))
      (ssdel item selset)
      (entmod (subst
          (assoc 210 (entget ent))
          (assoc 210 (entget item))
          (entget item)
          ) ;_ end of subst
           ) ;_ end of entmod
      (vla-put-rotation
     (vlax-ename->vla-object item)
     (vla-get-rotation (vlax-ename->vla-object ent))
     ) ;_ end of vla-put-rotation
      ) ;_ end of while
    ) ;_ end of if
  (vla-endundomark adoc)
  ) ;_ end of defun
Вроде как работает
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 14.06.2006, 13:05
#15
Om81

Хочу быть фотографом :)
 
Регистрация: 21.10.2005
Москва, Кисловодск
Сообщений: 2,538
<phrase 1=


Обнаружил, что если скопировать в буфер размеры с повернутыми соответственно UCS числами, а потом вставить, например, в другой файл в виде блока - ориентация текста сохраняется.. если блок не взрывать) Другие способы, как я понимаю, связаны с программированием.
__________________
Камень на камень, кирпич на кирпич..
Om81 вне форума  
 
Непрочитано 14.06.2006, 14:22
#16
kha

BIM, С#, AutoCAD, LISP
 
Регистрация: 15.03.2006
Дуброво
Сообщений: 657


,,,
kha вне форума  
 
Непрочитано 14.06.2006, 14:23
#17
kha

BIM, С#, AutoCAD, LISP
 
Регистрация: 15.03.2006
Дуброво
Сообщений: 657


Я решил эту траблу таким способом.

1. Выделить все размеры что нужно исправить и повернуть их на такой угол, чтобы встали как положено ( обычно +/-90 градусов в зависимости от ситуации)
2. Создать блок с повёрнутыми размерами
3. Повернуть блок обратно (за первую точку взять ту же самую, вокруг которой был произведён первый поворот)
4. Войти в блок и отминусовать все размеры из блока в чертёж

Ни в коем случае не взрывайте блок - размеры опять перевернутся
[ATTACH]1150280604.dwg[/ATTACH]
kha вне форума  
 
Непрочитано 14.06.2006, 18:37
#18
BigBrother

Design & programming :)
 
Регистрация: 14.02.2004
Новосибирск
Сообщений: 172
<phrase 1= Отправить сообщение для BigBrother с помощью Skype™


Добавлю по 210-й группе, ее можно использовать для выравнивания параллельно виду для образмеренной трехмерки при смене точки зрения.
Соотв. в коде
Цитата:
kpblc
Код:
[Выделить все]
(assoc 210 (entget item))
заменить на
Код:
[Выделить все]
(assoc 210 (getvar "viewdir"))
BigBrother вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Перевёрнутый размер.