• 3

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


Bartek1977

Question

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.

Edited by Bartek1977
Link to comment
Share on other sites

21 answers to this question

Recommended Posts

  • 0

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.

 

Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0
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?

Link to comment
Share on other sites

  • 0

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)

 

Edited by perlon
Link to comment
Share on other sites

  • 0

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ć. 

Link to comment
Share on other sites

  • 0

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.

Link to comment
Share on other sites

  • 0

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ę. :-)

Edited by Bartek1977
Link to comment
Share on other sites

  • 0

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

Link to comment
Share on other sites

  • 0

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.

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.