Перейти к содержимому раздела
Форумы CADUser
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Дерево сообщений Активные темы Темы без ответов
Настройки поиска (Страница 1 из 19)
Страницы 1 2 3 … 19 Далее
Темы от Disney Обычный поиск
Сообщений найдено с 1 по 25 из 471
Похожая фигня
"ошибка: неверное значение аргумента: положительное 0"
Vidocq пишет:тогда в коде проги я в неправильном порядке поставил аргументы при вычислении:
(- 2 var), а надо было - (- var 2)
что приводило к неверным действиям программы дальше.
Понятно в итоге ты тут получал -4, но вот какая функция дальше ругалась на это -4?
shima пишет: у которых разница вторых элементов меньше 5.
первый попавшийся, или с наименьшей разницей?
trvi пишет:А если цвет текста надо будет пометь не на красный. Где изменить? Как вообще цвета назначаются?
0 - на единицу меньше нужного цвета красный (1), например если нужно зелёный (3) напиши 2
trvi пишет:У меня размерные стили настроены - по слою и поэтому не вижу изменений
У меня, да и большинства нормальных людей тоже "по-слою", так что причина не в этом.
Вот вариант с заменой цвета только текста, если работать не будет выложи файл
(defun c:equal_dim_vla (/ all_dim car_meas tmp eq_dim i b)
(vl-load-com)
(setq all_dim
(mapcar 'vlax-ename->vla-Object
(vl-remove-if
'listp
(mapcar 'cadr
(ssnamex (ssget "_X" '((0 . "DIMENSION"))))
)
)
)
)
(while (car all_dim)
(setq car_meas (Vla-get-Measurement (car all_dim))
tmp (list
(vl-remove-if-not
(function (lambda (a)
(equal (Vla-get-Measurement a) car_meas 1e-12)
)
)
all_dim
)
)
eq_dim (cons (car tmp) eq_dim)
all_dim (vl-remove-if
(function
(lambda (a)
(equal (Vla-get-Measurement a) car_meas 1e-12)
)
)
all_dim
)
tmp nil
)
)
(setq eq_dim (vl-remove-if
(function (lambda (x) (= (length x) 1)))
eq_dim
)
i 0
b (cond
((>= 6 (length eq_dim))
1
)
((>= 12 (length eq_dim))
20
)
((>= 24 (length eq_dim))
10
)
(t 1)
)
)
(cond
((not eq_dim)
"Одинаковых размеров не найдено"
)
((> (length eq_dim) 255)
"Групп одинаковых размеров слишком много"
)
(t
(mapcar
(function
(lambda (x)
(setq i (+ b i))
(mapcar
(function
(lambda (x)
(vla-put-TextColor
x
i
)
)
)
x
)
)
)
eq_dim
)
(princ)
)
)
)
Наверно можно, но лучше пользоваться настроенным Punto Switcher
trvi пишет:Конечно лучше бы чтобы они были разными цветами, но не думаю что это можно реализовать
можно
(defun c:equal_dim (/ all_dim car_list tmp eq_dim i b)
(setq all_dim
(mapcar 'entget
(vl-remove-if
'listp
(mapcar 'cadr
(ssnamex (ssget "_X" '((0 . "DIMENSION"))))
)
)
)
)
(while (car all_dim)
(setq car_list (cdr (assoc 42 (car all_dim)))
tmp (list
(vl-remove-if-not
(function (lambda (a)
(equal (cdr (assoc 42 a)) car_list 1e-12)
)
)
all_dim
)
)
eq_dim (cons (car tmp) eq_dim)
all_dim (vl-remove-if
(function (lambda (a)
(equal (cdr (assoc 42 a)) car_list 1e-12)
)
)
all_dim
)
tmp nil
)
)
(setq eq_dim (vl-remove-if
(function (lambda (x) (= (length x) 1)))
eq_dim
)
i 0
b (cond
((>= 6 (length eq_dim))
1
)
((>= 12 (length eq_dim))
20
)
((>= 24 (length eq_dim))
10
)
(t 1)
)
)
(cond
((not eq_dim)
"\nОдинаковых размеров не найдено"
)
((> (length eq_dim) 255)
"\nСлишком много групп одинаковых размеров"
)
(t
(mapcar
(function
(lambda (x)
(setq i (+ b i))
(mapcar
(function
(lambda (x)
(entmod (if (setq tmp (ASSOC 62 x))
(SUBST (cons 62 i) tmp x)
(append x (list (cons 62 i)))
)
)
)
)
x
)
)
)
eq_dim
)
(princ)
)
)
)
trvi пишет:Мне нужен лисп который бы осуществлял бы поиск одинаковых measure (значение) размера, например на чертеже 5 размеров со значениями 150, и изменял бы цвет значения одинаковых размеров на "синий"
Хорошо, у тебя 5 размеров 150 ед., и ещё 3 размера 100 ед., а ещё 6 размеров 50 ед, и т.д. и что, их все сделать "синими"?
Есть код, который позволяет выбрать тексты содержащие числа в указном диапазоне: http://forum.dwg.ru/showpost.php?p=6603 … stcount=32
Либо переделай, как тебе надо, либо выбирай, поочередно каждый диапазон, а потом для выбранных, через палитру "свойства" заменяй значение на нужно
1) Чтоб тела получились отдельными после вычитания нужно применить "Разделит" _separate
2) Либо сразу вычитать не тоненькое тело, а сделать копию исходного, и из исходного вычесть, скажем, правую часть, а из копии левую.
А если вместо "Резать" использовать "Вычитание", создать второе тело по произвольной полилинии и вычесть его?
А чем стандартная справка не устраивает? Я успешно пользуюсь онлайн справкой для AutoCAD 2011, почему 2011? потому что в последующих убрали раздел "Для разработчиков".
Так же очень удобно давать ссылку, с ответом из справки, на вопросы пользователей на форуме.
Александр Ривилис пишет:С вытаскиванием из 3DSOLID информации о радиусе и высоте советую не заморачиваться - этой информации попросту может не быть при обнулении истории.
Спасибо, не будем. Хотя вот Дима_ кому-то делал подобную программку Сумма длин 3D тел
Александр Ривилис пишет:Блок может быть один. А при вставке он масштабируется с равными X и Y (радиус цилиндра) и Z (высота цилиндра).
Вообще идеальный вариант создать блока из цилиндра с единичным радиусом и единичной высотой.
Наверно можно, только программно, в каком виде должны быть данные на выходе?
Павел Артемьев пишет:но в activeX я не шарю совсем
Там на самом деле всё просто, ты же наверняка сам хочешь разобраться, а не чтоб тебе готовый код написали ;)
Справка по VBA - AutoCAD объектная модель
Как пользоваться справкой по VBA, для AutoLISP Четыре правила для работы с ActiveX в Visual Lisp
Ну а там уже чего не понятно спрашивай.
Объект называется "AECC_COGO_POINT", но его DXF описание особо полезного ни чего не содержит:
((-1 . <Имя объекта: 7ffffa25d00>)
(0 . AECC_COGO_POINT)
(330 . <Имя объекта: 7ffffa039f0>)
(5 . 5140)
(100 . AcDbEntity)
(67 . 0)
(410 . Model)
(8 . 0)
(100 . AeccDbCogoPoint))
А вот у VLA-объекта есть свойство "Elevation", по нему уже можно отсортировать по высоте(отметке)
Александр Пекшев aka Modis пишет:Средствами акада - никак
Так а тема вроде и не в разделе голый AutoCAD, а в программировании.
Писал немного похожее, выбор чисел в указанном диапазоне.
http://forum.dwg.ru/showthread.php?p=660353#post660353
Михаил пишет:Ознакамливаюсь с А2013. В строке меню, в закладке "Вид" есть команда "Регенерировать все". Но этой команды не нашел на ленте.
А этой команды и в предыдущих версиях никогда на ленте не было.
Вот как я её туда засовывал в 2010 http://youtu.be/M2Pkq9UJ8Qs?hd=1
pan пишет:C помощью какой команды Вы создаете виды и разрезы?
VIEWBASE
Не сталкивались, пока функция интересна, но сыровата, не знаю чего Паша так по ней писается?
Выход, создавать новый базовый вид, на новом листе за пределами области печати, и по новой создавать разрезы и узлы уже перетаскивая в область печати.
Ольга Заговора пишет:что бы остались соответствующие ручки как на рисунке.
И что эти ручки должны делать?
Сообщений найдено с 1 по 25 из 471
Страницы 1 2 3 … 19 Далее