Jump to content

Липсы для геодезии.


 Share

Recommended Posts

1 час назад, Boroda888 сказал:

Что имеется в виду? Контроль построения по картам (подложке)?

Контроль фактического положения( например сваи) от проектного.  чтоб отклонение по осям показывало

пример.png

Link to comment
Share on other sites

2 часа назад, Boroda888 сказал:

Что имеется в виду? Контроль построения по картам (подложке)?

Спойлер

1.png.8d9b7b59c652664320420268daa8120f.png

 

Edited by VitBor
Link to comment
Share on other sites

  • 2 weeks later...

См. http://www.dxf-workshop.com/ExtraToolsOnRu/ -  версия под AutoCAD 2017х64 оказалась с вирусом, под 21-23 извлекла. Требуются исходники .arx, тогда можно посмотреть, какие из утилит имеет смысл адаптировать, но не на лиспе

image.thumb.png.bc3279063842c21be28331006d5d8ba2.png

 

  • Like 2
Link to comment
Share on other sites

  • 2 weeks later...
  • 5 months later...

Любезно прошу помочь с  лиспом, рандомно изменяющим поворот блоков на 180о  относительно базовой точки их вставки, т.е. одноименные блоки, подлежащие повороту, выбираются случайным образом ( или проще- стрелки должны поменять направление хаотично) Стрелка_200723.dwg

Edited by VitBor
Link to comment
Share on other sites

А что, просто выбрать блоки и в свойствах установить поворот 180 не подходит?

добавлено через 1 минуту

Или надо текущий уг.поворота +180?

добавлено через 7 минут

А если блок содержит атрибуты и текст, то они должны поворачиваться?

Edited by lidia.antipina.ru
Link to comment
Share on other sites

Только что, lidia.antipina.ru сказал:

Или надо просто поменять направление всех/выбраных стрелок на противоположное?

Лисп должен повернуть блок (блоки) рандомно, т.е.  на 0 или на 180  случайным образом. 

Link to comment
Share on other sites

Спойлер

Новый точечный рисунок (3).png

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

Edited by VitBor
  • Confused 1
Link to comment
Share on other sites

Офф: Не знаю как остальных, а лично меня чрезвычайно напрягает слово "случайно". Вопрос не в реализации, а в результате.

  • Like 1
Link to comment
Share on other sites

Еще больше напрягает , что непонятно, что именно должно быть случайным: угол поворота или выбор стрелок?

 

Link to comment
Share on other sites

45 минут назад, VitBor сказал:
  Показать контент

Новый точечный рисунок (3).png

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

Для этого, по-моему, достаточно использовать QS,QSELECT,БВЫБОР - Быстрый выбор, затем Свойства -> Поворот

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Если поворотов стрелки всего 2 (0 и 180) (ну или несколько), то можно обойтись "недодинамическими" блоками nanocad c параметром видимости и таблицей nanocad (c применением функции ctlSetValue)

1691849231_()01.jpg.7d69ea944ed3dc43bcf0df30dae03b7d.jpg

 

 

18063875_()02.thumb.jpg.79fe4edfd316988a2df4051d691bdbd6.jpg

 

Стрелка_200723(1).dwg

 

Правда, стрелки будут поварачиваться не совсем рандомно, а по определенным правилам сортировки таблицы :)

Link to comment
Share on other sites

24 минуты назад, kpblc сказал:

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

Лисп vk_RandNum и ему подобные я активно использую, rnd-rotate-blocks под ак, в nc 22.0  не работает (. я не думал, что это так сложно... )

 

Link to comment
Share on other sites

Спойлер
(defun c:rand_rotate ( / i nab)
  (setq i 0 nab (ssget "_X" (list (cons 0 "INSERT"))))
  (repeat (sslength nab)
    (if (>  (_dwgru-random) 0.5)
      (Block_rotate (ssname nab i) pi )))
    (setq i (1+ i))
    )
  (prin1)
  )
  
(defun Block_rotate (el ang / a d)
  (setq d (entget el))
  (if (setq a (assoc 50 d))
    (setq d (subst (cons 50 (+ (cdr a) ang)) a d))
    (setq d (append d (list (cons 50 ang)))))
  (entmod d)
  ) 
   
(defun _dwgru-random (/ modulus multiplier increment)
;;; Генерирует случайное вещественное число в диапазоне от 0 до 1
;;; Используется глобальная переменная *DWGRU_SEED*
    (if (not *dwgru_seed*)
      (setq *dwgru_seed* (getvar "DATE"))
    ) ;_ end of if
    (setq modulus      65536
          multiplier   25173
          increment    13849
          *dwgru_seed* (rem (+ (* multiplier *dwgru_seed*) increment) modulus)
    ) ;_ end of setq
    (/ *dwgru_seed* modulus)
  ) ;_ end of defun

 

 

Солью проги, конечно, является генератор СЧ  по наводке от @kpblc

Link to comment
Share on other sites

Я проверял на NC23, у меня сработал. Просмотри код - там на основании полученного псевдослучайного числа выполняется поворот. Если число меньше или равно 0.5, то поворот выполняется. Попробуй выбрать штук 20 одинаково расположенных блоков - увидишь, что после применения случайное количество случайно расположенных блоков повернулись на 180

добавлено через 0 минут

@EdwardSt, генератор честнейшим образом стырен с форума dwg.ru

Link to comment
Share on other sites

1 минуту назад, kpblc сказал:

генератор честнейшим образом стырен с форума dwg.ru

Потому и пишу не об авторстве, а о наводке)))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...