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

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

Как извлечь тип линии?

Ответ
Поиск в этой теме
Непрочитано 19.10.2007, 18:27 #1
Как извлечь тип линии?
игорёк
 
проектирование
 
москва
Регистрация: 30.10.2005
Сообщений: 216

Здравствуйте уважаемые!
Мне на работу прислали файлик dwg. В нем есть некоторые типы линий которые мне понадобятся в дальнейшем и поэтому хотелось бы извлечь их оттуда.
Я искал файлик с этими типами линий, но перерыв все так и не нашел. Как вытащить эти типы линий в файлик .lin? Копировать линии каждый раз конечно не хочется...
Просмотров: 8285
 
Непрочитано 19.10.2007, 18:35
#2
kp+

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


Такая функция есть в TOOLPACK 9
kp+ вне форума  
 
Непрочитано 19.10.2007, 19:00
#3
ASLYS

Delineante
 
Регистрация: 26.12.2006
Ростов-на-Дону/Madrid
Сообщений: 396
<phrase 1=


eTransmit
ASLYS вне форума  
 
Непрочитано 19.10.2007, 22:36
#4
Кулик Алексей aka kpblc
Moderator

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


etransmit, по-моему, выполняет обратную задачу...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.10.2007, 13:03
#5
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


А если сохранить файл в dxf? При его открытиии линии отображаются нормально, значит описание типов сохраняется в dxf. Никто не знает можно ли их вытащить из dxf?
игорёк вне форума  
 
Непрочитано 22.10.2007, 09:50
1 | #6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Есть хорошая лиспина. LTEXTRACT. Автор Keith™. Опубликована здесь.
Код:
[Выделить все]
;;posted by Keith
;;http://www.theswamp.org/index.php?topic=506.0
;;;   ----------- LTExtract - Version 1.0 -----------
;;;   Copyright (C) 2002  by BCI Computer Solutions
;;;   Author:   K.E. Blackie
;;;   
;;;   
;;;   BCI COMPUTER SOLUTIONS PROVIDES THIS PROGRAM "AS IS" AND WITH
;;;   ALL FAULTS. BCI COMPUTER SOLUTIONS SPECIFICALLY DISCLAIMS ANY
;;;   IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
;;;   USE.  BCI COMPUTER SOLUTIONS DOES NOT WARRANT THAT THE OPERATION
;;;   OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR FREE.
;;;   
;;;   If you need to contact BCI Computer Solutions concerning this
;;;   program you may do so by mail at the following address:
;;;   
;;;   BCI Computer Solutions
;;;   2031 SW Fallon Lane
;;;   Lake City, FL 32025 
;;;   Attn: Software Development
;;;   or
;;;   email [email protected]
;;;   
;;;   DESCRIPTION
;;;   LTExtract will extract all of the linetypes defined in a drawing to a seperate
;;;   linetype definition file, including complex linetypes using text and shape
;;;   modifiers.
;;;
;;;
;;;   ------------------------------------------------------------

(Defun c:ltextract ()
  (setq ltlist (tblnext "LTYPE" t))
  (if ltlist
    (setq ltlist (entget (tblobjname "LTYPE" (cdr (assoc 2 ltlist)))))
  )
  (setq ltfile (getvar "dwgname"))
  (if (= (strcase (substr ltfile (- (strlen ltfile) 3) 4))
 (strcase ".dwg")
      )
    (setq
      ltfile (strcat (substr ltfile 1 (- (strlen ltfile) 4)) ".lin")
    )
    (setq ltfile (strcat ltfile ".lin"))
  )
  (setq ltfile (getfiled "Save Linetype Definition As" ltfile "lin" 9))
  (if ltfile
    (progn
      (setq fn (open ltfile "w"))
      (while ltlist
 (setq ltname (strcat "*" (strcase (cdr (assoc 2 ltlist))))
      ltdesc (cdr (assoc 3 ltlist))
 )
 (setq ltdef "A"
      wval nil
 )
 (setq ltlist (member (assoc 49 ltlist) ltlist))
 (while (assoc 49 ltlist)
  (setq wval (get74 ltlist))
  (setq def (cdr (assoc 49 ltlist)))
  (setq def (strcat "," (rtos def 2 8)))
  (if wval
    (setq ltdef (strcat ltdef wval def))
    (setq ltdef (strcat ltdef def))
  )
  (if (> (length ltlist) 1)
    (setq ltlist (cdr (member (assoc 49 ltlist) ltlist)))
    (setq ltlist (list nil))
  )
 )
 (setq ltlist (tblnext "LTYPE"))
 (if ltlist
  (progn
    (setq ltlist
    (entget (tblobjname "LTYPE" (cdr (assoc 2 ltlist)))
    )
    )
  )
 )
 (if (/= ltdef "A")
  (progn
    (write-line (strcat ltname "," ltdesc) fn)
    (write-line ltdef fn)
  )
 )
      )
      (close fn)
    )
  )
  (princ)
)
(defun get74 (wlist / rval)
  (setq ass74 (cdr (assoc 74 wlist)))
  (cond
    ((= ass74 0) (return nil nil nil nil))
    ((= ass74 1)
     (return (cdr (assoc 2 (entget (cdr (assoc 340 wlist)))))
     nil
     "a"
     nil
     )
    )
    ((= ass74 2)
     (return (cdr (assoc 2 (entget (cdr (assoc 340 wlist)))))
     (cdr (assoc 9 wlist))
     "r"
     nil
     )
    )
    ((= ass74 3)
     (return (cdr (assoc 2 (entget (cdr (assoc 340 wlist)))))
     (cdr (assoc 9 wlist))
     "a"
     nil
     )
    )
    ((= ass74 4)
     (return (cdr (assoc 3 (entget (cdr (assoc 340 wlist)))))
     nil
     "r"
     (cdr (assoc 75 wlist))
     )
    )
    ((= ass74 5)
     (return (cdr (assoc 3 (entget (cdr (assoc 340 wlist)))))
     nil
     "a"
     (cdr (assoc 75 wlist))
     )
    )
    (T (return nil nil nil nil))
  )
  rval
)
(defun return (shx text rot shp / ttext)
  (setq test (cdr (assoc 50 wlist)))
  (if (and test rot)
    (setq rot (strcat rot "=" (angtos test)))
  )
  (setq test (cdr (assoc 46 wlist)))
  (if (and test rot)
    (setq rot (strcat rot ",S=" (rtos test 2 8)))
  )
  (setq test (cdr (assoc 44 wlist)))
  (if (and test rot)
    (setq rot (strcat rot ",X=" (rtos test 2 8)))
  )
  (setq test (cdr (assoc 45 wlist)))
  (if (and test rot)
    (setq rot (strcat rot ",Y=" (rtos test 2 8)))
  )
  (if text
    (setq ttext (strcat ",[\"" text "\"," shx "," rot "]"))
  )
  (if (and (not text) shp)
    (setq ttext (strcat ",[" (getname shp shx) "," shx "," rot "]"))
  )
  (setq rval ttext)
)
(defun getname (shape shapefile)
  (if (setq sfn (open shapefile "r"))
    (progn
  (repeat 23
    (read-char sfn)
  )
  (setq lownum (read-char sfn))
  (read-char sfn)
  (setq charcount (- shape lownum))
  (setq hignum (read-char sfn))
  (read-char sfn)
  (setq shpcount (read-char sfn))
  (read-char sfn)
  (repeat (* shpcount 4)
    (read-char sfn)
  )
  (setq zerocount 0)
  (while (< zerocount (* charcount 2))
    (setq this (read-char sfn))
    (if (= this 0)
      (setq zerocount (1+ zerocount))
    )
  )
  (setq char1 (read-char sfn))
  (setq name "")
  (while (/= 0 char1)
    (setq name (strcat name (chr char1)))
    (setq char1 (read-char sfn))
  )
  (close sfn)
  name
  ))
)
(princ)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 22.10.2007, 10:13
#7
Кочетков Андрей

Java/Kotlin backend
 
Регистрация: 03.02.2006
Сообщений: 5,736


Спасибо за этот Лиср!
Тулпаковская команда не извлекает compex line types.
Кочетков Андрей вне форума  
 
Непрочитано 22.10.2007, 10:20
#8
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Спасибо автору и VVA, нашедшему эту программу.
Profan вне форума  
 
Непрочитано 22.10.2007, 10:28
#9
Кулик Алексей aka kpblc
Moderator

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


По-моему, можно и в "Готовые"
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 22.10.2007, 13:59
#10
игорёк

проектирование
 
Регистрация: 30.10.2005
москва
Сообщений: 216


Огромное спасибо за макрос!!! Получилось правда не для всех типов линий, надо разобраться в чем дело.
игорёк вне форума  
 
Непрочитано 22.10.2007, 14:15
1 | #11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Опубликована в "Готовых программах"
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 24.03.2020, 18:15
#12
Linkshunter

проектирование а/дорог
 
Регистрация: 03.07.2013
СПб
Сообщений: 376


методом проб и ошибок определил что при кириллице в описании типа линии не экспортирует нормально. (автокад 2015) исправил описание типа линии на латинницу и все заработало.
***
рано радовался - на третьем типе линии не работает...
***
Решено, собственно все есть в другой теме
https://forum.dwg.ru/showthread.php?t=14359&page=2
Вложения
Тип файла: dwg
DWG 2007
линия.dwg (90.4 Кб, 46 просмотров)

Последний раз редактировалось Linkshunter, 24.03.2020 в 18:51.
Linkshunter вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Как извлечь тип линии?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать тип линии KYKICH AutoCAD 37 20.11.2007 15:45
Как перенести линии вместе с чертежом ? Терыч AutoCAD 2 07.02.2006 16:05
Как сделать часть линии пунктиром Димас AutoCAD 16 03.02.2006 09:31
Как скрыть линии перехода Maxx AutoCAD 20 12.01.2006 16:21
Как нарисовать вертикальные линии в мультилинии Snow AutoCAD 1 26.09.2003 12:43