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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Конвертация веса линии "ПоСлою" на просто вес этой линии

Конвертация веса линии "ПоСлою" на просто вес этой линии

Ответ
Поиск в этой теме
Непрочитано 20.04.2015, 15:58 #1
Конвертация веса линии "ПоСлою" на просто вес этой линии
olga87
 
Регистрация: 28.05.2007
Сообщений: 208

Здравствуйте Уважаемые программисты!
Помогите пожалуйста исправить код, приведенный ниже (Автокад 2007), который должен конвертировать вес линии со значением "ПоСлою" у выбранных объектов на просто вес этих объектов, т.е. конвертировать вес ПоСлою на явное значение веса, который в Диспетчере слоев. Заранее большое спасибо!

Код:
[Выделить все]
(defun c:lw ( / ss i c ssl ent edata layer laydata laylw)
(setq i 0  c 0  ssl 0)
(princ "\nSelect objects:")
(setq ss (ssget '((370 . -1))))
(if ss (setq ssl (sslength ss)))
(while (< i ssl)
(setq ent (ssname ss i))
(setq edata (entget ent))
(if (or (not (assoc 370 edata)) (= (assoc 370 edata) -1))
(progn
(setq layer (cdr (assoc 8 edata)))
(setq laydata (tblsearch "LAYER" layer))
(setq laylw (cdr (assoc 370 laydata)))
(setq edata (append edata (list (cons 370 laylw))))
(entmod edata)
(entupd ent)
(setq c (1+ c))
)
)
(setq i (+ 1 i))
)
(princ)
)
Просмотров: 2409
 
Непрочитано 20.04.2015, 16:19
1 | #2
Кулик Алексей aka kpblc
Moderator

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


Ну, во-первых, "lw" - стандартное сокращение для английского ACAD'a. Применять не советую.
Во-вторых, проверяй код:
Код:
[Выделить все]
 (vl-load-com)

(defun c:lwbl (/ adoc selset lw layes lwd)
  (vla-startundomark (setq adoc (vla-get-activedocument (vlax-get-acad-object))))
  (if (= (type (setq selset (vl-catch-all-apply
                              (function
                                (lambda ()
                                  (ssget "_:L")
                                  ) ;_ end of lambda
                                ) ;_ end of function
                              ) ;_ end of vl-catch-all-apply
                     ) ;_ end of setq
               ) ;_ end of type
         'pickset
         ) ;_ end of =
    (progn
      (setq layers (vla-get-layers adoc)
            lwd    (getvar "lwdefault")
            ) ;_ end of setq
      (foreach ent (mapcar (function vlax-ename->vla-object)
                           ((lambda (/ tab item)
                              (repeat (setq tab  nil
                                            item (sslength selset)
                                            ) ;_ end setq
                                (setq tab (cons (ssname selset (setq item (1- item))) tab))
                                ) ;_ end of repeat
                              tab
                              ) ;_ end of lambda
                            )
                           ) ;_ end of mapcar
        (vla-put-lineweight ent
                            (if (> (setq lw (vla-get-lineweight (vla-item layers (vla-get-layer ent)))) 0)
                              lw
                              lwd
                              ) ;_ end of if
                            ) ;_ end of vla-put-lineweight
        ) ;_ end of foreach
      ) ;_ end of progn
    ) ;_ end of if
  (vla-endundomark adoc)
  (princ)
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.04.2015, 17:10
#3
VVA

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


Похожая программа
Properties From Layer
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 21.04.2015, 12:14
#4
olga87


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


Спасибо большое за помощь!
olga87 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Конвертация веса линии "ПоСлою" на просто вес этой линии

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Неверное отображение веса линии в видовом экране [email protected] AutoCAD 21 27.01.2021 12:44