비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 109533
다음
진행 중
Lv.0
등록일: 2018-03-072018-03-07T17:40:40+09:00 2018-03-07T17:40:40+09:00카테고리: AutoCAD & CADian

vba 에서 block을 수정하고자할때

제가…어쩌다보니 엑셀vba로 cad자동화 프로그램을 짜게 되었는데요

dream의 철근재료표 작성기능을 사용할때 편하기 위해서 
철근 표시블록(엔티티5개로 구성된 철근직경과 이름을 기재하는 block)
을 살려서 사용하고자 합니다.
Set BkStObj = acad.ActiveDocument.ModelSpace.InsertBlock(InsertionPnt, “CSBNUM1”, 50, 50, 50, 0)
대충이런식으로 기존의 블록을 재활용해가면서 원하는 위치에 넣을수는 있는데요
중요한점은 안의 내용물을 고치면서 삽입하고싶습니다.
캐드로 표현하자면 bedit이나 refedit이 아닌 eattedit을 vba로 하고싶다는건데요
vba상에서 블록을 뜯어보면 구성된 엔티티가 item1,item2,……item5 이런식으로 요소(?)가 보입니다.
그런데 막상 코딩중에 .을 찍어서 확인해보면 item이라는 매서드는 잡히는데
item1이라는 프로퍼티는 잡히지가 않더라구요
.addattribute라는 매서드를 이용하면 제가 원하는 엔티티를 추가해서 블록에 
item6이 생기게 할수는 있는데; 
이런 기능을 원하는게 아니라 기존의 엔티티를 수정하고 싶은거라서요
하나하나씩 매서드랑 프로퍼티를 살펴보고는 있는데 
제가원하는 명령이 잘 안보이는듯해서;; 혹시 
블록을 구성하는 item을 수정하는법을 알 수 있을까요 고수분들 ㅠㅠ
  • 0
  • 7 7 답변
  • 65 조회
공유
  • Facebook

    관련 있는 질문들

    • 오토캐드 마지막 화면으로 실행 안됨
    • 오토캐드 마지막 화면으로 실행 안됨
    • 도서관 도면 구합니다. !
    • 캐드2022 레이어 그룹 분류시 레이어 드래그 오류

    7 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2018-03-08T10:23:33+09:00답변 등록 답변 등록 일시 2018-03-08 10:23 am

      한번 굴려 보겠습니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2018-03-08T10:22:47+09:00답변 등록 답변 등록 일시 2018-03-08 10:22 am

      아마도 방금생성한 블록객체를 셀렉트한뒤를 말씀하신것 같은데 제가 잘알아먹고 있는걸까요

      확실히 블록을 아무리 쥐고 흔들어 봤자. edit attribute는 안될것 같고 생성한뒤에 그것을 클릭하고
      그뒤를 봐야할것 같은데 캐드도면상에 생성된 것을 선택하는 매서드가 있을까요?
      지금까지는 생성하자마자 색을 바꾼다거나 하면 비베가 알아서 친절하게 직전의 엔티티를 바꾸어 줬습니다만 (ex. polyline이라는 오브젝트를 만들고 셋해서 생성시킨다음에 바로 polyline.TrueColor = steelcolor  하는식;;){문제는 블록은 blockobj 셋해서 찍은다음에 .을찍어도 item5를 볼수가없다는게 ㅠㅠ}
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2018-03-08T10:04:23+09:00답변 등록 답변 등록 일시 2018-03-08 10:04 am

      oEnt = 기존 엔티티 입니다.

      수정하려면 도면에서 뭘 선택을 해야할테고 = 셀렉션 셑이겠죠.
      이런 의미였습니다.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2018-03-08T09:47:36+09:00답변 등록 답변 등록 일시 2018-03-08 9:47 am

      oEnt가 선택한 객체라는 부분을 잘모르겠네요 좀더 가르침을 받을수있을까요

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. [Deleted User]
      2018-03-07T18:03:48+09:00답변 등록 답변 등록 일시 2018-03-07 6:03 pm

      VBA로 속성 편집은

      oEnt 변수가 선택한 객체일 때 
      아래 코드처럼 합니다.
      Dim vAtt As Variant
      Dim i As Integer
      Dim oTemp As AcadEntity
      If oEnt.ObjectName = “AcDbBlockReference” Then
          If oEnt.HasAttributes Then
              vAtt = oEnt.GetAttributes
              For i = 0 To UBound(vAtt)
                  Set oTemp = vAtt(i)
                  oTemp.TextString = “어떤값”
              Next i
          End If
      End If
      VBA는 오토데스크의 지원도 미미하고..
      현재 상황에서 제대로 개발하기 위해선 여러 가지 문제가 많습니다.
      나중에 기회가 되시면 .NET 을 공부해보시길 권장합니다.
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    7. [Deleted User]
      2018-03-07T17:48:01+09:00답변 등록 답변 등록 일시 2018-03-07 5:48 pm

      마음같아서는 그냥

      blockobj(그냥 오브젝트이름).item5.textstring=”L1″
      이런식으로 수정하고싶은데 말이죠;
      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    8. [Deleted User]
      2018-03-07T17:42:28+09:00답변 등록 답변 등록 일시 2018-03-07 5:42 pm

      여타 다른분들이 자동화짜신것들도 몇개 봤는데 그냥 원그리고 선그리고 글자 3개 집어넣고 이런식으로 그냥 5개를 전부 입력하는식으로 짜셨더라구요 큼…eattedit vba용 명령어라도 혹시 알수있을까요;;

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved