CAFE

★ CAD/LISP/분과 Q&A

[[Lisp]]vla-offset 방향에 관해서와 vl의 간결화 문의합니다.^^

작성자행복한하루|작성시간10.06.03|조회수332 목록 댓글 5

 

성심 성의껏 질문을 작성하여 주세요, 대충하시면 답변도 대충작성합니다.^^

 

 - 제목 작성시 금지어

   만들어주세요? 해주세요? 안되는데 이렇게 변경해주세요? 등등

- 특정분과 질문은 제목에 분과삽입 [건축] 

   좋은예) [분과]무엇에 대해 문의합니다. /[분과]B로 바꾸는 방법을 알고싶습니다.

- 말머리 필수 

 

① CAD 종류   :

② VERSION   :

③ 운영 체제    :

  

④ 질문내용 및 스크린샷(동영상)

    

 

대각 2점의 입력받아서 위와같이 만들어주는 리습입니다.


전 왜 VL 하면 아래처럼 더 거대해 질까여? ^^:;;;;;;;;;  VL 로 하면 좀더 간결해져야되는데...^^:;;;;;;


그리고 vla-offset 이 pline 을 그리는방향에 따라서 distance 의 양수 음수 부분. 즉 

안쪽에 그려지는지 밖에 그려지는지 틀려지나여??


한쪽 대각은 제대로 나오는데 반대 대각으로 하면 offset 이 전부 반대로 되서여


위 그림은 안족 사각형이 30 offset 된 지점으로 고정입니다. 그안에 원이 그려지는거구여.


좋은 의견 부탁드려여.^^;;;

 

 (defun c:qwe()

 (vl-load-com)

 (if (= nil (tblsearch "layer" "ROD-V"))

  (vl-cmdf "layer" "m" "ROD-V" "c" 7 "" "l" "Continuous" "" "")); if

 (if (= nil (tblsearch "layer" "ROD-H"))

  (vl-cmdf "layer" "m" "ROD-H" "c" 5 "" "l" "Continuous" "" "")); if

 (if (= nil (tblsearch "layer" "ROD-HID"))

  (vl-cmdf "layer" "m" "ROD-HID" "c" 1 "" "l" "Continuous" "P" "N" "" "")); if

;----------------------------------------------

 (setq oDocument (vla-get-activedocument (vlax-get-acad-object)))

 (cond

    ((= (vla-get-activespace oDocument) 1) (setq oSpace (vla-get-modelspace oDocument)))

    ((= (vla-get-activespace oDocument) 0) (setq oSpace (vla-get-paperspace oDocument)))

 )

 (if (not RodDia) (setq RodDia 10))

 (setq RodD (getint (strcat "\n철근의 직경<" (rtos RodDia 2 0) ">:")))

 (if RodD (setq RodDia RodD))


 (setq sp1 (getpoint "\n1st point:"))

 (setq sp2 (getcorner sp1 "\n2nd point:"))

 (setq sp3 (list (car sp2) (cadr sp1)) sp4 (list (car sp1) (cadr sp2)))

 (setq VtxList (list (car sp1) (cadr sp1) (car sp2) (cadr sp1) (car sp2) (cadr sp2) (car sp1) (cadr sp2)))


 (vla-startundomark oDocument)

 (setq oPlineObj-1 (vlax-invoke oSpace 'addlightweightpolyline VtxList))

 (vla-put-closed oPlineObj-1 :vlax-true)


 (vla-offset oPlineObj-1 30.0)

 (setq oPlineObj-2 (vlax-ename->vla-object (entlast)))


 (vla-offset oPlineObj-2 (/ RodDia 2)) 

 (setq oPlineObj-3 (vlax-ename->vla-object (entlast)))

 (setq PtList (vlax-get oPlineObj-3 'Coordinates))

 (setq n1 0 n2 1)

 (repeat 4 

  (vla-addcircle oSpace (vlax-3d-point (list (nth n1 PtList) (nth n2 PtList))) (/ RodDia 2))

  (setq n1 (+ 2 n1) n2 (+ 2 n2))

  (vla-put-layer (vlax-ename->vla-object (entlast)) "ROD-V")

 ) 

 (vla-put-layer oPlineObj-1 "ROD-HID")

 (vla-put-layer oPlineObj-2 "ROD-H")

 (vla-delete oPlineObj-3)

 (vla-endundomark oDocument)

 (princ)

 

 

 

 

⑤ 파일첨부 (LISP/DWG) - DWG 첨부시 보다 정확한 답변을 얻을수 있습니다.

 

 

첨부파일 qwe.lsp

 

 

※ 유의사항

 - ①말머리 : 말머리를 달아야 구분이 쉽겠죠^^

 - ②Screenshot : 이해를 돕기위해 삽입요망.

 - ③파일 첨부 : 상위버전에서 테스트할 파일이 아니면 가급적 하위버전으로 저장후 첨부.

                          해당리습/해당파일(DWG) 도 같이 첨부하여 주세요.

 - ④       목 : 질문 내용 반영(개략적인 내용),       예) 해치를 만들고 싶어요, pline을 연결할려면?

 - ⑤질문글 삭제금지 : 질문후 댓글이 달린글은 삭제금지.

    여러 리플러들이 소중한 시간을 내어서 고민한후 댓글을 작성한 이상 "강력조치" 토록 하겠음. 

 

※ 정답만이 댓글은 아닙니다. 그 답이 맞던 틀리던 그건 그 댓글로서 존중되어야 합니다.

    회원님들이 글을 읽었다는것과 댓글을 달았다는건 그만큼 관심을 가지고 있고 또 그 답을 해주기 위해

    검색도 해보고 도움말도 보고 고민도 하는 일련의 과정을 거치면서 나오기 때문이죠.

    이에 대한 고마움과 감사함을 모르는 테러행위(?)는 없었으면 합니다.

 

 

 


다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
  • 작성자행복한하루 작성자 본인 여부 작성자 | 작성시간 10.06.03 VL 로 draw 부분은 첨해보는거 같네여.^^; 어려운데여.^^:
  • 작성자3:16 | 작성시간 10.06.03 저도 머...이거 다뤄보면서.. 양수 음수일때의 차이 말고는 잘 모르겠다는... ㅠㅜ
  • 작성자하얀제비 | 작성시간 10.06.03 폴리라인의 방향성(시계방향, 반시계방향)과
    offset량의 부호에 따라 offset방향이 결정되는것으로 알고 있습니다.

    이 경우는 직접 폴리라인을 작성하는 경우라 적당한 부호(+ or -)를 넣어주시면 됩니다. ^^*
    만약, 폴리라인을 입력받는다면, 폴리라인이 시계방향인지 아닌지의 서브함수가 필요할 겁니다. (이 서브함수는 많이 보았을 겁니다.) ^^*
  • 답댓글 작성자3:16 | 작성시간 10.06.04 아..네..^^* 보고싶습니당~^^ ㅎㅎ
  • 작성자행복한하루 작성자 본인 여부 작성자 | 작성시간 10.06.04 아... 폴리선의 방향에 따라 틀려지는군여.^^ 두점을 입력받는거라 방향이 틀려질수가 있어서 그런거군여.^^ 감사합니다.^^
댓글 전체보기
맨위로

카페 검색

카페 검색어 입력폼