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

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

Проблема с высотными отметками на горизонталях

Ответ
Поиск в этой теме
Непрочитано 07.05.2009, 17:27 #1
Проблема с высотными отметками на горизонталях
Re-Maker
 
Регистрация: 21.04.2009
Сообщений: 38

Всем доброго времени суток!
Поискал темы по ключевому слову "горизонтали", однако ответа на свой вопрос не нашел.

Не так давно стал заниматься топографией. Большую часть работы выполняю в Topocad V11, затем экспортирую все в AutoCAD.
Столкнулся со следующей проблемой.

При создании горизонталей, Topocad вставляет текст, указывающий высотную отметку, прямо на саму горизонталь, однако линия горизонтали, как бы прерывается, оставляя зазор для легкой читаемости текста. При экспортировании чертежа в AutoCAD линия горизонтали не имеет такого зазора и проходит прямо по тексту, что делает его нечитабельным. Резать горизонталь нельзя, она должна оставаться целой. Следовательно речь идет и визуальном "колдовстве"

Я прилагаю zip файл с изображением того, как все красиво выглядит в Topocad-е и AutoCAD файл как результат экспорта.
Помогите сделать так, чтобы в AutoCAD-е выглядело также, как и в Topocad.

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

Просмотров: 9122
 
Непрочитано 07.05.2009, 19:36
#2
AlphaGeo


 
Сообщений: n/a


AutoCAD'овский файл посмотреть не получилось - версия файла больно уж крута для моего софта.
Но не глядя могу посоветовать после импорта в AutoCAD подкладывать маски под текст: для однострочного текста может помочь команда TEXTMASK из ExprexTools, для многострочного текста - опция скрытия заднего плана, встроенная в сам мтекст.
Для упрощения обработки больших объемов данных можно воспользоваться командой БВЫБОР (_.QSELECT) для выбора всех подписей горизонталей по их определенным свойствам.
 
 
Автор темы   Непрочитано 07.05.2009, 20:27
#3
Re-Maker


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


Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
AutoCAD'овский файл посмотреть не получилось - версия файла больно уж крута для моего софта.
Прилагаю тот же файл в версии R14.
Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Но не глядя могу посоветовать после импорта в AutoCAD подкладывать маски под текст: для однострочного текста может помочь команда TEXTMASK из ExprexTools, для многострочного текста - опция скрытия заднего плана, встроенная в сам мтекст.
ОГРОМНОЕ СПАСИБО! Получилось! Текст однострочный, так что ExpressTools подошел.
Цитата:
Сообщение от AlphaGeo Посмотреть сообщение
Для упрощения обработки больших объемов данных можно воспользоваться командой БВЫБОР (_.QSELECT) для выбора всех подписей горизонталей по их определенным свойствам.
А вот с этим проблемы. Возможно я нарушаю последовательность. Выделить только текст на горизонталях получается, но применить это выделение к TEXTMASK - нет. Буду благодарен, если опишите процесс по шагам.
Вложения
Тип файла: dwg
DWG R14
Guzdek_ContoursR14.dwg (155.7 Кб, 1469 просмотров)
Re-Maker вне форума  
 
Непрочитано 07.05.2009, 20:38
#4
Кулик Алексей aka kpblc
Moderator

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


Код:
[Выделить все]
Command: textmask
Initializing...
Current settings: Offset factor = 0.3500, Mask type = Wipeout
Select text objects to mask or [Masktype/Offset]: _all
<...>
Select text objects to mask or [Masktype/Offset]: <Enter>
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 07.05.2009, 20:44
#5
Re-Maker


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Код:
[Выделить все]
Command: textmask
Initializing...
Current settings: Offset factor = 0.3500, Mask type = Wipeout
Select text objects to mask or [Masktype/Offset]: _all
<...>
Select text objects to mask or [Masktype/Offset]: <Enter>
Получилось! Сначала настроил QuickSelect, затем проделал то, что сверху. Еще раз ОГРОМНОЕ СПАСИБО!
Re-Maker вне форума  
 
Автор темы   Непрочитано 11.05.2009, 19:24
#6
Re-Maker


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


Еще одна проблема, связанная с высотными отметками на горизонталях.
Дело в том, что ориентировка текста на одних горизонталях сверху вниз, а на других - снизу вверх. Как сделать так, чтобы на всех горизонталях текст отображался одинаково? Прилагаю файл для ясности.
Заранее спасибо!
Вложения
Тип файла: dwg
DWG R14
Text_Contours.dwg (244.6 Кб, 1480 просмотров)
Re-Maker вне форума  
 
Непрочитано 11.05.2009, 21:13
#7
Кулик Алексей aka kpblc
Moderator

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


Либо вручную, меняя угол поворота; либо придется писать собственную программку. Либо налаживать тот софт, который эти отметки проставляет.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.05.2009, 00:24
#8
Re-Maker


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Либо вручную, меняя угол поворота; либо придется писать собственную программку. Либо налаживать тот софт, который эти отметки проставляет.
Понятно....
А я решил, что есть инструмент, в котором можно указать вектор и выстроить по нему текст.
Кстати, неужели в AutoCAD нет возможности вращать несколько объектов, где в качестве опорных точек были бы математические центры объектов.

А программку заказать можно? Это на случай если родная программа не справится с задачей.

Нашел! На одном из буржуйских форумов Команда TORIENT! То, что нужно! Даже угол поворота указывать не надо. Там по умолчанию текст поворачивается по принципу Most Readable!

Последний раз редактировалось Re-Maker, 12.05.2009 в 01:32.
Re-Maker вне форума  
 
Непрочитано 12.05.2009, 08:17
#9
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


Re-Maker, в Express Tools есть инструмент для создания маски вокруг текста, для создания разрывов в горизонталях в принципе подойдет. Но, у меня он не очень устойчиво работает.

Потом, есть еще такой лисп. Тоже может быть полезен в вашей ситуации.

Код:
[Выделить все]
;;;*****************************************************************************************
;;; PL_MTextMask.LSP
;;;*****************************************************************************************
;;; Copyright ©2005 Пётр В. Лоскутов (Alaspher)
;;; e-mail: alaspher@hotmail.com
;;;*****************************************************************************************
;;; ВЕРСИЯ: 0.9 beta
;;;*****************************************************************************************
;;; ОГРАНИЧЕНИЕ ГАРАНТИЙ
;;; ПРОГРАММА РАСПРОСТРАНЯЕТСЯ НА УСЛОВИЯХ "КАК ЕСТЬ".
;;; АВТОР НЕ БЕРЕТ НА СЕБЯ И НЕ ПОДРАЗУМЕВАЕТ КАКИХ-ЛИБО ГАРАНТИЙНЫХ ОБЯЗАТЕЛЬСТВ.
;;; ВЫ ИСПОЛЬЗУЕТЕ  ПРОГРАММУ НА СВОЙ РИСК.
;;; АВТОР НЕ БЕРЕТ НА СЕБЯ ОТВЕТСТВЕННОСТЬ ЗА ПОТЕРЮ ДАННЫХ, УЩЕРБ, ПОТЕРЮ ПРИБЫЛИ ИЛИ ЛЮБЫЕ
;;; ДРУГИЕ ПОТЕРИ, ПРОИЗОШЕДШИЕ ВО ВРЕМЯ ИСПОЛЬЗОВАНИЯ ИЛИ НЕПРАВИЛЬНОГО ИСПОЛЬЗОВАНИЯ
;;; ДАННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
;;;*****************************************************************************************
;;; Разрешается использовать, копировать, изменять, и распространять это программное
;;; обеспечение бесплатно для любой цели при условии, что указанные выше знак авторского
;;; права и примечания об ограничениях гарантий будут приводиться во всех копиях.
;;;*****************************************************************************************
;;; Команда - mtmsk предназначена для включения/выключения маскирования графических объектов
;;; находящихся за многострочным текстом. При отказе от выбора цвета маски, маскирование
;;; производится цветом фона.
;;;*****************************************************************************************
;;;
(defun PL:MTextMask (/ app col doc ent extd i off sel sort tmp trs)
  (setq i -1)
  (if (and (setq sel (ssget ":L" '((0 . "MTEXT"))))
           (> (sslength sel) 0)
           (not (initget 196 "Remove Exit"))
           (or (setq off (vl-catch-all-apply
                           (function getdist)
                           '("\nУкажи величину отступа маски [Remove/Exit] <1.0>: ")
                         )
               )
               (setq off 1.0)
           )
           (not (vl-catch-all-error-p off))
      )
    (if (/= off "Exit")
      (progn
        (if (numberp off)
          (progn (or (setq trs 1
                           col (acad_colordlg 7)
                     )
                     (setq trs 3
                           col 256
                     )
                 )
                 (setq app (list (cons 45 off) (cons 63 col) (cons 90 trs)))
          )
          (setq app '((90 . 2)))
        )
        (while (setq ent (ssname sel (setq i (1+ i))))
          (entmod (append (PL:DXF-MltClr (entget ent) '(45 63 90 441) nil) app))
          (setq tmp (cons (entupd ent) tmp))
        )
        (if (numberp off)
          (progn
            (setq tmp  (mapcar (function vlax-ename->vla-object) tmp)
                  doc  (vla-get-Document (car tmp))
                  extd (vla-GetExtensionDictionary (pl:get-active-space doc))
            )
            (if (vl-catch-all-error-p
                  (setq sort (vl-catch-all-apply
                               (function vla-GetObject)
                               (list extd "ACAD_SORTENTS")
                             )
                  )
                )
              (setq sort (vla-AddObject extd "ACAD_SORTENTS" "AcDbSortentsTable"))
            )
            (vla-MoveToTop sort (PL:List-to-Variant tmp))
            (vla-Regen doc acActiveViewport)
          )
        )
      )
    )
  )
)

(defun PL:DXF-MltClr (_LIST _CODES _T)
  (cond
    ((null _LIST) NIL)
    ((/= _T (= (type (member (caar _LIST) _CODES)) 'list))
     (PL:DXF-MltClr (cdr _LIST) _CODES _T)
    )
    (t (cons (car _LIST) (PL:DXF-MltClr (cdr _LIST) _CODES _T)))
  )
)

(defun pl:get-active-space (doc)
  (if (and (zerop (vla-get-activespace doc))
           (= :vlax-false (vla-get-mspace doc))
      )
    (vla-get-paperspace doc)
    (vla-get-modelspace doc)
  )
)

(defun PL:List-to-Variant (lst / tmp)
  (setq tmp (if (apply (function =) (setq tmp (mapcar (function type) lst)))
              (car tmp)
            )
  )
  (vlax-make-variant
    (vlax-safearray-fill
      (vlax-make-safearray
        (cond ((not tmp) vlax-vbVariant)
              ((= tmp 'INT) vlax-vbLong)
              ((= tmp 'REAL) vlax-vbDouble)
              ((= tmp 'STR) vlax-vbString)
              ((= tmp 'NIL) vlax-vbNull)
              ((= tmp 'VLA-OBJECT) vlax-vbObject)
              (t vlax-vbVariant)
        )
        (cons 0 (1- (length lst)))
      )
      lst
    )
  )
)

(defun c:mtmsk ()
  (PL:MTextMask)
  (princ)
)

(progn (princ "\nType - 'mtmsk' in the command string for beginning.") (princ))

А, почему вы для этих задач выбрали чистый Автокад, а не Civil или Land Desktop?
Olga_@@@ вне форума  
 
Непрочитано 12.05.2009, 09:47
#10
VVA

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


Цитата:
Кстати, неужели в AutoCAD нет возможности вращать несколько объектов, где в качестве опорных точек были бы математические центры объектов.
Rotate нескольких объектов вокруг своей оси
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 12.05.2009, 11:15
#11
Re-Maker


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


Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
Re-Maker, в Express Tools есть инструмент для создания маски вокруг текста, для создания разрывов в горизонталях в принципе подойдет. Но, у меня он не очень устойчиво работает.
А у меня с ним никаких проблем (тьфу-тьфу не сглазить!). Работает как надо.
Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
Потом, есть еще такой лисп. Тоже может быть полезен в вашей ситуации.
Это тоже про маску?
Цитата:
Сообщение от Olga_@@@ Посмотреть сообщение
А, почему вы для этих задач выбрали чистый Автокад, а не Civil или Land Desktop?
Вообще я стараюсь научиться делать все в TopoCAD, однако программа молодая, и возможности ограничены. Civil ставил, но что-то разобраться не получается.
Re-Maker вне форума  
 
Непрочитано 12.05.2009, 13:37
#12
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


Re-Maker, этот лисп дорисовывает Мтексту бэкграунд, не создавая лишних примитивов и сохраняя возможность редактирования мтектов.

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

Цитата:
Кстати, неужели в AutoCAD нет возможности вращать несколько объектов, где в качестве опорных точек были бы математические центры объектов.
Объекты? у которых в свойствах есть Rotation (угол поворота)? можно можно крутить, меняя этот угол прямо в окне свойств. Для предварительного выбора, если вы работаете с Civil, Map или Land Desktop, удобно пользоваться командой Select Similar (Выбрать подобные).

Последний раз редактировалось Olga_@@@, 12.05.2009 в 14:15.
Olga_@@@ вне форума  
 
Непрочитано 12.05.2009, 14:38
#13
VVA

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


Olga_@@@,
Цитата:
Команда textmask на большом количестве объектов у меня глючит, т.е. сначала все замечательно, а через некоторое время все тексты оказываются под маской
Возможно это тебе поможет. И еще просьба выслать глючный чертеж мне на почту. Мне он нужен для теста, а то в последнее время такие черчежи уже и не попадаются.
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 12.05.2009, 16:27
#14
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


VVA, файл выложить не могу, генплан города - ДСП.
Причины глюка предположить трудно, если только проблема не связана с версией ET. В том файле не только 3 человека поработали, но еще много чего импортировано из разных программ, от разных исполнителей. Глюки наблюдала в ET под Land Dasktop 2005 (англ.)
За ссылку спасибо. Посмотрела. При случае испытаю Ваш лисп.
Но, в textmask меня не устраивает еще нередактируемость мтекcта после наложения маски.

Последний раз редактировалось Olga_@@@, 12.05.2009 в 19:04.
Olga_@@@ вне форума  
 
Автор темы   Непрочитано 12.05.2009, 17:58
#15
Re-Maker


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


Еще кое-что связанное с горизонталями. С текстом все получилось, т.е. горизонталь под ним не видна, хотя реально осталась целой. А возможно ли добиться такого же эффекта допустим с линией? Поверх горизонталей проходит две линии, обозначающие дорогу. Хотелось бы, не испульзуя Trim, т.е. не нарушая целостность горизонталей, спрятать их там, где проходят дороги. Чтобы внутри дорог горизонталей не было.
Re-Maker вне форума  
 
Непрочитано 12.05.2009, 19:05
#16
Olga_@@@


 
Регистрация: 14.03.2008
Екатеринбург
Сообщений: 678
<phrase 1= Отправить сообщение для Olga_@@@ с помощью Skype™


Re-Maker, команда _wipeout.
Посмотрите, может быть подойдет.
Olga_@@@ вне форума  
 
Непрочитано 12.05.2009, 19:14
#17
AlphaGeo


 
Сообщений: n/a


Цитата:
Сообщение от Re-Maker Посмотреть сообщение
Еще кое-что связанное с горизонталями. С текстом все получилось, т.е. горизонталь под ним не видна, хотя реально осталась целой. А возможно ли добиться такого же эффекта допустим с линией? Поверх горизонталей проходит две линии, обозначающие дорогу. Хотелось бы, не испульзуя Trim, т.е. не нарушая целостность горизонталей, спрятать их там, где проходят дороги. Чтобы внутри дорог горизонталей не было.
Ну, можно тем же методом скрытия горизонталей под маской. Есть такая команда в AutoCAD МАСКИРОВКА (_WIPEOUT). Правда есть такой нюанс, она работает только с замкнутыми полилиниями, поэтому чтобы срыть линии пересекающие дорогу нужно будет скрывать границы маски с помощью опции "контур" все той же команды МАСКИРОВКА. Но это ручной способ. Может, кто и программку какую подкинет.

Offtop: Добавлено:
Угу, оказывается я так медленно пишу...
 
 
Непрочитано 12.05.2009, 19:28
#18
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Команда _wipeout тебе поможет. Это та же маска, только обособленная. Только надо тогда еще освоить панель Порядок прорисовки (Draworder) - там все просто - надо определить, какой объект будет "над", а какой "под"
Offtop: Добавлено: Давно страничку открыл и отвлекся... Насоветовали тут и без меня уж, я еще более медленно

Последний раз редактировалось skkkk, 12.05.2009 в 19:45.
skkkk вне форума  
 
Автор темы   Непрочитано 12.05.2009, 19:43
#19
Re-Maker


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


Цитата:
Сообщение от Re-Maker Посмотреть сообщение
Нашел! На одном из буржуйских форумов Команда TORIENT! То, что нужно! Даже угол поворота указывать не надо. Там по умолчанию текст поворачивается по принципу Most Readable!
Перестала работать. Выдает следующую ошибку:

Код:
[Выделить все]
Select TEXT, MTEXT, ATTDEF, or BLOCK inserts w/attributes...
Select objects: Specify opposite corner: 556 found
Select objects:
556 objects were not parallel to the current UCS.
No valid objects selected.
Есть предложения?
Re-Maker вне форума  
 
Непрочитано 12.05.2009, 19:45
#20
skkkk


 
Регистрация: 20.03.2008
Сообщений: 2,680


Кстати, может, кто знает, как сделать контур wipeout'а полностью невидимым? Я делаю контур из маленьких точек по вершинам. В случае с пересечением горизонтали с дорогой их (точки wipeout'а) можно спрятать за линиями дороги (порядком прорисовки), а если спрятать не за чем? Они впрочем несильно напрягают, но как-то это немастерски что ли...
skkkk вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Проблема с высотными отметками на горизонталях



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Align, 3dalign проблема с высотными отметками перемащаемых объектов mvg AutoCAD 1 20.06.2009 13:07
Проблема с файлом после импорта из Компас Alex 166 AutoCAD 7 22.08.2008 10:33
проблема экспорта файлов по IFC из ADT в лиру и ревит thygank Revit 1 03.08.2008 18:08
Проблема с ксероксом Canon PC860 _Oleg_ Разное 5 26.12.2007 10:18
Проблема при открытии файла с "Немецким именем" pro-nick AutoCAD 16 18.01.2006 15:05