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

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

Обрезка выбранных линий на одинаковую длинну

Ответ
Поиск в этой теме
Непрочитано 09.10.2015, 07:27 #1
Обрезка выбранных линий на одинаковую длинну
AlexRudz
 
Конструктор
 
Регистрация: 02.10.2009
Сообщений: 122

Добрый день. Возникла необходимость обрезки выбранных линий на одинаковую длину. Я выбираю отрезки ввожу команду и эти отрезки с двух сторон либо с одной становятся меньше , на например, на 200мм. Возможно ли это сделать стандартными функциями автокад? Спасибо
__________________
Свая, как и коса, не всегда находит на камень(с)
Просмотров: 3134
 
Непрочитано 09.10.2015, 07:37
3 | #2
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 357
<phrase 1=


Насчет стандартной функции не знаю... я пользуюсь лиспом linetrim ,автор kpblc...если не ошибаюсь.
Вложения
Тип файла: lsp linetrim.lsp (7.9 Кб, 87 просмотров)
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 09.10.2015, 07:50
1 | #3
GogMagog


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


не знаю как на английском, на русском LT 2008 так:

увеличить;дельта;-200;

либо

увеличить;дельта;-200;линия;

либо

увеличить;дельта;-200;секрамка;


Выбирать линии ближе к обрезаемому концу естесна

Последний раз редактировалось GogMagog, 09.10.2015 в 08:21.
GogMagog вне форума  
 
Непрочитано 09.10.2015, 07:56
1 | #4
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


_lengthen _de -200

PS рамка выбора и предварительный выбор в этой команде не работают
Хмурый вне форума  
 
Непрочитано 09.10.2015, 07:57
1 | #5
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826


_Lengthen -> _DElta
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 09.10.2015, 09:00
#6
getr

Конструктор
 
Регистрация: 06.04.2005
Из тех ворот-откуда весь народ.
Сообщений: 357
<phrase 1=


Команда Lengthen обрежет линию с одной стороны, а топикстартеру нужно с двух одновременно...
__________________
"Мнение не бывает ни истинным, ни ложным, а лишь полезным в жизни или бесполезным. ",- Ауробиндо
И не надо делать удивленных движений руками.
getr вне форума  
 
Непрочитано 09.10.2015, 09:43
2 | #7
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,826


Цитата:
Сообщение от getr Посмотреть сообщение
Команда Lengthen обрежет линию с одной стороны, а топикстартеру нужно с двух одновременно...
Из штатного больше нет ничего.
Код:
[Выделить все]
(defun Kr_LengthStretch (/ ss index pr l1 lr)
  (princ "\nВыберите отрезки: ")
  (if (setq ss (ssget '((0 . "LINE"))))
    (if (setq delta (getreal "\nУкажите величину укорочения концов отрезков в мм на бумаге <отмена>:"))
	    (progn
	      (setq index -1
		    lr 0
		    delta (* delta (Kr_ScaleOfVP)))
		(repeat (sslength ss)
		  (setq index (1+ index)
			pr (entget (ssname ss index))
			pr (subst (cons 10 (polar (cdr (assoc 10 pr)) (angle (cdr (assoc 10 pr)) (cdr (assoc 11 pr))) delta)) (assoc 10 pr) pr)
			pr (subst (cons 11 (polar (cdr (assoc 11 pr)) (angle (cdr (assoc 11 pr)) (cdr (assoc 10 pr))) delta)) (assoc 11 pr) pr)
			);end setq
		  (entmod pr)
		  );end repeat
		);end progn
      	);if
      );end if
   (princ)
  );end defun

;|---------------------------------------------------------------
Функция Kr_ScaleOfVP
-----------------------------------------------------------------
Вычисляет масштаб в зависимоти от переменной dimscale или CANNOSCALEVALUE, если dimscale=0 коэф-т = 1 или относительно vport
|;
(defun Kr_ScaleOfVP ( / )
  ;если текущим установлен аннотативный размерный стиль, масштаб берем с аннотативного масштаба
  (if (= (getvar "dimanno") 1)
    (setq dsc (/ 1 (getvar "CANNOSCALEVALUE")))
    (progn
  ;если dimscale=0 принимаем dsc=1, если нет dsc=dimscale
  			(if (= (getvar "dimscale") 0) (setq dsc 1) (setq dsc (getvar "dimscale")))
  ;если мы находимся в пространстве листа:
			(if (= (Getvar "TILEMODE") 0)
  ;если видовое окно не ативно dsc=1, если активно, то берем масштаб с видового экрана
			  (if (= (Getvar "CVPORT") 1)
			    (setq dsc 1)
			    (setq dsc (/ 1 (vla-get-CustomScale (vla-get-ActivePViewport (vla-get-ActiveDocument (vlax-get-Acad-Object))))))
			  );if
			 );if
      );progn
    );if
    dsc
    )
__________________
Делай хорошо, плохо само получится.
Krieger вне форума  
 
Непрочитано 09.10.2015, 12:49
#8
Хмурый


 
Регистрация: 29.10.2004
СПб
Сообщений: 16,337


getr, да мне несложно с двух сторон по линии щёлкнуть.
Хмурый вне форума  
 
Автор темы   Непрочитано 15.10.2015, 23:33
#9
AlexRudz

Конструктор
 
Регистрация: 02.10.2009
Сообщений: 122


Прошу прощения , что так долго не отвечал. _lengthen _de -200 то что нужно . Спасибо огромное
__________________
Свая, как и коса, не всегда находит на камень(с)
AlexRudz вне форума  
 
Непрочитано 14.06.2016, 07:27
#10
piratos

Школьник
 
Регистрация: 29.03.2011
Россия
Сообщений: 440


Цитата:
Сообщение от getr Посмотреть сообщение
Насчет стандартной функции не знаю... я пользуюсь лиспом linetrim ,автор kpblc...если не ошибаюсь.
Отличная вещь!
Я так понял, написан он только для обрезки, но если перед вводом значения поставить знак "-", то будет увеличение.
piratos вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > AutoCAD > Обрезка выбранных линий на одинаковую длинну

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание нового типа линий Apelsinov AutoCAD 915 08.07.2022 12:36
Обрезка линий внутри прямоугольников farookh1 Программирование 4 12.03.2015 08:36
Как удалить тип линии Tolyanovich AutoCAD 48 20.11.2014 09:24
Как узнать длинну всех выделенных линий ? bdfy AutoCAD 33 21.05.2014 08:31