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

Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Linetype Scale для слоев

Linetype Scale для слоев

Ответ
Поиск в этой теме
Непрочитано 10.07.2007, 17:07 #1
Linetype Scale для слоев
Werwolf
 
москва
Регистрация: 18.06.2007
Сообщений: 79

Можно ли как-то для всего слоя выставить значение linetype scale? В окошке слоев можно выбирать только тип и толщину линии.. или единственный вариант - qselect по слою и в свойствах забить нужную цифру? А если эти линии уже входят в состав блоков?
Просмотров: 3882
 
Автор темы   Непрочитано 11.07.2007, 19:19
#2
Werwolf


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


Неужели никак нельзя сделать? или просто вопрос из разряда тупых или есть в хелпе?
Werwolf вне форума  
 
Непрочитано 11.07.2007, 19:40
#3
Profan


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


Выскажу свое мнение (IMHO).
Нельзя.
Вопрос дуракский.
В Help'е нету.
Profan вне форума  
 
Непрочитано 13.07.2007, 03:12
#4
Андрей С.

Архитектор
 
Регистрация: 25.08.2003
Москва
Сообщений: 307


Да вовсе не "дуракский" вопрос.
В 2008 можно задать слою тип линии для данного видового экрана (Viewport'а) в листе (а еще цвет, вес линии и стиль печати). В 2007 - не знаю, я его "проехал мимо".
Это просто некоторые пространство листа не любят...
Андрей С. вне форума  
 
Непрочитано 13.07.2007, 06:29
#5
Profan


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


Это просто некоторые еще не доехали до AutoCAD 2008...
Profan вне форума  
 
Непрочитано 13.07.2007, 09:41
#6
Profan


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


Вот, доехали до 2008-го...
Андрей С, ты, видимо, не понял вопрос, заданный Werwolf. Он пишет об linetype scale, т.е. о масштабе типа линии, а не просто о типе линии. Он, правда, не уточнил, о каком масштабе идет речь, о глобальном (переменная LTSCALE) или текущем (переменная CELTSCALE). Но это не важно в данном случае, потому что ни тот, ни другой масштабы типов линий задать в параметров соя НЕЛЬЗЯ. В том числе и в AutoCAD 2008.
Profan вне форума  
 
Непрочитано 13.07.2007, 09:41
#7
Bull

Конструктор по сути (машиностроитель)
 
Регистрация: 10.10.2005
Набережные Челны (это где КамАЗ)
Сообщений: 11,391


Андрей, Profan, вы не поняли вопрос - тип, цвет, стиль, вес можно задать и в ранних версиях. Он же просит масштаб типа линии - этогоо нету нигде, да и не нужно это. Поскольку в одном и том же прямоугольнике для осей симметрии нужен один масштаб, для осей отв-й - другой. Короче, ВОПРОС ДУРАЦКИЙ...

PS Пока писал, Profan уже понял
__________________
Век живи, век учись - ...
Bull вне форума  
 
Непрочитано 13.07.2007, 09:44
#8
Profan


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


Bull, я как раз понял вопрос и видишь - ответил раньше тебя. Просто я подумал, чем черт не шутит, и независимо от того, что написал Андрей С., решил уточнить ситуацию с AutoCAD 2008.
Profan вне форума  
 
Непрочитано 13.07.2007, 12:14
#9
Андрей С.

Архитектор
 
Регистрация: 25.08.2003
Москва
Сообщений: 307


Да, действительно, не въехал в вопрос - писал ночью, мозги уже отключились. Вообще-то необходимость задавать масштаб для слоя скорее всего возникла из-за непродуманного применения каких- то типов линий или из-за загрузки их из разных "мест" в один чертеж. Путей решения проблемы может быть два - или загрузить в чертеж заново слишком "большой" или слишком "маленький" тип линии (может, сделав новый тип в lin-файле), или же просить обитающих на форуме умельцев написать лисп для этого.
Андрей С. вне форума  
 
Непрочитано 13.07.2007, 14:26
#10
VVA

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


Это не сложно сделать руками.
1.С помощью QSelect выбрать все объекты на нужном слое
2. и в окне свойст изменить масштаб типа линии.
Выделить объекты на определенном слое можно с помощью этого лиспа.

Код:
[Выделить все]
(defun C:SeLay ( / lay ss)
(defun mydcl (zagl info-list / fl ret dcl_id)
    (vl-load-com)
    (if (null zagl)
        (setq zagl "Выбор")
    ) ;_ end of if
    (setq fl (vl-filename-mktemp "mip" nil ".dcl"))
    (setq ret (open fl "w"))
    (mapcar '(lambda (x) (write-line x ret))
            (list "mip_msg : dialog { "
                  (strcat "label=\"" zagl "\";")
                  " :list_box {"
                  "alignment=top ;"
                  "width=51 ;"
                  (if (> (length info-list) 26)
                      "height= 26 ;"
                      (strcat "height= " (itoa (+ 3 (length info-list))) ";")
                  ) ;_ end of if
                  "is_tab_stop = false ;"
                  "key = \"info\";}"
                  "ok_cancel;}"
            ) ;_ end of list
    ) ;_ end of mapcar
    (setq ret (close ret))
    (if (and (not(minusp(setq dcl_id (load_dialog fl))))
	     (new_dialog "mip_msg" dcl_id)
	     )
            (progn
                (start_list "info")
                (mapcar 'add_list info-list)
                (end_list)
                (set_tile "info" "0")
                (setq ret (car info-list))
                (action_tile "info" "(setq ret (nth (atoi $value) info-list))")
                (action_tile "cancel" "(progn(setq ret nil)(done_dialog 0))")
                (action_tile "accept" "(done_dialog 1)")
                (start_dialog)
            ) ;_ end of progn
    ) ;_ end of if
    (unload_dialog dcl_id)
    (vl-file-delete fl)
    ret
) ;_ end of defun
(defun tablelist (s / d r)
  (while (setq d (tblnext s (null d)))
    (setq r (cons (cdr (assoc 2 d)) r))
  )					;while
)					;defun
(if (setq lay (mydcl "Выберите слой" (tablelist "LAYER")))
  (if (setq ss (ssget "_X" (list (cons 8 lay))))
    (sssetfirst ss ss)))(princ))
VVA вне форума  
 
Непрочитано 13.07.2007, 14:45
#11
ASLYS

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


может проще _layiso и работать со слоем?
ASLYS вне форума  
 
Непрочитано 13.07.2007, 14:48
#12
PL


 
Регистрация: 23.11.2006
California
Сообщений: 4,750


Цитата:
Сообщение от Profan
Вот, доехали до 2008-го...
Он пишет об linetype scale, т.е. о масштабе типа линии, а не просто о типе линии. Он, правда, не уточнил, о каком масштабе идет речь, о глобальном (переменная LTSCALE)
А зачем в 2008 ltscale? там cannoscale... ltscale=1 :roll:
PL вне форума  
 
Непрочитано 13.07.2007, 14:55
#13
Profan


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


Для VVA.
Цитата:
Это не сложно сделать руками.
1.С помощью QSelect выбрать все объекты на нужном слое
2. и в окне свойст изменить масштаб типа линии.
Werwolf сам упомянул о таком способе в своем первом сообщении.
Profan вне форума  
 
Непрочитано 13.07.2007, 14:58
#14
Profan


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


Для PL.
Да мне-то не нужно. Просто Андрей С. что-то там такое пробурчал про 2008, ну я и решил посмотреть.
Profan вне форума  
 
Непрочитано 13.07.2007, 15:11 Re: Linetype Scale для слоев
#15
PL


 
Регистрация: 23.11.2006
California
Сообщений: 4,750


Цитата:
Сообщение от Werwolf
Можно ли как-то для всего слоя выставить значение linetype scale? А если эти линии уже входят в состав блоков?
Как здесь писали можно поменять тип линии для слоя, сделать несколько своих типов линий с короткими штрихами и т.п.
PL вне форума  
 
Непрочитано 13.07.2007, 15:23
#16
PL


 
Регистрация: 23.11.2006
California
Сообщений: 4,750


>VVA
>ASLYS
Вопрос Werwolf читали? Про блоки? ни предложенный код ни layiso не катят.
PL вне форума  
 
Непрочитано 13.07.2007, 16:34
#17
ASLYS

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


для блоков
[ATTACH]1184330046.rar[/ATTACH]
ASLYS вне форума  
 
Непрочитано 16.07.2007, 14:45
#18
VVA

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


И мой вариант
Код:
[Выделить все]
(defun C:LTSLay ( / layp lock lays adoc *error* lts n) 
(defun mydcl (zagl info-list / fl ret dcl_id msg)
  (vl-load-com)
  (if (null zagl)
    (setq zagl "Выбор")
    ) ;_ end if
  (setq fl (vl-filename-mktemp "mip" nil ".dcl"))
  (setq ret (open fl "w"))
  (mapcar '(lambda (x) (write-line x ret))
          (list "mip_msg : dialog { "
                (strcat "label=\"" zagl "\";")
                " :list_box {"
                "alignment=top ;"
                "multiple_select = true ;"
                "width=31 ;"
                (if (> (length info-list) 26)
                  "height= 26 ;"
                  (strcat "height= " (itoa (+ 3 (length info-list))) ";")
                  ) ;_ end of if
                "is_tab_stop = false ;"
                "key = \"info\";}"
                "ok_cancel;}"
                ) ;_ end of list
          ) ;_ end of mapcar
  (setq ret (close ret))
  (if (and (null (minusp (setq dcl_id (load_dialog fl))))
           (new_dialog "mip_msg" dcl_id)
           ) ;_ end and
    (progn (start_list "info")
           (mapcar 'add_list info-list)
           (end_list)
           (set_tile "info" "0")
           (setq ret "0")
           (action_tile "info" "(setq ret $value)")
           (action_tile "cancel" "(done_dialog 0)")
           (action_tile "accept" " (done_dialog 1)")
           (if (zerop (start_dialog))
             (setq ret nil)
             (setq ret (mapcar (FUNCTION (lambda (num) (nth num info-list)))
                               (read (strcat "(" ret ")"))
                               ) ;_ end mapcar
                   ) ;_ end setq
             ) ;_ end if
           (unload_dialog dcl_id)
           ) ;_ end of progn
    ) ;_ end of if
  (vl-file-delete fl)
  ret
  )
(defun tablelist (s / d r) 
  (while (setq d (tblnext s (null d))) 
    (setq r (cons (cdr (assoc 2 d)) r)) 
  )               ;while 
)               ;defun
(defun *error* (msg)(princ msg)(vla-endundomark adoc)
  (foreach x loc (vla-put-lock x :vlax-true)))
(vl-load-com)
 (setq adoc (vla-get-activedocument (vlax-get-acad-object))
       lays (vla-get-layers adoc)
       )
(vla-startundomark adoc)
(initget 7)
(setq lts (getReal "\nВведите масштаб типа линий :"))
(if (setq layp (mydcl "Выберите слои" (tablelist "LAYER")))
  (progn
    (vlax-for lay lays
      (if (= (vla-get-lock lay) :vlax-true)
          (progn (vla-put-lock lay :vlax-false) (setq loc (cons lay loc))))
      )
    (setq layp (strcase(apply 'strcat (mapcar '(lambda(x)(strcat x ",")) layp))) n 1)
(terpri)    
(vlax-for Blk (vla-get-Blocks adoc)
 (princ (strcat "\rОбрабатываю объект N " (itoa n)))
 (if (= (vla-get-IsXref Blk) :vlax-false) ;_Not Xref
  (vlax-for Obj Blk
    (if (and (wcmatch (strcase(vla-get-Layer Obj)) layp)
             (vlax-write-enabled-p Obj)
             (vlax-property-available-p Obj "LinetypeScale")
             )
      (vla-put-LinetypeScale Obj lts)
      )
   
  )
 )
 (setq n (1+ n)) 
)
(foreach x loc (vla-put-lock x :vlax-true))
    )
  )
(vla-endundomark adoc)
  )
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Linetype Scale для слоев

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

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