vla-insertblock - problemy ze skalą?


gruzin
 Share

Recommended Posts

zacząłem kombinować jak by tu zacząć rysować zagospodarowanie terenu w "m" lub w "cm". Dodam że do tej pory zawsze rysowałem w "cm" i wszystkie bloki do wklejania w terenie mam zrobione w cm.

 

bloki wstawiałem za pomocą funkcji vla-insertblock ale pojawił się teraz problem ponieważ bloki takie nie przeskalowują się z zachowaniem jednostek bloku i jednostek aktualnego rysunku. Albo coś źle robię albo jest to błąd Zwcada 2015+ ??

(vla-insertblock (mh:ACX_ActiveSpace) (vlax-3d-point (trans PunktWstawienia 1 0)) NazwaBloku
1.0
1.0
1.0
0.0
)

(command "_insert" NazwaBloku PunktWstawienia "_XYZ" "1.0" "1.0" "1.0" "0.0")

wstawianie tego samego bloku za pomocą command i vla-insertblock daje zupełnie inne rezultaty, pomimo tego że skalę xyz mam taką samą w obu poleceniach.

polecenie command "_insert" przeskalowuje wstawiane bloki tak jak trzeba ale wolałbym poprawić funkcję z vla-insertblock jeżeli coś mam w niej nie tak

 

W załączniku przykładowy blok który próbuję wstawiać na zagospodarowaniu terenu

IS_PZT_STUDNIA_100cm.dwg

Link to comment
Share on other sites

Witam

Sprawdzam ten temat i nie udaje mi się powtórzyć opisanego przez Pana przypadku.

Wstawiając zarówno przez command jak i przez vla-insertblock wynik mam taki sam.

Jednostki rysunku do którego wstawiam bloki to metry lub cale .

Może jeszcze coś innego mamy inaczej. Proszę przesłać informację jaki ma Pan vernum ZWCADa? jeśli to możliwe proszę też przykładowy projekt, do którego wstawia Pan blok.

Czy blok jest już zdefiniowany w projekcie? czy wstawia go Pan bezpośrednio z zewnętrznego pliku?

Link to comment
Share on other sites

wstawiam zawsze z zewnętrznego pliku (przykład takiego pliku byl w załączniku)

wieczorem postaram się skopiować trochę większy kawałek kodu jak znajdę chwilkę.

 

studnia z załącznika jeżeli rysujemy w "m" powinna wstawiać się ze skalą 0.01 i mieć średnicę = 1 (tak nie jest)

studnia z załącznika jeżeli rysujemy w "cm" powinna wstawiać się ze skalą 1 i mieć średnicę = 100 jest ok

Edited by gruzin
Link to comment
Share on other sites

Proszę umieścic blok z pierwszego posta na dycku c:

i potestować jego wstawienie za pomocą tego kodu, zmieniając jednostki w rysunku na "cm" i na "m"

(defun c:mmm ()
(vl-load-com)
	(setq PunktWstawienia (getpoint "\nWskaż punkt wstawienia rysunku: ")
	NazwaBloku "C:\\IS_PZT_STUDNIA_100cm.dwg")
	(vla-insertblock (vla-get-ModelSpace (vla-get-ActiveDocument (vlax-get-acad-object))) (vlax-3d-point (trans PunktWstawienia 1 0)) NazwaBloku
		1.0
		1.0
		1.0
		0.0 ; tutaj dodac odczytywanie aktualnego obrotu luwa
	)
)
(defun c:mmmm ()
	(setq PunktWstawienia (getpoint "\nWskaż punkt wstawienia rysunku: ")
	NazwaBloku "C:\\IS_PZT_STUDNIA_100cm.dwg")
	(command "_insert" NazwaBloku PunktWstawienia "_XYZ" "1.0" "1.0" "1.0" "0.0")
)
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.   Paste as plain text instead

  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