• 3

Przesunięcie warstwy "na spód" [Rozwiązany]


Pytanie

Opublikowano (edytowane)

Chciałbym, aby była możliwość ustawienia warstwy, żeby podczas rysowania, od razu była wyświetlana na spodzie rysunku, a nie na wierzchu. Głównie chodzi mi o wymiarowanie, bo czasami pomocnicze linie wymiarowe zasłaniają obiekt.

Edytowane przez Bartek1977

21 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
Opublikowano

Funkcja w sumie ciekawa.

Reasumując wybieramy warstwę i określamy, czy obiekty na tej warstwie mają być na samej górze, czy na samym dole.

Nie wiem czy dobrze zrozumiałem

Dnia 3.02.2017 o 11:01, Bartek1977 napisał:

pomocnicze linie wymiarowe zasłaniają obiekt

czy nie na odwrót.

Jeśli obiekt zasłania tekst, wymiary, odnośniki to można użyć funkcji TEXTTOFRONT, która za jednym zamachem przeniesie wszystkie teksty do przodu.

 

  • 0
Opublikowano

Tak, pomocnicze linie wymiarowe zasłaniają obiekt :) ,a muszą mieć odsunięcie od początku "0". Jeśli zwymiaruję najpierw odległość "280", to "145" już nie zwymiaruję podwójnym kliknięciem, tylko muszę zaznaczać punkty końcowe. Gdyby warstwa wymiarów od razu była na spodzie, nie miałbym takiego problemu :)

pod.jpg.1e6a47b12bd2d2c05206b3866eb259c5.jpg

  • 0
Opublikowano
Dnia 7.02.2017 o 06:25, Bartek1977 napisał:

Jeśli zwymiaruję najpierw odległość "280", to "145" już nie zwymiaruję podwójnym kliknięciem

Wydaje mi się, że chodzi tutaj bardziej o pojedyncze kliknięcie na obiekcie.

Po naradzie wydaje się, że możemy utworzyć skrypt, który po narysowaniu wybranego elementu w tym przypadku wymiaru przesunie go na spód rysunku.

Czy to by wystarczyło?

  • 0
Opublikowano

Pomyslałem o takiej procedurze: narzedzia express: odfiltrowanie warstwy z wymiarami, CTRL-A (zaznacza wszystko). polecenie umiesc pod spód.
Efekt koncowy warstwa z wymiarami pod wszystkimi obiektami

  • 0
Opublikowano (edytowane)

Moje rozwiązanie które kiedyś tam dawno spłodziłem:

Z kodu wynika, że domyślnie wrzuca hasze pod spód lub do wyboru na wierz lub pod spód całą warstwę z wskazanym obiektem. 

(princ "\nSetORDER Copyright (c)2003 by perlon")
(princ "\nŁadowanie funkcji SetORDER............")

(defun c:sorder	(/ wybor s)
  (initget "Wierzch Spod Hatche")
  (setq	var1  (getvar "CMDECHO")
	wybor (getkword "\nWarstwa na Wierzch/Spod/<Hatche>:")
  )
  (if (= wybor nil)
    (setq wybor "Hatche")
  )
  (setvar "CMDECHO" 0)
  (cond
    ((= wybor "Wierzch")
     (progn
       (setq ent
	      (entsel
		"\nZaznacz obiekt na warstwie, ktorej elementy chcesz przeniesc na wierzch: "
	      )
       )
       (if (= ent nil)
	 (princ "\nNie wskazano obiektu")
	 (progn
	   (setq s (ssget "X" (list (cons 8 (cdr (assoc 8 (entget (car ent))))))))
	   (if (/= s nil)
	     (command "_.DRAWORDER"
		      s
		      ""
		      "_front"
	     )
	   )
	 )
       )
     )
    )
    ((= wybor "Spod")
     (progn
       (setq ent
	      (entsel
		"\nZaznacz obiekt na warstwie, ktorej elementy chcesz przeniesc pod spód: "
	      )
       )
       (if (= ent nil)
	 (princ "\nNie wskazano obiektu")
	 (progn
	   (setq s (ssget "X" (list (cons 8 (cdr (assoc 8 (entget (car ent))))))))
	   (if (/= s nil)
	     (command "_.DRAWORDER"
		      s
		      ""
		      "_back"
	     )
	   )
	 )
       )
     )
    )
    ((= wybor "Hatche")
     (progn
       (setq s (ssget "X" '((0 . "HATCH"))))
       (if (/= s nil)
	 (command "_DRAWORDER" s "" "_B")
	 (princ "\nNa rysunku nie ma kreskowań.")
       )
     )
    )
  )
  (setvar "CMDECHO" var1)
  (princ)
)

(princ " Załadowane.")
(princ "\nWywołanie z linii komend C:SORDER")
(princ)

 

Edytowane przez perlon
  • 0
Opublikowano (edytowane)

Skorzystałbym z gotowych funkcji. Wystarczy wybrać "Send to back" i wymiar wyląduje po linią.

large.draworder.png.634b9a81c594a7ea54da5262d7e5e702.png

Wcześniej możemy wyodrębnić warstwe z wymiarami.

large.589e2fb874271_wyodrbnij.png.c4c09473a9a1313388724e228eeb2397.png

Edytowane przez Parikon
  • 0
Opublikowano

Chodzi o to, żeby od razu w momencie rysowania  warstwa lub wymiar były na spodzie, a nie zwymiarować i "Send to back", zwymiarować i "Send to back" itd. Wiem że jest szybki i inteligentny wybór, polecenie FILTER, gdzie mogę sobie zaznaczyć warstwę, czy też wymiary i przesunąć je na spód. Jeśli dobrze pamiętam to coś takiego było w Photoshopie, wybierało się warstwę, zaznaczało, czy ma być na wierzchu, czy na spodzie i można było rysować. 

  • 0
Opublikowano

Rozumiem.

Jednak w przypadku przedstawionym na rysunku nie rozumiem czemu wymiarujesz do punktów wewnątrz wgłębienia, a nie  do punktów zewnętrznych. Gdybym miał wymiarować to co narysowałeś wymiar odnosiłby się do narożników. Gdyby tych wgłębień było więcej użyłbym dimcontinue. Problem sam sobie tworzysz.

  • 0
Opublikowano (edytowane)

To był akurat prosty przykład, żeby pokazać o co chodzi, a chodzi o szybkość :wink: Codziennie wymiaruję wiele takich obiektów, przeważnie dużo bardziej skomplikowanych i z doświadczenia wiem, że wymiar szeregowy w mojej pracy się nie sprawdza. Z drugiej strony chodzi też o dokładność, klikając na linię jestem pewny, że jest dobrze zwymiarowana, a wybierając narożniki łatwiej o błąd. Dlatego funkcja, o której piszę znacznie by mi ułatwiła i przyspieszyła pracę. :-)

Edytowane przez Bartek1977
  • 0
Opublikowano
18 godzin temu, dmatusz3 napisał:

Po naradzie wydaje się, że możemy utworzyć skrypt, który po narysowaniu wybranego elementu w tym przypadku wymiaru przesunie go na spód rysunku.

Czy to by wystarczyło?

Tak :biggrin:

  • 0
Opublikowano

zdecydowanie głosuję za ustawianiem priorytetu warstw

takie rozwiązanie stosowane jest w bentleyu dla rys 2D. Pozycjonowanie warstw to wielce przydatna rzecz. Mam często takie rysowanie, że mam kreskowania na różnych "poziomach", jedne pod spodem jedne na wierzchu. Ułatwiło i przyspieszyło by to b. rysowanie zwłaszcza że zw czasem gubi poziomy np dla hatchów, a ciągłe zmienianie poziomów poszczególnych elementów zabiera czas. W mikrostacji wygląda panel warstw tak:

2 - priorytet warstwy - przy czym w obrębie warstw również działa kolejność wyświetlania. Ale priorytet warstwy jest nadrzędny, tak że nie da się przenieść używając narzędzia analogicznego do draworder elementy z warstwy i niższym priorytecie

1 - przezroczystość

Przy czym przezroczystość i priorytet można też definiować dla xrefów. Na takiej samej zasadzie tylko że cały odnośnik jest ustawiony na przezroczystość czy poziom

bentleyJPG.thumb.JPG.1760fd9f1a6b686cf5714d2a58045396.JPG

  • 0
Opublikowano (edytowane)

poziom przeźroczystości byłby lepszy 0%-100% ...ta zmienna wyjściowa może być wstępnie użyta przez programy renderujące w przyszłości

Edytowane przez Martin_S
  • 0
Opublikowano

Utworzyliśmy mały skrypt, który pozwoli na przeniesienie wymiarów na spód.

Działa on w taki sposób, jak pokazano na filmie poniżej.

Skrypt jest tutaj DimToBack.lsp

EDIT. Skrypt działa tylko w ZWCAD 2017.

Po załadowaniu dostępne są 2 polecenia:

  • dimtoback:on - włączamy funkcje,
  • dimtoback:off - wiadomo.

 

PS. Dziękuję wszystkim za odpowiedzi i różne alternatywne metody rozwiązania problemu.

 

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.