Как найти общую длину отрезков

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

#1 11 мая 2005г. 16:29:43

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Тема: Как найти общую длину всех выделенных отрезков?

Мне часто приходится чертить раскладки прогонов, у которых различная длина, и что бы узнать общую длину всех прогонов я выделяю каждый, смотрю в свойствах его длину и на калькуляторе складываю. Подскажите пожалуста, может это можно как либо ускорить. Заранее спасибо,

#2 Ответ от Умник 11 мая 2005г. 17:04:36

  • Умник
  • Восстановленный участник
  • На форуме с 17 июня 2004г.
  • Сообщений: 206
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

не помню толи сам накарябал то ли на форуме срисовал используйте этот лисп:

(defun c:ln (/)
  (apply '+
     (mapcar '(lambda
            (x)
             (vlax-curve-getDistAtParam
               (vlax-ename->vla-object x)
               (vlax-curve-getEndParam x)
             )
          )
         (vl-remove-if
           'listp
           (mapcar 'cadr (ssnamex (ssget)))
         )
     )
  )
)

#3 Ответ от diz 11 мая 2005г. 17:15:13

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Большое спасибо. Только если честно, я ещё не профессионал и не знаю куда это писать. Но буду искать. Если не трудно подскажите

#4 Ответ от VK 11 мая 2005г. 19:51:13

  • VK
  • Восстановленный участник
  • На форуме с 8 июня 2002г.
  • Сообщений: 224
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

#5 Ответ от Евгений Елпанов 11 мая 2005г. 21:08:43

  • Евгений Елпанов
  • Евгений Елпанов
  • Активный участник
  • Откуда: Москва
  • На форуме с 2 июля 2004г.
  • Сообщений: 2,538
  • Спасибо: 10

Re: Как найти общую длину всех выделенных отрезков?

> Умник
Програмка отличная, но как-то непонятно:

(vlax-curve-getDistAtParam
(vlax-ename->vla-object x);вызов через  vla-obj
(vlax-curve-getEndParam x);вызов через ent-name
)

В хелпе сказано, обе эти функции вызывать через vla-obj
но

(vlax-curve-getDistAtParam
x                         ;вызов через ent-name
(vlax-curve-getEndParam x);вызов через ent-name
)

Тоже отлично работает…
Может ли кто-нибудь прокаментировать?

#6 Ответ от Евгений Елпанов 11 мая 2005г. 21:43:59

  • Евгений Елпанов
  • Евгений Елпанов
  • Активный участник
  • Откуда: Москва
  • На форуме с 2 июля 2004г.
  • Сообщений: 2,538
  • Спасибо: 10

Re: Как найти общую длину всех выделенных отрезков?

Попробовал запустить все vlax-curve с параметром ent-name
(car (entsel))
Все отработали без ошибок! Хотя хелп напоминает, что надо
(vlax-ename->vla-object (car (entsel)))
Интересно, это недокументированная возможность или…

#7 Ответ от diz 12 мая 2005г. 10:51:49

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Нашёл на подсказанной вами ссылке програмку
(vl-load-com)
(defun entLen ( / set:entities int:allEntities int:curveEntities int:l rea:length)
  (setq set:entities (ssget))
  (if set:entities
    (progn
      (setq int:allEntities (sslength set:entities)   ; количество выбранных примитивов
       int:curveEntities 0            ; счетчик линейных примитивов
       int:l 0               ; счетчик
       rea:length 0.0            ; общая длина линейных примитивов
      ) ;_  setq
      (while (< int:l (sslength set:entities))
   (if (not
         (vl-catch-all-error-p
      (vl-catch-all-apply
        ‘vlax-curve-getStartPoint
        (list (vlax-ename->vla-object (ssname set:entities int:l)))
      ) ;_  vl-catch-all-apply
         ) ;_  vl-catch-all-error-p
       ) ;_  not
     (setq   int:curveEntities (1+ int:curveEntities)
      rea:length     (+ rea:length
                 (vlax-curve-getDistAtParam
                   (vlax-ename->vla-object (ssname set:entities int:l))
                   (vlax-curve-getEndParam (ssname set:entities int:l))
                 ) ;_  vlax-curve-getDistAtParam
              ) ;_  +
     ) ;_  setq
   ) ;_  if
   (setq int:l (1+ int:l))
      ) ;_  while
      (princ (strcat “n Выбрано примитивов: ” (itoa int:allEntities)
           “, из них линейных: ” (itoa int:curveEntities)
           “n Общая длина линейных примитивов: ” (rtos rea:length)
           )
        )
    ) ;_  progn
    (alert “Примитивы не выбраны!”)
  ) ;_  if
(prin1)
) ;_  defun
Создал файл с расширением LSP
Загрузил приложение
После ввода в командную строку (entLen), следует предложение выбора объекта. Но после его выбора, хоть я нажимаю на Enter, хоть на првую кнопку мыши, всё сбрасывается.
Что делать?
P.S. Точно так же загружаю програмку подсказанную Умником, набираю c:ln и полное молчание.

#8 Ответ от Александр Ривилис 12 мая 2005г. 12:03:45

  • Александр Ривилис
  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,661
  • Спасибо: 158

Re: Как найти общую длину всех выделенных отрезков?

Какая верисия AutoCAD?

#9 Ответ от diz 12 мая 2005г. 13:18:59

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

2005

#10 Ответ от diz 12 мая 2005г. 13:26:53

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Кстати, программа

(vl-load-com)
(defun entLen ( / set:entities int:allEntities int:curveEntities int:l rea:length)
  (setq set:entities (ssget))
  (if set:entities
    (progn
      (setq int:allEntities (sslength set:entities)   ; количество выбранных примитивов
       int:curveEntities 0            ; счетчик линейных примитивов
       int:l 0               ; счетчик
       rea:length 0.0            ; общая длина линейных примитивов
      ) ;_  setq
      (while (< int:l (sslength set:entities))
   (if (not
         (vl-catch-all-error-p
      (vl-catch-all-apply
        'vlax-curve-getStartPoint
        (list (vlax-ename->vla-object (ssname set:entities int:l)))
      ) ;_  vl-catch-all-apply
         ) ;_  vl-catch-all-error-p
       ) ;_  not
     (setq   int:curveEntities (1+ int:curveEntities)
      rea:length     (+ rea:length
                 (vlax-curve-getDistAtParam
                   (vlax-ename->vla-object (ssname set:entities int:l))
                   (vlax-curve-getEndParam (ssname set:entities int:l))
                 ) ;_  vlax-curve-getDistAtParam
              ) ;_  +
     ) ;_  setq
   ) ;_  if
   (setq int:l (1+ int:l))
      ) ;_  while
      (princ (strcat "n Выбрано примитивов: " (itoa int:allEntities)
           ", из них линейных: " (itoa int:curveEntities)
           "n Общая длина линейных примитивов: " (rtos rea:length)
           )
        )
    ) ;_  progn
    (alert "Примитивы не выбраны!")
  ) ;_  if
(prin1)
) ;_  defun

пошла без проблем. Большое спсибо “kos”-у

#11 Ответ от Владимир Громов 12 мая 2005г. 14:06:30

  • Владимир Громов
  • Активный участник
  • На форуме с 10 июля 2004г.
  • Сообщений: 8,349
  • Спасибо: 4

Re: Как найти общую длину всех выделенных отрезков?

Может, следует в последней программе заменить слово “примитив” на слово “объект”?

#12 Ответ от Александр Ривилис 12 мая 2005г. 14:28:29

  • Александр Ривилис
  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,661
  • Спасибо: 158

Re: Как найти общую длину всех выделенных отрезков?

diz пишет:

P.S. Точно так же загружаю програмку подсказанную Умником, набираю c:ln и полное молчание.

Только сейчас до меня дошло! biggrin
В командной строке нужно было набирать ln, а не c:ln
А по поводу версии AutoCAD я спросил, т.к. в вериях до AutoCAD 2000 эти функции не работают.

#13 Ответ от diz 12 мая 2005г. 16:39:53

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Если набираю ln, то следует предложение выбора объекта. Но после его выбора, хоть я нажимаю на Enter, хоть на првую кнопку мыши, всё сбрасывается. Но всё таки лучше чем раньше

#14 Ответ от Fantomas 12 мая 2005г. 18:49:55

  • Fantomas
  • Восстановленный участник
  • На форуме с 7 декабря 2003г.
  • Сообщений: 392
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Мой вариант:

(defun c:elen(/ fList firSet entSet filOut entList totLen)
  (vl-load-com)
  (setq fList '((-4 . "<OR")(0 . "*LINE")
      (0 . "CIRCLE")(0 . "ARC")
      (0 . "ELLIPSE")(-4 . "OR>")
      (-4 . "<NOT")(0 . "MLINE")
      (-4 . "NOT>"))
   filOut 0
   ); end setq
  (if
    (not
      (and
   (setq firSet(ssget "_I")
         entSet(ssget "_I" fList)
         ); end setq
   ); end and
      ); end not
    (setq entSet(ssget fList))
    (setq filOut(-(sslength firSet)(sslength entset)))
    ); end if
  (if entSet
    (progn
      (setq entList
      (mapcar 'vlax-ename->vla-object
                    (vl-remove-if 'listp
                     (mapcar 'cadr(ssnamex entSet))))
       totLen
        (apply '+
          (mapcar '(lambda (x)
                (vlax-curve-getDistAtParam x
             (vlax-curve-getEndParam x)))
             entList); end mapcar
          ); end apply
       ); end setq
      (if(/= 0 filOut)
   (princ(strcat "n" (itoa filout)
            " were filtered out (unsupported type)"))
   ); end if
      (princ(strcat "nTotal entities: "(itoa(length entList))
          " Total length: "(rtos totLen)); end strcat
       ); end princ
      ); end progn
    (progn
        (if(/= 0 filOut)
   (princ(strcat "n" (itoa filout)
            " were filtered out (unsupported type)"))
   (princ "nNothing selected")
   ); end if
    ); end progn
    ); end if
      (princ)
      ); end c:elen 

#15 Ответ от Геннадий aka PG 12 мая 2005г. 20:13:00

  • Геннадий aka PG
  • Восстановленный участник
  • На форуме с 4 апреля 2002г.
  • Сообщений: 1,348
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Я поюзал первую функцию Умника– нормально работает для линий и дуг.

#16 Ответ от Евгений Елпанов 12 мая 2005г. 20:24:26

  • Евгений Елпанов
  • Евгений Елпанов
  • Активный участник
  • Откуда: Москва
  • На форуме с 2 июля 2004г.
  • Сообщений: 2,538
  • Спасибо: 10

Re: Как найти общую длину всех выделенных отрезков?

> diz
Вопрос, с которого надо было начинать…

Мне часто приходится чертить раскладки прогонов, у которых различная длина, и что бы узнать общую длину всех прогонов я выделяю каждый, смотрю в свойствах его длину и на калькуляторе складываю.

У какого типа примитива ты смотришь длинну?
Что есть прогон – отрезок, полилиния, сплайн или может быть блок?

#17 Ответ от Александр Ривилис 12 мая 2005г. 21:25:16

  • Александр Ривилис
  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,661
  • Спасибо: 158

Re: Как найти общую длину всех выделенных отрезков?

… или может быть твердое тело, мультилиния и т.д…

#18 Ответ от Евгений Елпанов 13 мая 2005г. 10:38:42

  • Евгений Елпанов
  • Евгений Елпанов
  • Активный участник
  • Откуда: Москва
  • На форуме с 2 июля 2004г.
  • Сообщений: 2,538
  • Спасибо: 10

Re: Как найти общую длину всех выделенных отрезков?

> Александр Ривилис
Твердое тело наврятли… У него не посмотришь длинну (или что-то выражающее длинну) в свойствах…
Хотя можно передавать в названии слоя или в названии цвета, но не думаю – тогда проще выделить и посмотреть на слой или цвет…
Скорее всего прогон – примитив не имеющий свойства окончания…

#19 Ответ от diz 13 мая 2005г. 10:39:42

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

Мне в основном нужно находить сумму длин прямых линий, и это хорошо выполнияется программой, которрую выложил kos (я писал об этом), но почему то все остальные предложенные программы не идут. Следует предложение выбора объекта, и после выбора хоть я жму на Enter, хоть на правую кнопку, всё сбрасывается. Просто интересно почему?
И ещё вопрос. Я создал кнопку для работающего лиспа, но после перезагрузки компьютера, что бы она работала нужно нужно каждый раз загружать этот лисп. Нельзя ли зделать так, что бы это происходило автоматически?

#20 Ответ от Умник 13 мая 2005г. 10:57:14

  • Умник
  • Восстановленный участник
  • На форуме с 17 июня 2004г.
  • Сообщений: 206
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

> diz
Я использую запосщенную приблуду на 2004 и на 2005 (англ. версии) все работает чудесно… У вас случаем в командной сторке сколько строчек – если 2 то результата видно не будет – надо увеличить количество строк до 3-х – результат выводиться в командную строку или воспользуйтесь такой прогой:

(defun c:ln (/)
  (alert
    (strcat "Total Length is "
        (rtos (apply '+
             (mapcar '(lambda
                    (x)
                     (vlax-curve-getDistAtParam
                       (vlax-ename->vla-object x)
                       (vlax-curve-getEndParam x)
                     )
                  )
                 (vl-remove-if
                   'listp
                   (mapcar 'cadr (ssnamex (ssget)))
                 )
             )
          )
          2
          2
        )
    )
  )
)

кстати говоря, если вы не использовали раньше лиспов то нужно дописать строчку:
(vl-load-com)
второй после defun
у меня подгружено больше двух сотен функций и загружать с каждой функцией (vl-load-com) смысла нет …

#21 Ответ от Александр Ривилис 13 мая 2005г. 11:28:28

  • Александр Ривилис
  • Александр Ривилис
  • Активный участник
  • Откуда: Украина / Киев
  • На форуме с 15 апреля 2005г.
  • Сообщений: 8,661
  • Спасибо: 158

Re: Как найти общую длину всех выделенных отрезков?

> diz
Чтобы не нужно было загружать вручную lsp-файл, впришите в макрос для кнопки:

^C^C^P(if (null entLen) (load "entlen.lsp")) (entlen) ^P

Подразумевается, что имя lsp-файла entlen.lsp и он находится в путях доступа AutoCAD.

#22 Ответ от diz 13 мая 2005г. 11:37:05

  • diz
  • Восстановленный участник
  • На форуме с 18 октября 2004г.
  • Сообщений: 107
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

У меня действительно была 1 строка в командной строке. Теперь всё получается. Всем большое спасибо!!!

#23 Ответ от Геннадий aka PG 13 мая 2005г. 11:37:05

  • Геннадий aka PG
  • Восстановленный участник
  • На форуме с 4 апреля 2002г.
  • Сообщений: 1,348
  • Спасибо: 0

Re: Как найти общую длину всех выделенных отрезков?

> diz

> Александр Ривилис
Лучше сделать свое отдельное меню (пусть даже пока из обной кнопки) и подгрузить егою
Подробнее
http://cadhlp.kulichki.com/pdmnu.htm
Посмотри там же сборник CADHLP там есть свое меню и в разделе Расчеты аналогичная прога, взятая тут

/*
https://www.caduser.ru/forum/topic11823.html
*/
(defun C:Dlina (/ Nab Sum i Curve Param)
 (vl-load-com)
     (if (setq Nab (ssget))
         (progn
               (setq Sum 0 i 0)
               (repeat (sslength Nab)
               (setq Curve (vlax-ename->vla-object (ssname Nab i))
                         i (1+ i)
               Param (vl-catch-all-apply 'vlax-curve-getEndParam
               (list Curve))
    )
    (if (not (vl-catch-all-error-p Param))
        (setq Sum (+ Sum (vlax-curve-getDistAtParam Curve Param)))
)
)
)
)
(princ (strcat "nСумма длин выбранных элементов равна: " (rtos Sum 2 2)))
(prin1)
)

Страницы 1

Чтобы отправить ответ, вы должны войти или зарегистрироваться

Описание презентации по отдельным слайдам:

  •  Сумма и разность длин отрезков

    1 слайд

    Сумма и разность длин отрезков

  • ТочкаОтрезокЛоманаяТреугольникКвадратЧетырёхугольникНазовите фигуры:

    2 слайд

    Точка
    Отрезок
    Ломаная
    Треугольник
    Квадрат
    Четырёхугольник
    Назовите фигуры:

  • Что такое отрезок?Отрезок — это часть прямой, у которой есть начало и конец.

    3 слайд

    Что такое отрезок?
    Отрезок — это часть прямой, у которой есть начало и конец.

  • Как обозначают начало и конец отрезка?Начало и конец отрезка обозначают загла...

    4 слайд

    Как обозначают начало и конец отрезка?
    Начало и конец отрезка обозначают заглавными буквами латинского алфавита.
    А
    С

  • Начертите два отрезка длиной 3 см и 6 см.3 см6 смКак найти сумму этих отрезко...

    5 слайд

    Начертите два отрезка длиной 3 см и 6 см.
    3 см
    6 см
    Как найти сумму этих отрезков?
    Конец одного отрезка является началом другого. Суммой отрезков является отрезок.
    6 см
    3 см
    6 см + 3 см = 9 см
    9 см

  • 3 см6 смКак найти разность этих же отрезков? При вычитании отрезков оба отрез...

    6 слайд

    3 см
    6 см
    Как найти разность этих же отрезков?
    При вычитании отрезков оба отрезка нужно построить на луче от его начала.

  • Чтобы найти разность длин двух отрезков, можно из длины большего отрезка выче...

    7 слайд

    Чтобы найти разность длин двух отрезков, можно из длины большего отрезка вычесть длину меньшего отрезка.
    3 см
    6 см
    6 см – 3 см = 3 см

  • 4 см3 смСколько отрезков на этом рисунке?3Найдите длину самого большого отрез...

    8 слайд

    4 см
    3 см
    Сколько отрезков на этом рисунке?
    3
    Найдите длину самого большого отрезка.
    4 см + 3 см = 7 см
    7 см

  • Начертите отрезок 9 см и отметьте точку так, чтобы получился отрезок 2 см.9 с...

    9 слайд

    Начертите отрезок 9 см и отметьте точку так, чтобы получился отрезок 2 см.
    9 см – 2 см = 7 см
    9 см
    2 см
    Узнайте длину второго отрезка.
    7 см

  • Начертите путь божьей коровки.2 см5 см2 см5 смКакая фигура получилась?Четырёх...

    10 слайд

    Начертите путь божьей коровки.
    2 см
    5 см
    2 см
    5 см
    Какая фигура получилась?
    Четырёхугольник.
    Как найти, сколько сантиметров проползла божья коровка?
    Надо сложить длины всех сторон.
    2 см + 5 см + 2 см + 5 см = 14 см

  • Нарисуйте фигуру:

    11 слайд

    Нарисуйте фигуру:

  • Что нового вы узнали о сумме и разности?Узнали, что бывает сумма и разность д...

    12 слайд

    Что нового вы узнали о сумме и разности?
    Узнали, что бывает сумма и разность длин отрезков.

  • Чему учились сегодня на уроке?Учились складывать и вычитать длины отрезков.

    13 слайд

    Чему учились сегодня на уроке?
    Учились складывать и вычитать длины отрезков.

  • Чем отличается построение отрезков на луче при их сложении от построения отре...

    14 слайд

    Чем отличается построение отрезков на луче при их сложении от построения отрезков при их вычитании?
    При сложении конец первого отрезка является началом второго отрезка, а при вычитании — оба отрезка имеют общее начало.

Рейтинг основных форумов
Городские форумы
Городской форум
Коронавирус / Covid-19
Городской форум для новичков
Нижегородская политика
Жалобная книга
Бабский форум
Мужской
Анонимный медицинский форум
Дурацкие вопросы
Автофорумы
Автофорум главный
Девушка за рулем
ВАЗ форум
4х4 форум
Жалобный
Шевроле Форум
Такси
Автозапчасти
Гаражный форум
KIA-форум
Рено форум
Hyundai Форум
VAG Форум
Форумы покупок
Центр раздач: информационный форум
Глав-Пристрой (со всех форумов, взрослый)
Совместная покупка
Совместная покупка: центральный
Совместная покупка: взрослый
Совместная покупка: вкусный
Совместная покупка: мама и малыш
Совместная покупка: уютный
Совместная покупка: сбор предоплаты, раздачи
Совместная покупка: услуги
Совместная покупка: область
Совместная покупка: Дзержинск
Совместная покупка: Саров
Зарубежные интернет-покупки
Покупаем вместе
Покупаем Вместе: Основной
Покупаем вместе: БОЛЬШОЙ ШОПИНГ (взрослый)
Покупаем вместе: БЕБИ-ШОП (детский)
Покупаем вместе: ДОМОВОЙ
Покупаем вместе: ГАСТРОНОМ
Покупаем вместе: Сбор предоплаты, раздачи
Покупаем Вместе: пристрой
Покупаем Вместе: услуги
Выгодная покупка
Выгодная покупка – общие вопросы
Выгодная покупка – взрослый
Выгодная покупка – детский
Выгодная покупка – сбор предоплаты, раздачи
Выгодная покупка – объявления
Форум закупок
Мой малыш
Мой малыш – Основной
Мой малыш – Объявления. Общий
Мой малыш – Объявления: детская одежда
Мой малыш – Объявления: детская обувь
Мой малыш – Объявления: детский транспорт, игрушки, мебель
Халявный
Халявный (основной)
Котята и др. животные
Элитный (продажа неликвидных товаров)
Услуги
Домоводство
Полезный форум
Бытовые проблемы
Деревенский форум
Домоводство
Цветочный форум
Форум владельцев кошек
Дачный. Основной.
Бытовая Техника
Творческий
Рукоделие основной
Форумы по интересам
Фиолетовый форум
Сделаны в СССР
Музыкальный
Кино форум
Кладоискатели и коллекционеры
Рыболовный
Охотничий
Стильный форум
Флирт, Любовь, Знакомства
Фотофорум
Здоровье
Развитие Человека
Пивной форум
Кулинарный
Парфюмерный
Парфюмерная Лавка
Собачий форум
Собачий форум: Основной
Собачий форум: пристрой животных
Наши Дети
Наши дети
Школьный форум
Особые дети
Технофорумы
Интернет-НН
GPS форум
Мобильный форум
Техно-форум
Технотуса
Проф. и бизнес форумы
Бизнес форум
Фотография
Недвижимость
Банковский форум
Медицина
Форум трейдеров
Бухучет и аудит
Юридический
Подбор персонала
Разработчики ПО
Строительные форумы
Строительный форум (основной)
Окна
Форум электриков
Мебель
Кондиционирования и вентиляция
Форум строительных объявлений
Форум проектировщиков
Все строительные форумы
Туризм, отдых, экстрим
Туризм, отдых, экстрим
Спортивные форумы
Клуб болельщиков
Спортплощадка
Боевые искусства
Велофорумы Нижнего Новгорода
Велофорум Нижнего Новгорода
Путешествия
Нижегородская область
Недвижимость
Недвижимость
Ипотека
Земельный форум
ТСЖ
Садоводческое товарищество
Жилые районы
Автозаводский район
Сормовский район
Мещерское озеро
Все форумы районов
Форумы домов
Корабли
Новая Кузнечиха
Октава ЖК (ул. Глеба Успенского)
Мончегория ЖК
Аквамарин ЖК (Комсомольская пл.)
Сормовская Сторона ЖК
КМ Анкудиновский парк ЖК
Красная Поляна ЖК (Казанское шоссе)
Времена Года ЖК (Кстовский р-он)
Стрижи ЖК (Богородский р-он)
На Победной ЖК (Победная ул., у дома 18)
Окский берег ЖК (п. Новинки)
Цветы ЖК (ул. Академика Сахарова)
Деревня Крутая кп (Кстовский р-он)
Опалиха кп (Кстовский р-он)
Юг мкр. (Южный бульвар)
Гагаринские высоты мкр.
Бурнаковский мкр.
Белый город мкр. (60-лет Октября ул.)
Зенит ЖК (Гагарина пр.)
Седьмое небо ЖК
Все форумы домов
Частные форумы
Свадебный форум
Саровский Клуб Покупателей
Июньские мамочки
Знакомства и Приятное Общение
Форум безумных идей
Ночной форум
Королевство кривых зеркал
Ищу вторую половинку!
Лютики-цветочки КУПЛЯ-ПРОДАЖА
Отряд стройности
Пчеловодство
Форум ленивых
Волейбольный клуб туристов
Встречи для секса
Буду мамой!
Алкогольный форум
Лютики-цветочки
Котоводство
Форум сексуального опыта
Свободка
Форум модераторов
Форум забаненных
Новый форум модераторов
Отзывы и предложения (техподдержка)

По вашему запросу ничего не найдено.
Пожалуйста переформулируйте запрос.

  • Общение
  • Технофорумы
  • Техно-форум

Измерить общую длину нескольких несвязанных отрезков в автокаде

С друзьями на NN.RU

У вас пока нет друзей на NN.RU, поэтому ссылка на тему не может быть отправлена.

Воспользуйтесь поиском, чтобы найти новых друзей.

В социальных сетях

Поделиться

сабж.
возможно?
если да,то как?

Можна.функция масштаб.выделяешь што нада увелич(уменьшить) и вводишь 0.9(например)это 90%…или 1.2(120%). Так по аналогии)

Спасибо. но мне нужно измерить. длину суммарную узнать. а не изменить

А почему нельзя из начала первого отрезка в конец последнего провести отрезок (с привязкой, естественно) и измерить ЕГО длинну?

это будет НЕ СУММАРНАЯ ДЛИНА ОТРЕЗКОВ, а всего лишь растояние между двумя точками. Геометрия, шестой класс…

сорри, не учёл, что НЕсвязанных

Тарапилси прачитал нитак)размер функция(сначала сматри в чем мерица)

Выделяешь нужные отрезки, пишешь команду list, смотришь длины, складываешь
если объединить в полилинию – покажет общую длину

спасибо!
методом тыка удалось уяснить что в русской версии list=список.
и зачем эти бараны перевели команды автолиспа…

да? а купленную за 60 с лишним штук русскую выкинуть?

Скока?во люди…яб лучше телек взял…проста ни у фсех такие деньги ф кармане валяюца

только не надо думать что я его на свои деньги купил.
на работе я 🙂
у меня тут еще и винда с офисом лицензионные если че

)нам нинать эти падробнасти)ни налоги сабираем))

хто ж вас знает, товарищ маёр (с)
:-)))

не надо ниче выкидывать.
находишь аналогичную версию и устанавливаешь со своими номеромлицензией. У меня так сделано – куплена русская академия, поставлена английская.

Бабки по пираткам подсчитать – постоянные обитатели форума уж долларовые миллионеры

list = _list (все локализованные версии)
подчеркивание спасает Вас, если Вы
знаете английскую команду и не хотите
учить русскую…

Кстати… насчет команд по расейски… у меня есть два акада 2002 с ДВУМЯ разными (на 40-50%) вариантами русских команд! И 2005-2006 с различием ~30 %. Кудышь податься?

ЗЫ – пиратки, естественно

оригинальный перевод – с переведенной комстрокой, тем и отличается от самоделок (сам в бытность свою был вынужден переводить интерфейс 13го Акада. когда пересаживал на него тетенек предпенсионного возраста).
Понять могу – принять нет :о)

С друзьями на NN.RU

У вас пока нет друзей на NN.RU, поэтому ссылка на тему не может быть отправлена.

Воспользуйтесь поиском, чтобы найти новых друзей.

В социальных сетях

Поделиться

Рейтинг основных форумов
Городские форумы
Городской форум
Коронавирус / Covid-19
Городской форум для новичков
Нижегородская политика
Жалобная книга
Бабский форум
Мужской
Анонимный медицинский форум
Дурацкие вопросы
Автофорумы
Автофорум главный
Девушка за рулем
ВАЗ форум
4х4 форум
Жалобный
Шевроле Форум
Такси
Автозапчасти
Гаражный форум
KIA-форум
Рено форум
Hyundai Форум
VAG Форум
Форумы покупок
Центр раздач: информационный форум
Глав-Пристрой (со всех форумов, взрослый)
Совместная покупка
Совместная покупка: центральный
Совместная покупка: взрослый
Совместная покупка: вкусный
Совместная покупка: мама и малыш
Совместная покупка: уютный
Совместная покупка: сбор предоплаты, раздачи
Совместная покупка: услуги
Совместная покупка: область
Совместная покупка: Дзержинск
Совместная покупка: Саров
Зарубежные интернет-покупки
Покупаем вместе
Покупаем Вместе: Основной
Покупаем вместе: БОЛЬШОЙ ШОПИНГ (взрослый)
Покупаем вместе: БЕБИ-ШОП (детский)
Покупаем вместе: ДОМОВОЙ
Покупаем вместе: ГАСТРОНОМ
Покупаем вместе: Сбор предоплаты, раздачи
Покупаем Вместе: пристрой
Покупаем Вместе: услуги
Выгодная покупка
Выгодная покупка – общие вопросы
Выгодная покупка – взрослый
Выгодная покупка – детский
Выгодная покупка – сбор предоплаты, раздачи
Выгодная покупка – объявления
Форум закупок
Мой малыш
Мой малыш – Основной
Мой малыш – Объявления. Общий
Мой малыш – Объявления: детская одежда
Мой малыш – Объявления: детская обувь
Мой малыш – Объявления: детский транспорт, игрушки, мебель
Халявный
Халявный (основной)
Котята и др. животные
Элитный (продажа неликвидных товаров)
Услуги
Домоводство
Полезный форум
Бытовые проблемы
Деревенский форум
Домоводство
Цветочный форум
Форум владельцев кошек
Дачный. Основной.
Бытовая Техника
Творческий
Рукоделие основной
Форумы по интересам
Фиолетовый форум
Сделаны в СССР
Музыкальный
Кино форум
Кладоискатели и коллекционеры
Рыболовный
Охотничий
Стильный форум
Флирт, Любовь, Знакомства
Фотофорум
Здоровье
Развитие Человека
Пивной форум
Кулинарный
Парфюмерный
Парфюмерная Лавка
Собачий форум
Собачий форум: Основной
Собачий форум: пристрой животных
Наши Дети
Наши дети
Школьный форум
Особые дети
Технофорумы
Интернет-НН
GPS форум
Мобильный форум
Техно-форум
Технотуса
Проф. и бизнес форумы
Бизнес форум
Фотография
Недвижимость
Банковский форум
Медицина
Форум трейдеров
Бухучет и аудит
Юридический
Подбор персонала
Разработчики ПО
Строительные форумы
Строительный форум (основной)
Окна
Форум электриков
Мебель
Кондиционирования и вентиляция
Форум строительных объявлений
Форум проектировщиков
Все строительные форумы
Туризм, отдых, экстрим
Туризм, отдых, экстрим
Спортивные форумы
Клуб болельщиков
Спортплощадка
Боевые искусства
Велофорумы Нижнего Новгорода
Велофорум Нижнего Новгорода
Путешествия
Нижегородская область
Недвижимость
Недвижимость
Ипотека
Земельный форум
ТСЖ
Садоводческое товарищество
Жилые районы
Автозаводский район
Сормовский район
Мещерское озеро
Все форумы районов
Форумы домов
Корабли
Новая Кузнечиха
Октава ЖК (ул. Глеба Успенского)
Мончегория ЖК
Аквамарин ЖК (Комсомольская пл.)
Сормовская Сторона ЖК
КМ Анкудиновский парк ЖК
Красная Поляна ЖК (Казанское шоссе)
Времена Года ЖК (Кстовский р-он)
Стрижи ЖК (Богородский р-он)
На Победной ЖК (Победная ул., у дома 18)
Окский берег ЖК (п. Новинки)
Цветы ЖК (ул. Академика Сахарова)
Деревня Крутая кп (Кстовский р-он)
Опалиха кп (Кстовский р-он)
Юг мкр. (Южный бульвар)
Гагаринские высоты мкр.
Бурнаковский мкр.
Белый город мкр. (60-лет Октября ул.)
Зенит ЖК (Гагарина пр.)
Седьмое небо ЖК
Все форумы домов
Частные форумы
Свадебный форум
Саровский Клуб Покупателей
Июньские мамочки
Знакомства и Приятное Общение
Форум безумных идей
Ночной форум
Королевство кривых зеркал
Ищу вторую половинку!
Лютики-цветочки КУПЛЯ-ПРОДАЖА
Отряд стройности
Пчеловодство
Форум ленивых
Волейбольный клуб туристов
Встречи для секса
Буду мамой!
Алкогольный форум
Лютики-цветочки
Котоводство
Форум сексуального опыта
Свободка
Форум модераторов
Форум забаненных
Новый форум модераторов
Отзывы и предложения (техподдержка)

По вашему запросу ничего не найдено.
Пожалуйста переформулируйте запрос.

Сумма и разность отрезков

  • Сумма
  • Разность

Сумма

Суммой нескольких отрезков называют отрезок, составленный из длин данных отрезков.

Рассмотри два отрезка  AB  и  CD:

отрезки AB и CD

Для нахождения их суммы можно расположить данные отрезки друг за другом на одной прямой, длина полученного отрезка и будет являться суммой данных отрезков:

Сумма длин двух отрезков

Полученный отрезок, длина которого равна  12 см,  и будет являться суммой данных отрезков, то есть:

AB + CD = 5 см + 7 см = 12 см.

Из данного примера можно сделать вывод, что для нахождения суммы отрезков надо сложить их длины.

Разность

Разностью двух отрезков называют отрезок, длина которого равна разности от вычитания длины меньшего отрезка из длины большего.

Рассмотри два отрезка  AB  и  CD:

Для нахождения их разности можно взять больший отрезок, а затем от его начальной точки отложить длину меньшего отрезка. Длина отрезка, который лежит между конечными точками двух данных отрезков и будет их разностью:

Разность длин двух отрезков

Полученный отрезок, длина которого равна  7 см,  и будет являться разностью данных отрезков, то есть:

CDAB = 12 см – 5 см = 7 см.

Из данного примера можно сделать вывод, что для нахождения разности двух отрезков надо вычесть из длины большего отрезка длину меньшего.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
///////////////////////////////////////////////////////////////////////////////
//1.
///////////////////////////////////////////////////////////////////////////////
//На координатной оси оХ заданны координаты начала и конца N отрезков.
//Координаты записаны в массив. Нужно посчитать общую длину отрезков.
//Отрезки могут пересекаться. То есть, если координаты первого отрезка
//x1 = 1, x2 = 5, а координаты второго -- x1 = 2, x2 = 4, то их общая
//длинна равна 4. Или если первый отрезок x1 = 1, x2 = 5,
//а второй x1 = 3, x2 = 6, то длинна равна 5. Отрезков может быть несколько.
///////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <complex>
#include <cstdlib>
#include <ctime>
#include <iostream>
#include <iterator>
#include <list>
#include <set>
#include <utility>
///////////////////////////////////////////////////////////////////////////////
typedef int                                 T_coord;
typedef std::complex    < T_coord       >   T_segment;
typedef std::list       < T_segment     >   T_segments_arr;
typedef std::set        < T_segment     >   T_segments;
///////////////////////////////////////////////////////////////////////////////
namespace std
{
    bool    operator<
        (
            T_segment   const   &   L,
            T_segment   const   &   R
        )
    {
        return      std::make_pair(     L.real(),   L.imag()    )
                <   std::make_pair(     R.real(),   R.imag()    );
    }
}
///////////////////////////////////////////////////////////////////////////////
T_coord     get_rand_coord
    (
        T_coord     coord_min,
        T_coord     coord_max
    )
{
    return  rand() % (coord_max - coord_min + 1) + coord_min;
}
///////////////////////////////////////////////////////////////////////////////
T_segment   get_rand_segment
    (
        T_coord     coord_min,
        T_coord     coord_max
    )
{
    auto    L   =   get_rand_coord( coord_min,  coord_max );
    auto    R   =   get_rand_coord( coord_min,  coord_max );
 
    if( R < L )
    {
        std::swap(L, R);
    }
 
    return  {L, R};
}
///////////////////////////////////////////////////////////////////////////////
void    rand_generate_segments
(
    size_t              segments_total,
    T_coord             coord_min,
    T_coord             coord_max,
    T_segments_arr  &   segments_arr
)
{
    T_segments  segments;
 
    while   (
                    segments.size()
                <   segments_total
            )
    {
        segments.emplace    (
                                get_rand_segment
                                    (
                                        coord_min,
                                        coord_max
                                    )
                            );
    }//while
 
    segments_arr.assign
        (
            segments.begin  (),
            segments.end    ()
        );
}
///////////////////////////////////////////////////////////////////////////////
bool    intersect
    (
        T_segment   const   &   segm_first,
        T_segment   const   &   segm_second
    )
{
    return      segm_first      .real()     <=  segm_second     .real()
            &&  segm_second     .real()     <=  segm_first      .imag();
}
///////////////////////////////////////////////////////////////////////////////
void    print_segments( T_segments_arr   const   &   segments_arr )
{
    for( auto   const   &   segm    :   segments_arr )
    {
        std::cout   <<  segm
                    <<  't';
    }
    std::cout   <<  std::endl;
}
///////////////////////////////////////////////////////////////////////////////
int     get_len_total( T_segments_arr   const   &   segments_arr )
{
    int     res{};
    auto    segments_arr_cur    =   segments_arr;
 
    while   (
                !segments_arr_cur.empty()
            )
    {
        std::cout   <<  res
                    <<  't';
 
        print_segments( segments_arr_cur );
 
        auto    &   segm_first      =   segments_arr_cur.front();
 
        auto    &   segm_second     =   *std::next  (
                                                        segments_arr_cur.begin()
                                                    );
 
        if  (
                    segments_arr_cur.size()     ==  1
 
                ||  !intersect  (
                                    segm_first,
                                    segm_second
                                )
            )
        {
            res     +=      segm_first.imag()
                        -   segm_first.real();
        }
        else
        {
            segm_second     =   {
                                    segm_first.real(),
 
                                    std::max    (
                                                    segm_first      .imag(),
                                                    segm_second     .imag()
                                                )
                                };
        }//else
 
        segments_arr_cur.pop_front();
    }//while
 
    return  res;
}
///////////////////////////////////////////////////////////////////////////////
int     main()
{
    srand(unsigned(time(0)));
 
    const   int         SEGMENTS_TOTAL  {5};
    const   T_coord     COORD_MIN       {1};
    const   T_coord     COORD_MAX       {100};
 
    for(;;)
    {
        T_segments_arr  segments_arr;
 
        rand_generate_segments
            (
                SEGMENTS_TOTAL,
                COORD_MIN,
                COORD_MAX,
                segments_arr
            );
 
        std::cout   <<  get_len_total( segments_arr )
                    <<  std::endl
                    <<  std::endl;
 
        system("pause");
    }//for
}

Добавить комментарий