도면에서 블록 검색

  • Thread starter Thread starter thetmd
  • Start date Start date

thetmd

Guest
안녕하세요, 여러분, 나는 몇 가지 조언이 필요합니다. 디자인 내부 블록의 모든 인스턴스를 교체하는 매크로를 만들려면. 나는 vba에서하지만 이해하지 않는다, 나는 무언가와 같은 무언가를 가진 디자인에 있는 blockreferences를 직접 검색하는 방법이 있습니다

dim 블록으로 acadblockreference
각 구획을 위해 <boh?!? cercare??="" cosa="" devo="" entro="" lo="">.....

또는 검색 할 수있는 유일한 방법은 블록 유형 변수를 정의하고 내가 관심있는 이름으로 하나를 찾을 경우 모든 그림 블록에서 검색하는 것입니다

dim 블록으로 acadblock
thisdrawing에 있는 각 구획을 위해. 제품정보
차단을 해제 이름 등.
(ok, 속성이 이름이나 다른 경우 기억하지 마십시오 :p하지만 순간에 그것은 영향력입니다)

당신은 저에게 몇몇 제안을 줄 수 있습니까? : 융합 :
감사합니다.
인기 카테고리</boh?!?>
 
안녕하세요, 여러분, 나는 몇 가지 조언이 필요합니다. 디자인 내부 블록의 모든 인스턴스를 교체하는 매크로를 만들려면. 나는 vba에서하지만 이해하지 않는다, 나는 무언가와 같은 무언가를 가진 디자인에 있는 blockreferences를 직접 검색하는 방법이 있습니다
감사합니다.
인기 카테고리
dim filtertype(0) 정수
dim filterdata(0) 변형

오류는 다음을 다시 시작합니다.
'설정을 삭제하면
if not isnull(thisdrawing.selectionsets.item("element")) 그런 다음
설정 sset = thisdrawing.selectionsets.item("element")
다운로드
끝 면

ltscale = thisdrawing.getvariable("ltscale")

설정 sset = thisdrawing.selectionsets.add("element")


필터 타입(0) = 0
filterdata(0) = "인출"

sset.selectonscreen filtertype, 필터데이터


se oltre alle entità blocco vuoi anche filtrare la selezione con un nome blocco

dim filtertype(1) 정수
dim filterdata(1) 변형

필터 타입(0) = 0
filterdata(0) = "인출"
필터 타입(1) = 2
filterdata(1) = "nome blocco"를


퀘스트 오도 utilizza i codici dxf 델 entita

es 당 vedere 나는 codici

comando: (차 (문자))

selezionare oggetto: ((-1 .) <nome 7de10290="" entità:="">) (</nome>0 . "삽입") (330).
<nome 7e0e8cd0="" entità:="">(100. "acdbentity") (67 . 0) (410 .
"모델" (8 . "g") (100 . "acdbblockreference") (주)</nome>2 . "이름") (10 152,768
6,8475e-0113 1.56769e-013) (41.1.0) (42. 1.0) (43. 1.0) (50. 3.14159) (70
. 0) (71 . 0) (44 . 00) (45 .0) (210 -2,13399e -016,63034 -0,776319)
 
Last edited:
이름 * 죄송합니다 모양 나는 내 질문에 너무 prolific했다. 나는 자신을 더 잘 설명하려고합니다.
몇 번 반복된 기호로 디자인의 세트가 있습니다. 나는 다른 사람들과 모든 그림의 모든 기호를 교체해야합니다, 같은 삽입 지점과 동일한 회전을 사용하여 (새로운 기호는 이전과 동일하지만 다른 것이 없다는 속성이 있습니다). 나는 분리된 디자인에 있는 새로운 상징을 창조하고 이전 상징의 교체 그리고 삽입의 특성을 사용하여 변화하기 위하여 디자인을 삽입합니다. 이 외에도 다른 블록의 속성의 값을 복구하는 데 전념하는 절차의 일부가 있으며 새로운 삽입 된 기호에 연관시킵니다.
내가 지금 발견 한 문제는 상징의 취소로 인해 (나는 내가 대체하고 내가 속성의 가치를 재개 한 것). 일상의 상징의 취소에 대한 행을 삽입하면 ...각...다음 나는 "automation error" (내 변수가 지적하는 것에 대한 엔티티티티를 문으로 생각하고 있음). 나는 문제를 해결하는 방법을 이해하지 못했다, 그래서 나는 다른 사이클과 기호를 삭제하기로 선택했다... .next (의 유형의 기호, 나는 문제없이 삭제 할 수 있음) 두 번째 기호 (그에서 내가 속성 값을 복구) 나는 모든 인스턴스를 삭제할 수 없으며 사용자가 기호를 선택하여 해결 한 순간에.

코드를 개선하는 데 도움이 될 수 있습니다, 제발, 당신이 그들을 사용할 때 기호를 삭제할 수 있다면?

다시
인기 카테고리


나는 내가 생성 한 코드를 꺼내 :
(일부 라인은 댓글 모드에서 deliberately입니다)


' 오류 goto 벌금
다음 오류가 재시작
dim ent as acadentity'실제 이름입 dim ent니다.
dim entn as acadblockreference '신체
dim entn_att 의 변형의 새로운 블록 속성
dim entv 으로 acadblockreference 'old entity
dim p insert(2) 으로 double 'unto insertion 의 새로운 블라인드
장님 교체의 두 배 각으로 dim 교체
dim filename 의 문자열 'name 의 새로운 블라인드
dim ellisse as acadentity' ellisses 성체
dim ellisse_att 의 변종의 속성
dim ppoint는 변종의 포인트로
dim value as string' 블라인드 이름
dim pickbox as integer 'memorizzo autocad Pickbox 변수의 값
dim sset 으로 acadselectionset

이름 *

pickbox = thisdrawing.getvariable("pickbox")
나는 절차를 시작합니다.
이름 * 나는 모든 그림이 열리고 있다고 가정한다.
·
'파일명 = "c:\_work\blindness\simbcieca.dwg"
파일명 = "g:\_cieche\simbcieca.dwg"
호텔지도 나는 새로운 기호와 재사용 블라인드 값을 삽입
thisdrawing.modelspace에 있는 각 ent를 위해
ent.objectname = "acdbblockreference"이면 블록이면 'check.
if ent.name = "cieca" then '나는 모든 요소가 'name' 속성을 가지고 왜 제어 할 수 없습니다
entv = 엔

'새 구획의 삽입점 및 교체의 각을 예정했습니다
p 삽입(0) = entv.insertionpoint(0)
p 삽입(1) = entv.insertionpoint(1)
p 삽입(2) = entv.insertionpoint(2)
회전 = entv.rotation

'나는 새로운 기호를 삽입
set entn = thisdrawing.modelspace. insertblock(p insert, 파일명, 1, 회전)

'zoom on the new symbol, 블라인드 번호 복구
회전 각도는 ellipse 블록과 동일합니다.
이름 * 나는 오래된 것과 동일한 위치에 새로운 속성을 이동
줌 센터 p 삽입, 35
entn_att = 엔티.getattributes
계정 만들기 setvariable "pickbox", 40
thisdrawing.utility.getentity ellipse, 포인트
계정 만들기 setvariable "pickbox", Pickbox
ellisse_att = 엘리스.getattributes
entn_att(0).textstring = ellisse_att(0).textstring에
entn_att(0).rotation = 엘리먼트.rotation
entn_att(0).move entn_att(0).textalignmentpoint, ellisse_att(0).textalignmentpoint의 경우

'Regenero il progetto
계정 만들기 검색 결과

끝 면
끝 면
이름 *

********************
'내가 오류 상황에서 먼저 삭제하면
thisdrawing.modelspace에 있는 각 ent를 위해
if ent.objectname = "acdbblockreference" 의 경우
if ent.name = "cieca"다음 '또는 ent.name = "cieca_testo"다음
'설정 entv = ent
다운로드
끝 면
끝 면
이름 *

호텔지도 [모든 그림에 보라색 급상승 *****
회사 소개


설정 sset = thisdrawing.selectionsets.add("selection")
sset.selecton스크린
sset에서 각 ent를 위해
ent.objectname = "acdbblockreference"이면 블록이면 'check.
if ent.name = "cieca_testo" then '나는 모든 요소가 'name' 속성을 가지고있는 이유와 제어 할 수 없습니다
다운로드
끝 면
끝 면
이름 *


계정 만들기
이drawing.close
제품정보

끝:
 
그와 같은 것을 할 것입니다.

dvb 및 example 파일을 전달하면 어떤 것이보다 더 잘 볼 수 있습니다. 그렇지 않으면 ... 정보와 나는. 더 많은 그래서 나는 어떻게 행동하는지 모른다.

' 오류 goto 벌금
다음 오류가 재시작
dim ent as acadblockreference's 추구하는 사람
dim entn as acadblockreference '신체
dim entn_att 의 변형의 새로운 블록 속성
dim entv 으로 acadblockreference 'old entity
dim p insertion(0 to 2) 새로운 블라인드의 더블 'unto insertion
장님 교체의 두 배 각으로 dim 교체
dim filename 의 문자열 'name 의 새로운 블라인드
dim ellisse as acadentity' ellisses 성체
dim ellisse_att 의 변종의 속성
dim ppoint는 변종의 포인트로
dim value as string' 블라인드 이름
dim pickbox as integer 'memorizzo autocad Pickbox 변수의 값
dim sset 으로 acadselectionset

이름 *

pickbox = thisdrawing.getvariable("pickbox")

파일명 = "g:\_cieche\simbcieca.dwg"



오류는 다음을 다시 시작합니다.
'설정을 삭제하면
if not isnull(thisdrawing.selectionsets.item("ent") 그 다음
설정 sset = thisdrawing.selectionsets.item("ent")
다운로드
끝 면


설정 sset = thisdrawing.selectionsets.add("ent")



dim filtertype(1) 정수
dim filterdata(1) 변형

필터 타입(0) = 0
filterdata(0) = "인출"
필터 타입(1) = 2
filterdata(1) = "cieca"를


sset.selectonscreen filtertype, 필터데이터

sset에서 각 ent를 위해

'새 구획의 삽입점 및 교체의 각을 예정했습니다
p 삽입(0) = ent.insertionpoint(0)
p 삽입(1) = ent.insertionpoint(1)
p 삽입(2) = ent.insertionpoint(2)
회전 = ent.rotation

다운로드

'나는 새로운 기호를 삽입
set entn = thisdrawing.modelspace. insertblock(p insert, 파일명, 1, 회전)

줌 센터 p 삽입, 35
entn_att = 엔티.getattributes
계정 만들기 setvariable "pickbox", 40
thisdrawing.utility.getentity ellipse, 포인트
계정 만들기 setvariable "pickbox", Pickbox
ellisse_att = 엘리스.getattributes
entn_att(0).textstring = ellisse_att(0).textstring에
entn_att(0).rotation = 엘리먼트.rotation
entn_att(0).move entn_att(0).textalignmentpoint, ellisse_att(0).textalignmentpoint의 경우

'Regenero il progetto
계정 만들기 검색 결과

이름 *
 
대답 주셔서 감사합니다, 그러나 개체의 선택을 방지하는 방법이 있습니다, 그리고 매크로를 직접 제어하는 모든 기호를 대체 할 수 있습니다. 현실에서 나는 이미 수행, 주말에 나는 필요한 모든 디자인을 수정, cmq 나는 단지 '클릭' 활성화와 나머지를 필요로하는 매크로를 얻을 싶습니다. 나는 매크로 코드를 대체하려고하고 엔티티티의 삭제에서 더 나은 행동을 볼 수 있습니다. ;)

답변 주셔서 감사합니다
인기 카테고리
 
대답 주셔서 감사합니다, 그러나 개체의 선택을 방지하는 방법이 있습니다, 그리고 매크로를 직접 제어하는 모든 기호를 대체 할 수 있습니다. 현실에서 나는 이미 수행, 주말에 나는 필요한 모든 디자인을 수정, cmq 나는 단지 '클릭' 활성화와 나머지를 필요로하는 매크로를 얻을 싶습니다. 나는 매크로 코드를 대체하려고하고 엔티티티의 삭제에서 더 나은 행동을 볼 수 있습니다. ;)

답변 주셔서 감사합니다
인기 카테고리
대신 sset.selectonscreen filtertype, filterdata 사용

사용 sset. acselectionsetall, 필터타입, 필터데이터 선택

그리고 그는 활성 필터를 가진 그림 entities를 적응시킵니다
 

Forum statistics

Threads
58,191
Messages
495,938
Members
103,104
Latest member
FabioFrontini

Members online

No members online now.

Back
Top