1. vla-GetBoundingBox함수와 원과의 관계에 대해서 ...
vla-GetBoundingBox함수를 사용중에 재미있는 사항을 발견하여서 글을 올립니다.
Z값이 없는 객체를 사용하면 당연히 vla-GetBoundingBox함수를 사용하여서 리턴이 되는 좌하단값과 우상단값이 Z값이 없어야 정상적입니다.
라인 폴리라인 스플라인등..은
X = ... Y = ... Z = 0.00000000 이렇게 값이 0의 값을 리턴하지만
객체가 원 호 타원일 경우는 좀 달라집니다.
X = ... Y = ... Z = -0.00000001 이렇게 소수점 8자리에서 1값을 리턴하네요
블럭일 경우는 라인으로 구성된 블럭은 0의 값이지만 원이 들어가면 위의 결과와 마찬가지로 Z = -0.00000001이 나옵니다.
블럭안에 포함된 원의 갯수와는 상관이 없지만 블럭이 가지는 스케일하고 관련이 있습니다.
원이 포함된 블럭의 스케일을 400배 확대하면 Z = -0.00000400 값이 이렇게 나옵니다.
축소를 하여보니 0.5배까지는 Z = -0.00000001 0.4배부터 Z = 0.00000000으로 아옵니다.
캐드오류이면 vla-GetBoundingBox함수의 사용시 원이 포함된 블럭을 1억배의 스케일값을 주면 Z값이 1의 오차를 가지게 된다는 것입니다.
2. Select Method에서 and or not함수를 사용방법에 대하여...
일반리습에서는 ssget함수에 and or not함수를 이용하여 필터링을 사용하였습니다.
매번 변환함수를 사용하는 것보다 비주얼리습으로 작업을 하려다보니 필터링이 궁금합니다.
비주얼리습에서는
Select Method, SelectAtPoint Method, SelectByPolygon Method, SelectOnScreen Method
로 선택을 할수 있으며 이 메써드는 필터링 기법을 지원되는 것으로 알고 있습니다.
위의 메써드로 필터링을 할때 and or not 함수를 어떻게 적용하는 궁금하네요.
만약 선택 세트에서 레이어 이름으로 선택을 한다면 아래구문을 이용하면 됩니다
(vla-select asel acselectionsetall nil nil
(vlax-safearray-fill (vlax-make-safearray vlax-vbinteger '(0 . 0)) '(8))
(vlax-safearray-fill (vlax-make-safearray vlax-vbvariant '(0 . 0)) (list layname))
)
선택 세트에서 레이어이름 중에 "A"레이어를 제외하려면 어떻게 하여야 할까요?
리습으로는 ssget과 not를 이용하면 쉽게 되었는데
vla-select 함수로는 어떻게 할수 있는지 궁금하네요.
vla-select 함수를 2번 이용하면 and와 동일한 역활은 할수 있을것 같은데...
좋은 방법이 없을까요?
3. 동적블럭에 적용된 Parameter값을 가져오거나 변경하는 방법
4. vla-WBlock 함수와 UCS이동에 대하여 ...
command함수을 이용한 wblock을 생성할 경우는 기준점을 입력을 하여야 합니다.
vla-WBlock함수는 기준점이 없이 파일명과 선택세트값으로 파일을 만드는것 같네요.
그럼 기준점은 0,0,0 이되고 기준의 좌표체계로 작성이 되는 것 같습니다.
그런데 ucs를 변경하였을 경우에 넘어간 파일을 확인하여 보니
변경된 ucs의 0,0,0을 basepoint값으로 인식을 하지만 좌표값이 다르게 만들어 집니다.
ucs를 이동하였을 경우 vla-WBlock함수에서 인식하는 기준점의 로직이 어떻게 될까요?
'AutoCAD > AutoLisp' 카테고리의 다른 글
vla-GetBoundingBox함수와 원과의 관계에 대하여 ... (0) | 2011.11.15 |
---|---|
LayerState에 관한 설명 - 캐드에서 레이어 셋팅을 관리가능 (0) | 2011.11.09 |
[XREF] Xref파일 Bind후에 Xref에서 off된 레이어 삭제 (0) | 2011.05.15 |
[LSP] 캐드바이러스(acad.lsp, acaddoc.lsp...) 삭제구문 (0) | 2011.05.12 |
[LSP] FAS 와 VLX 어느것이 더 빠를까요? (0) | 2011.05.12 |