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

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

Произвольное смещение многострочных атрибутов в блоке.

Ответ
Поиск в этой теме
Непрочитано 22.12.2008, 15:26
Произвольное смещение многострочных атрибутов в блоке.
Makswell
 
Инженер-строитель
 
Киров
Регистрация: 15.08.2007
Сообщений: 2,204

Всем привет.

Даже не знаю, может надо было сразу в в программирование, но тем не менее - может не так всё мрачно окажется.

Суть проблемы такая. В блоке присутствуют многострочные атрибуты. И они время от времени произвольно смещаюся. Причем, как показало изучение атрибутов через объектную модель, смещение происходит именно в самом описании блока (т.е. в семействе блоков), а не во вхождении. Но в том то и дело, что сам блок не редактировался!

Прикладываю файлы (формат 2007): в одном блок - как он должен быть, во втором произошло смещение (ещё раз подчеркну - редактирование блока ни коим образом не применялось).

Вот лисп, которым я смотрел интересующие меня свойства многострочных атрибутов в данном блоке:
Код:
[Выделить все]
(vlax-for fam_item
	  (vla-Item
	    (vla-get-Blocks (vla-get-ActiveDocument (vlax-get-acad-object)))
	    "M-Форматка(дин_блок)_подшивка"
	  )
  (if (= (vla-get-ObjectName fam_item) "AcDbAttributeDefinition")
    (if	(= (vla-get-MTextAttribute fam_item) :vlax-true)
      (progn
	(mapcar	'(lambda (x)
		   (princ x)
		   (princ "=")
		   (if (= (type (vlax-get-property fam_item x)) 'variant)
		     (princ (vlax-safearray->list
			      (vlax-variant-value (vlax-get-property fam_item x))
			    )
		     )
		     (princ (vlax-get-property fam_item x))
		   )
		   (terpri)
		 )
		(list 'TagString     'Alignment	    'InsertionPoint
		      'MTextBoundaryWidth	    'MTextDrawingDirection
		      'TextAlignmentPoint
		     )
	)
	(terpri)
      )
    )
  )
)
Лисп показал, что у атрибута "ПРОЕКНАЯ_ФИРМА" изменились свойства InsertionPoint и TextAlignmentPoint. Вот так вот сами по себе взяли и изменились.

Вопрос как всегда: кто виноват и что делать?

ЗЫ Автокад 2008 - SP1 русский

Вложения
Тип файла: zip Приложение.zip (81.1 Кб, 266 просмотров)

Просмотров: 60039
 
Непрочитано 16.07.2009, 23:28
#21
Nikolay 2


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


Проблема та же, все многострочные атрибуты съезжают, однострочные (галочку убираю) жестко сидят на месте (2008+SP1), прочел все похожие темы - решения так и не нашел. Оно вообще есть?

Последний раз редактировалось Nikolay 2, 16.07.2009 в 23:34.
Nikolay 2 вне форума  
 
Непрочитано 16.07.2009, 23:58
#22
Кулик Алексей aka kpblc
Moderator

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


Есть! Называется ServicePack, насколько я помню.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 17.07.2009, 08:27
#23
Nikolay 2


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Есть! Называется ServicePack, насколько я помню.
Алексей, SP1 стоит и я об этом написал, насколько знаю SP2 под 2008 нет. Переустановка имеющегося SP1 результата не дала. И тем не менее следующие действия привели к положительному результату: скачал заново SP1, установил и только после перезагрузки артибут не перемещается, на второй машине эти же операции эффекта не дали, переустановил КАД, накатил скачаный SP1 - все ОК. На других машинах не проверял, в крайнем случае буду использовать второй вариант...
Nikolay 2 вне форума  
 
Непрочитано 03.09.2010, 01:15
#24
Botanik

Инженер-конструктор
 
Регистрация: 19.03.2008
Сообщений: 108


Вынуждет апнуть тему
Такая же проблема. Возникает на автокадах 2007-2010 (на других не тестировал). Причем, как на русских, так и на английских.
Цитата:
Там я писал, что помогает _ATTSYNC. Но это помогает при смещении атрибутов в вхождении блока. Такое тоже происходило, я применял _ATTSYNC и особо не волновался, хотя напряг какой-то был.
Для меня напряг имеется недетский, поскольку выпуском занимается другой отдел. И когда они открывают файл, а атрибуты "убежали", то втихаря ржут над моими "инновациями" (как результат - замедление прогресса в организации). А бегать и на каждом компе набирать attync - это не решение.

Цитата:
Этот атрибут "ПРОЕКНАЯ_ФИРМА" содержит значение по-умолчанию %<\AcSm SheetSet.Проектная фирма \f "%tc3">%, т.е. поле, ссылающееся на дополнительное свойство подшивки "Проектная фирма". Может в этом какая-то загвоздка?
У меня "уползают" даже атрибуты, ссылающиеся на нативные свойства подшивки (листа), такие как currentsheetdescription, sheetissue итп.

Еще нюанс. Я всегда названия листов забиваю не в поле "Sheet title", а в поле "sheet description", потому как поле "sheet title" ругается при "name longer than 255 characters", а зачастую у меня меньше символов и не бывает ("sheetdescription" на такое не ругается). В результате заметил, что при числе символов до 255 ничего никуда не уползает, чуть больше - успевай ловить.
Получается такая штука:
1.Открываем чертежик, где многострочный атрибут "убежал", делаем attsync и возвращаем на место непослушный атрибут.
2.Сохраняем.
3.В этом же автокаде открываем - все ОК.
4.Открываем на другом компьютере и переходим к п.1. Цикл?

Я сначала думал, что это глюк автокада 2007. Потом пришел 2008, 2009. На 2011 я понял, что проблема в руках. Но, блин, ткнул бы кто носом, поскольку вынужден маятся уже 4й год, а толку мало.
__________________
Железобетон - он и в Африке железобетон.
И только в Москве - это силесопитон.
Botanik вне форума  
 
Непрочитано 03.09.2010, 01:52
#25
Startrek

AutoCAD/AutoLISP
 
Регистрация: 27.08.2003
Seattle/USA
Сообщений: 1,133


Я так полагаю что это БАГ, уменя нечто подобное проиxодит с м-техтом при открывынии чертежа сделанного скажем в акаде 2009/2010 в 2007 правда только если техт центрован.
БАГ ЭТО ребята и как исправить незнаю. С м-техтом просто взрываю его до однострочного текста или внутри м-техта делаю все левосторонним и подгоняю пустыми пробелами до нужной кондиции. Морока н как по другому незнаю.
А с атрибутами ATTSYNC работает ты прав.
__________________
Сквозь тернии к звездам.... и обратно :yes:
Startrek вне форума  
 
Непрочитано 03.09.2010, 02:02
#26
wetr

инженер
 
Регистрация: 09.08.2006
Владивосток
Сообщений: 1,535
<phrase 1= Отправить сообщение для wetr с помощью Skype™


Цитата:
Сообщение от Botanik Посмотреть сообщение
1.Открываем чертежик, где многострочный атрибут "убежал", делаем attsync и возвращаем на место непослушный атрибут.
2.Сохраняем.
3.В этом же автокаде открываем - все ОК.
4.Открываем на другом компьютере и переходим к п.1. Цикл?
Я заметил, что если на другом компьютере установлен такой же кад (у нас это 2010) то проблем не возникает. Если установлена более старая версия автокада - возникает проблема со смещением многострочного атрибута. Недавно установил 2011 поработал в файле и после открыл в 2010 - атрибут съехал. Но после лечения и повторного открытия в 2010 - все осталось нормально.
Совет: отправляй на печать в DWF|PDF

БАГ
__________________
14 Ибо если вы будете прощать людям согрешения их, то простит и вам Отец ваш Небесный (Мф 6, 14)

Последний раз редактировалось wetr, 03.09.2010 в 02:12.
wetr вне форума  
 
Непрочитано 03.09.2010, 08:08
#27
Кулик Алексей aka kpblc
Moderator

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


Ну, есть один "полу"выход (не знаю, сработает или нет) и предложение.
"Полу"выход - добавить автозагружаемый лисп вида
Код:
[Выделить все]
(defun _dwgru-resync-attr ()
  (command "_.attsync" "_n" "*")
  ) ;_ end of defun

(_dwgru-resync-attr)
"Полу"выход - потому, что атрибуты могут быть смещены специально, а этот код их тупо вернет на место. Варианты улучшения, конечно, есть, но надо ли оно вообще?
Предложение - оформить баг в соответствующем разделе форума (если этого еще не сделано). Посмотрим, что из этого получится...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 03.09.2010, 08:31
#28
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,204


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Предложение - оформить баг в соответствующем разделе форума (если этого еще не сделано). Посмотрим, что из этого получится...
А что, есть ещё поддержка Автокада 2008? Я не в курсе просто.
Уже давно никаких обновлений. Если в поздних версиях это не проявляется, то сомневаюсь, что вообще будет обращено внимание на эту проблему. Не нравится что-то - покупай 2011-й, ну ты понял в общем...
Makswell вне форума  
 
Непрочитано 03.09.2010, 08:48
#29
Кулик Алексей aka kpblc
Moderator

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


Makswell, да все понятно... Просто у меня нет возможности потестировать этот момент в 2011 версии Так что уточнение: если баг существует в 2011 версии, можно и оформлять его.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 03.09.2010, 10:16
#30
Botanik

Инженер-конструктор
 
Регистрация: 19.03.2008
Сообщений: 108


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

И еще, мне не совсем понятно, тут на форуме писали, что эту проблему частично решает СП1 для 2008го. В таком случае, почему этот траблшут не перекочевал в последующие версии?
__________________
Железобетон - он и в Африке железобетон.
И только в Москве - это силесопитон.
Botanik вне форума  
 
Непрочитано 05.09.2010, 17:33
#31
Krovlaf

геология, геодезия
 
Регистрация: 29.05.2009
Хабаровск
Сообщений: 184


Сделал я под себя всеформатничек. Ну и в полях "наименование объекта" и "название чертежа" вставил многострочные атрибуты. Как и у всех здесь пишущих они у меня побежали... Помаялся я с ними, хотел было как у всех сделать просто несколько строк однострочных атрибутов. Но после того как в свойствах атрибута поставил в строке "позиция фиксации" - "да" все встало на места и атрибуты никуда не убегают. У меня восьмерка, SP1 установлен.
Krovlaf вне форума  
 
Непрочитано 06.09.2010, 10:34
#32
Botanik

Инженер-конструктор
 
Регистрация: 19.03.2008
Сообщений: 108


Цитата:
все встало на места и атрибуты никуда не убегают
Вот, а теперь попробуйте открыть этот файл на друго компьютере. Причем, чтобы в этом многострочном атрибуте было побольше символов.
__________________
Железобетон - он и в Африке железобетон.
И только в Москве - это силесопитон.
Botanik вне форума  
 
Непрочитано 06.09.2010, 15:04
#33
Krovlaf

геология, геодезия
 
Регистрация: 29.05.2009
Хабаровск
Сообщений: 184


У меня никаких проблем. Файлик прикладываю. Правда в блоке "Унирамка1" допущена ошибка. Все руки не доходят исправить. Дело в том что у плоттера что-то с системными настройками не то (поля слишком широкие) а наши САПРовцы никак не могут/хотят это исправить. Вот барышни с выпуска понапридумывали вольностей: то им 6 мм от внешней рамки до внутренней подавай то 7 мм а многострочные атрибуты все были привязаны к 5 стандартным мм. Так что вернее смотреть на блок "Унирамка". НО факт что атрибуты стоят на месте и никуда не смещаются при открытии файла на любых машинах и на всех версиях поддерживающих многострочные атрибуты. Обратите внимание - у них отсутствуют ручки рамок! а в первоначальном вложении у многострочных атрибутов ручки есть!
При создании всеформатки я рамку многострочных атрибутов натянул на углы ячеек, затем в свойствах многострочных атрибутов поставил "положение фиксации" - "да". После этого забыл про эту проблему.
Немаловажное дополнение. При изменении блока в одном (допустим исходном файле) блоки в других файлах не меняются! Их все приходится переопределять. Я это делаю через центр управления. Иначе копируя блок из старого файла (а многие так и делают) ошибки останутся как были неисправленными.Унирамки.dwg

Последний раз редактировалось Krovlaf, 06.09.2010 в 15:17.
Krovlaf вне форума  
 
Непрочитано 06.09.2010, 21:18
#34
Botanik

Инженер-конструктор
 
Регистрация: 19.03.2008
Сообщений: 108


Специально взял ваш файлик на тестирование. Проблема сохраняется (акад 2008 - 2009).
А атрибуты у вас не расползаются по той причине, что в них вставлен обычный текст, а не поле со ссылкой на подшивку.


P.S.Ребята, может всетаки у кого-нибудь есть возможность проверить баг на 2011-м автокаде? Если проблема сохранится, то обязательно черканем про баг.

P.P.S.Пробовал докопаться до истины через гугл на англоязычных сайтах - результат нулевой. Надеюсь, что это из-за моего плохого английского.
__________________
Железобетон - он и в Африке железобетон.
И только в Москве - это силесопитон.

Последний раз редактировалось Botanik, 06.09.2010 в 21:28.
Botanik вне форума  
 
Непрочитано 21.10.2010, 15:11
1 | #35
Ax3

Programming, automation, CADs, GISs. "Теплоком"
 
Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306


У меня та же проблема. Многострочные атрибуты, содержащие поля, ссылающиеся на значения лукапов самого блока, выравнивание по центру, {добавлено 2010.10.29: lock position = yes}. Сначала эта проблема возникла на 2008-м каде без SP1, установил SP1 - на время забыл про проблему. Но как только значения полей внутри атрибутов превысили какую-то длину (порядка 100-130 символов) - атрибуты стали съезжать. То есть редактируешь файл - все нормально, закрыл-открыл - съехали. Проверял в ACAD2008 SP1, 2009 без SP; ACAD Architecture 2008 SP1, 2009 SP3 (как en, так и ru). Вот пример из жизни:
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 220
Размер:	28.0 Кб
ID:	46918Нажмите на изображение для увеличения
Название: Безымянный1.jpg
Просмотров: 284
Размер:	45.3 Кб
ID:	46919

_attsync в моем случае вообще корявит значения атрибутов, хотя и возвращает их на место:
Нажмите на изображение для увеличения
Название: Безымянный2.jpg
Просмотров: 219
Размер:	43.2 Кб
ID:	46922

На сайте autodesk не обнаружил подходящих под эту проблему хотфиксов

P.S. А в 2011-м так никто и не проверил?

{2010.10.28 11.45.37} В AutoCAD Civil 2010 та же проблема

{2010.10.28 14.39.15}
Есть сильное подозрение, что это связано с использованным для атрибутов шрифтом. К примеру, у меня всем атрибутам назначен стиль Gost, основанный на шрифте mipgost.shx.
Поменял в настройках стиля Gost шрифт на simplex.shx - пропал глюк, атрибуты перестали съезжать.
С eskdu.shx глючит.

>>Botanik
А у тебя какой шрифт используется в многострочных атрибутах?

{2010.10.28 17.01.23}
И еще заметил, что часто помогает установка Boundary width в 0. Правда, тогда приходится руками делить текст на строчки, но это терпимо.
Поправка. Bounding width попробовал установить на 1...2 мм больше фактической ширины текста атрибута - тоже вроде помогает.
Примечание. На самом деле вручную выставлять boundingwidth ни фига не получается, если меняется высота текста. Я использовал
Код:
[Выделить все]
(vlax-put-property <атрибут> 'mtextboundarywidth <число>)
И, кстати, смещение вроде бы происходит при ОТКРЫТИИ файла. Как-то комп тормозил, и я успел заметить, что при открытии файла в первый момент блок выглядит нормально, потом после загрузки каких-то библиотек или после регенерации или после еще хз чего - бац! и атрибут съехал.
<лин, танцы с бубном вокруг костра, 100%.

P>S>
А почему тема заглохла? Может, проблема уже решена, а я и не в курсе?

{2010.10.29 12.16.49}:
Не, установка bounding width в любое значение, отличное от нуля, приводит к смещению длинных многострочных атрибутов с полями. А а вот bounding width = 0 пока помогает 100%. Пока...

P.P.S. Почему молчат все?!
__________________
На LISPе можно мыслить!

Последний раз редактировалось Ax3, 12.11.2010 в 18:08.
Ax3 вне форума  
 
Непрочитано 24.12.2010, 15:09
#36
Andrey10205

Проектирование автомобильных дорог
 
Регистрация: 28.04.2010
Воронеж
Сообщений: 31
<phrase 1=


Цитата:
Сообщение от Ax3 Посмотреть сообщение
Может, проблема уже решена, а я и не в курсе?
Нет, ситуация не решена(( я несколько шрифтов перепробовал, не получается ничего.
Andrey10205 вне форума  
 
Непрочитано 24.12.2010, 15:17
#37
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,336


Andrey10205, сервис пак на AutoCAD установи, прежде всего.
Хмурый вне форума  
 
Непрочитано 24.12.2010, 22:38
#38
sasha_lif

Дизайнер-конструктор
 
Регистрация: 29.05.2004
Kiev
Сообщений: 1,187
<phrase 1=


Krovlaf, (из #33)
подскажите, а смысл создавать блок штампа с атрибутами в поле Н. контроль, должность 1,2,3... в одной рамке написали что нужно, но ведь в других рамках эти атрибуты ведь остануться в стандартном "незаполненном "положении? В чем смысл?

Или можно потом все измененные атрибуты переназначить для всех остальных рамок штампа?
__________________
Kiev, Ukraine

Последний раз редактировалось sasha_lif, 28.12.2010 в 12:28.
sasha_lif вне форума  
 
Непрочитано 12.01.2011, 16:59
#39
Ax3

Programming, automation, CADs, GISs. "Теплоком"
 
Регистрация: 02.02.2007
Россия, Санкт-Петербург
Сообщений: 306


>>Andrey10205
Дружище, можешь образец блока с глючащими атрибутами сюда выложить? И скажи, плз, какие шрифты пробовал?
__________________
На LISPе можно мыслить!
Ax3 вне форума  
 
Непрочитано 31.03.2011, 10:12
3 | #40
Botanik

Инженер-конструктор
 
Регистрация: 19.03.2008
Сообщений: 108


Плотенько покурил заморский форум автодеска. Нашел аналогичную тему аж от февраля 2007го.
Там саппорт предлагает некоторые пути решения проблем:
Цитата:
Seems to be an issue with an annotative text style.
....
Тобишь проблема с аннотативным текстовым стилем. Я знаю, что атрибут можно делать анотативным, но чтобы текстовый стиль - для меня это вновинку. В общем мне это не помогло.
upd: нашел где это делается. Галочку "аннотативность" туда-сюда тоже не помогает.
Цитата:
Tried using the Standard Style as suggested elsewhere in this post and the text did not move.
Reset the Standard Style font to Arial truetype and the problem reoccurred. Reset the Standard Style back to txt.shx and it works again.
Здесь так же высказывается предположение, что проблема в шрифтах. Предлагают пользоваться стандартным текстовым стилем, причем, когда шрифт в нем Arial, то глюк есть, а когда txt.shx - нет.
Мне это тоже не помогло.
Цитата:
Changing the justify to middle left seems to work a bit better.
Изменить привязку текста на середину по левому краю. ПОМОГЛО!
Методом научного тыка выявил, что косяк имеет место быть при наличии горизонтальной центральной привязки текста в атрибуте.
Сильно глубоко я не копал, но, думаю, решение рабочее.
К сожалению нецентральную привязку названия листа наш нормоконтроль принимать отказывается, поэтому для меня вопрос остается открытым.
На том же форуме я прочитал, что этот баг пофиксили в СП1 для 2008й версии и, соответственно, фикс перекочевал в 2009ю версию.
Цитата:
This bug has been fixed for autocad 2009, we are dealing with the same problems..
В справке есть глава "Работа с чертежами в более ранних версиях", там написано следующее:
Цитата:
Если на чертеже AutoCAD 2008 для аннотативного блока не задана ориентация листа, соответствующая компоновке, и этот блок содержит многострочные атрибуты, созданные на основе стиля текста, для которого не задано соответствие ориентации компоновки, при открытии этого чертежа в AutoCAD 2007 (и более ранних версиях) возможно смещение положения этих атрибутов.
Большая просьба к гуру автокада, разжуйте для неуча вышеприведенную выдержку из мануала.
Но, блин, такой косяк вылазит даже на одинаковых автокадах 2009, но на разных машинах.
__________________
Железобетон - он и в Африке железобетон.
И только в Москве - это силесопитон.

Последний раз редактировалось Botanik, 31.03.2011 в 10:32.
Botanik вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Произвольное смещение многострочных атрибутов в блоке.

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Порядок атрибутов в блоке {Smirnoff} Программирование 14 16.06.2022 12:20
Устанавливаемые атрибуты в динамическом блоке и работа с подшивкой. Dmitriy_Altproekt Динамические блоки 45 09.12.2015 10:38
Смещение многострочных атрибутов AutoCad 2008 Abramov AutoCAD 4 03.08.2007 12:33