Przejdź do głównej treści

Kopiowanie z zaznaczeniem

Funkcja, którą prezentuje poniżej jest podobna do standardowej fukcji kopiującej, z tą różnicą, że obiekty pozostają w orginalnym położeniu i pozostają zaznaczone, dzięki czemu można wykonywać dowolne operacje jedynie na grupie obiektów nowo utworzonych, nie zmieniając orginałów.

Wielokrotnie spotkałem sie z potrzebą skopiowania wielu elementów i wykonaniem pewnych operacji tylko na jednej grupie obiektów, orginałach lub kopiach. Standardowa funkcja ZWCADa po wykonaniu kopiowana czyści zbiór wskazanych obiektów. Jeśli wybór był skomplikowany, np. z użyciem funkcji szybki wybór i z użyciem różnych filtrów, konieczność ponownego wybierania obieków będzie skomplikowana, tym bardziej, że często wybrane będą zarówno orgianalne jak i skopiowane obiekty.

 

Kopiowanie z zaznaczeniem

 

Polecenie do uruchomienia skryptu LISP: Kopia

 

Kod źródłowy z opisem

 

;;; Kopiowanie z zaznaczeniem
;;; zwcad.pl
;;; Polecenie do uruchomienia skryptu LISP: Kopia
;;; Opis: https://www.zwcad.pl/materialy-edukacyjne/kurs-lisp/przyklady-lisp/219-kopiowanie-z-zaznaczeniem.html
(vl-load-com)
(setq *ZWCAD* (vlax-get-acad-object))
(setq *Rysunek* (vla-get-activedocument *ZWCAD* ))
(setq *Model* (vla-get-Modelspace *Rysunek* ))
(defun sel2list (selset / Wynik ileelementow i)
;----------------------------------------------------------
; funkcja zamienia zbiór wskazań na listę obiektów
; Argumenty: zbiór wskazań (selectionset)
; Wynik: lista
;----------------------------------------------------------
(setq ileelementow(sslength selset) )
(setq i 0 )
(repeat ileelementow
(setq Wynik (append Wynik (list (vlax-ename->vla-object(ssname selset i) ) )))
(setq i (1+ i ))
)
Wynik
)
(defun C:Kopia ( / )
(setq Wybrane (ssgetfirst))
(setq Wybrane1 (cadr Wybrane))
(if (null Wybrane1) (progn (print "Wskaż obiekty do skopiowania" )(setq Wybrane1 (ssget ))))
(setq Wybrane_obj_list (sel2list Wybrane1) )
(foreach % Wybrane_obj_list
(vlax-invoke-method % 'Copy )
)
(sssetfirst Wybrane1 Wybrane1)
)

 

Wykonanie w ZWCAD 2023

kopiowanie z zaznaczeniem

Lista tagów: LISP Przykłady LISP

// ZWCAD: dymki słownika – szerokość 500 px i przeliczenie rozmiaru po wczytaniu obrazka (bez paska przewijania) jQuery(function ($) { if (!$.tooltipster) return; // obrazek w dymku wczytuje się po otwarciu – wtedy dymek trzeba zmierzyć jeszcze raz $.tooltipster.on('ready', function (e) { var instance = e.instance; $(e.tooltip).find('img').each(function () { if (!this.complete) { $(this).one('load', function () { instance.reposition(); }); } }); }); // SEO Glossary ustawia maxWidth: 400 – zmieniamy na 500 po jego inicjalizacji setTimeout(function () { $('.tooltipstered').each(function () { try { $(this).tooltipster('option', 'maxWidth', 500); } catch (err) {} }); }, 0); });