좌표 블록

  • Thread starter Thread starter OneWay
  • Start date Start date

OneWay

Guest
안녕하세요, 나는 포럼에서 새로운이고 나는 문제가있다 :

나는 autocad와 인터페이스가 간단한 autoit 프로그램을 만들기, 문제는 내가 블록의 좌표에 autocad를 중단하는 경우, 'insertionpoint'는 나에게 빈 변수를 반환, 나는 X y z를 포함 더블 변수 있다는 것을 알고 있지만, 매트릭스가 관리됩니다 [] 아니 () 나는 문제가 있다면, getentity는 같은 방법으로 나를 답변하지 않습니다. 빈.

non-double 변수에 x y z를 추가하는 방법이 존재합니다.

나는 꽤 작은 돌진 형태에 대한 감사와 사과, 그러나 시간과 늦게 연결하고 덜 적은, 어떤 제안 및 잘 허용.

인사 :
 
안녕하세요, 나는 포럼에서 새로운이고 나는 문제가있다 :

나는 autocad와 인터페이스가 간단한 autoit 프로그램을 만들기, 문제는 내가 블록의 좌표에 autocad를 중단하는 경우, 'insertionpoint'는 나에게 빈 변수를 반환, 나는 X y z를 포함 더블 변수 있다는 것을 알고 있지만, 매트릭스가 관리됩니다 [] 아니 () 나는 문제가 있다면, getentity는 같은 방법으로 나를 답변하지 않습니다. 빈.

non-double 변수에 x y z를 추가하는 방법이 존재합니다.

나는 꽤 작은 돌진 형태에 대한 감사와 사과, 그러나 시간과 늦게 연결하고 덜 적은, 어떤 제안 및 잘 허용.

인사 :
삽입점

변형 (두 배의 세 요소 배열); 읽기
삽입 점을 나타내는 3d wcs 협조.

vba에서 반환하는 변수는 두 배가 아니라 변형 배열 3 크기, insertionpoint(0)=x insertionpoint(1)=y insertionpoint(2)=z

두 배는 당신이 matrix를 구성해야 하는 경우에만 그것을 이용합니다

좋은 일
 
Last edited:
감사합니다, vba에서 실제로 나는 그것을 관리하는 문제가 없지만 autoit에서 같은 것은 아닙니다.

그러나, 독특한 문자열로 배열 1-2-3을 관리 할 수있는 방법이 없습니다, 아마도 내부 Autocad 명령으로 배열을 구성하거나 단일 변수 x, y, z를 xscalefactor, yscalefactor 등 추출하는 방법.

당신이 알고 사용 Autoit 나는 더 나은 이해에 코드를 입력 할 수 있습니다.

나는 또한 getentity를 사용하려고하지만 또한이 경우 삽입점 변수를 반환합니다. 즉, 현실에서 나는 autiit의 배열로 관리 할 수 없기 때문에 보인다.

나는이 질문을했다 세 포럼에서, 당신은 나에게 대답하는 유일한 사람입니다.
 
autocad를 어떻게 처리합니까?

어떻게 작동하는지 이해하기 위해 두 줄을 작성하고 우리가 떠나면 볼
 
나는 언어를 autoit에서 스크립트를 전달합니다. 나는 사용하고 싶습니다.

코드:
$acadapp = objget("","autocad.application")
디엠 $sset, $ent
$acaddoc = $acadapp.activedocument의 경우
winactivate ($acadapp.caption, $acaddoc.name)
$sset = $acaddoc.activeselectionset
$sset.selecton스크린
$sset에 $ent
만약 $ent.entityname = "acdbblockreference"이면
msgbox(0,"specific block","scalex: " & $ent.xscalefactor & @cr & _
"scaley: " & $ent.yscalefactor & @cr & _
"scalez: " & $ent.zscalefactor & @cr & _
"unita mis: " & $ent.insunits & @cr & _
"이름: " & $ent.name & @cr & _
"idobj: " & $ent.objectid & @cr & _
"nomeeff: " & $ent. 효과적인 이름 & @cr & _
"insertp: " & $ent.insertionpoint & @cr & _
"레이어: " & $ent.layer & @cr & _
"물자: " & $ent.material & @cr & _
"insertp: " & $ent.objectname)
·
msgbox (0,"","당신은 블록을 놓쳤다!" & @cr & "또 다시 당신은 운이 될 것입니다. ·
뚱 베어
이름 *

첫째, autocad를 열고 스크립트가 실행 된 후 블록을 입력해야합니다. 블록을 선택하고 사양이있는 상자를 표시 할 것입니다.

$ent.insertionpoint 당신이 볼 때 빈 될 것입니다, 모세관 관리 [] 그리고 (), 하지만 보고 $ent.insertionpoint[0], 1, 2 실수를 만들 것입니다.

나는 당신이 아마 그 정보를 찾을 수 없다는 것을 생각하기 시작합니다, 심지어 다른 사람이 제대로 표시하더라도.

감사합니다 :)
 
그런 다음 나는 autoit을 알지 못하지만 나는 prog을 다운로드하고 vb에서 매우 다른 것 같다 ...

이것을 보고 싶다


디엠 $myarray[10][20] ;element 0,0에서 9,19
$rows = ubound($myarray)
$cols = ubound($myarray, 2)
$dims = ubound($myarray), 0)

msgbox(0, "" & $dims & "-차원 배열에는", _
$rows & "열, " & $cols & "열")

;display $myarray의 내용
$ 출력 = ""
$r = 0 에 ubound($myarray,1) - 1
$ 출력 = $ 출력 및 @lf
에 $c = 0 ubound($myarray,2) - 1
$output = $output 및 $myarray[$r][$c] ·
이름 *
이름 *
msgbox(4096,"array 콘텐츠", $output)


insertionpoint를 배열으로 관리하고 어쩌면 그것을 반복하려고 하면
 
Last edited:
dunca, 나는 당신이 나를 보낸 코디와 카드를 섞려고했지만, 나는 nossun 데이터를 생성하지 않았다, aimè.

코드:
디엠 $myarray[10][20] ;element 0,0에서 9,19
$rows = ubound($myarray)
$cols = ubound($myarray, 2)
$dims = ubound($myarray), 0)

msgbox(0, " & $dims & "-차원 배열에는", $rows & "열, " & $cols & "열")

;display $myarray의 내용
$ 출력 = ""
$r = 0 에 ubound($myarray,1) - 1
$ 출력 = $ 출력 및 @lf
에 $c = 0 ubound($myarray,2) - 1
$output = $output 및 $myarray[$r][$c] · "
이름 *
이름 *
msgbox(4096,"array 내용", $output)



$acadapp = objget("","autocad.application")
디엠 $sset, $ent, $ena

$acaddoc = $acadapp.activedocument의 경우
winactivate ($acadapp.caption, $acaddoc.name)
$sset = $acaddoc.activeselectionset
$sset.selecton스크린

$sset에 $ent
만약 $ent.entityname = "acdbblockreference"이면
msgbox(0,"specifiche blocco","scalex: " & $ent.xscalefactor & @cr & _
"scaley: " & $ent.yscalefactor & @cr & _
"scalez: " & $ent.zscalefactor & @cr & _
"unita mis: " & $ent.insunits & @cr & _
"nome: " & $ent.name & @cr & _
"idobj: " & $ent.objectid & @cr & _
"nomeeff: " & $ent. effectivename & @cr & _
"insertp: " & $ent.insertionpoint & @cr & _
"레이어: " & $ent.layer & @cr & _
"물자: " & $ent.material & @cr & _
"insertp: " & $ent.objectname)
이름 *
msgbox (0,"","hai mancato il blocco!" & @cr & "riprova sarai più fortunato.")
뚱 베어
이름 *



$myarray = $ 세트
$ 출력 = ""
$r = 0 에 ubound($myarray,1) - 1
$ 산출 &= @lf
에 $c = 0 ubound($myarray,2) - 1
$ 산출 &= $myarray[$r][$c] ·
이름 *
이름 *
msgbox(4096,"array 콘텐츠", $output)

나는 또한 $myarray = $ent.insertionpoint 대신 $myarray = $sset하지만 결과가 변경되지 않습니다, 배열은 비어 났습니다.

다른 것, 객체의 속성의 이름을 나열 할 수 있습니다, 객체 자체에서 그들을 복용, 예를 들어.

xscale공장
회사 소개
층계

그래서 당신은 당신이 질문을 할 수있는 속성의 첫 번째 이름을 알고.

우리가 구멍에서 거미를 얻지 못하더라도 어쨌든 감사합니다.
 
나는 긴장을 얻고 있기 때문에 여기 밖으로 얻을 것이다. ·

해결하면 나를 알 수 있습니다.. .

좋은 행운. ·

어류 질문.... 왜 autoit 및 vb하지? 또는 심지어 더 나은 vba 당신은 사무실로 균등 할 수 있습니까?
 
내가 긴장한 경우, 그것은 내 의도가 없었다.

나는 몇 년 동안 vba를 사용하고 나는 더 맛있는 무언가를 원했습니다. 나는 vbscript, 매우 흥미 롭지만 나는 인터페이스를 놓았고, gui se non erro, 나는 다른 것들 중 Autoit에 접근하여 ocx 및 menate를 필요로하지 않는 실행 가능한 작업을 생성 할 수 있습니다.

Last thing, discourse는 객체의 속성 이름을 추출하기 위해 팁을 줄 수 있습니까?

공지사항
 
카테고리

comando: (차 (문자))

selezionare oggetto: ((-1 .) <nome 7eda9a80="" entità:="">) (0 . "삽입") (330 .
<nome 7efe3cf8="" entità:="">) (5 . "26480") (100 . "acdbentity") (67 . 0) (410 .
"모델") (8 . "0") (100 . "acdbblockreference") (66 . 1) (2 . "mar_pez") (10명)
55048.5 1758.52 0.0) (41. 15.0) (42. 15.0) (43. 15.0) (50. 0.0) (70. 0)
(71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

퀘이 소노 i codici dxf degli oggetti. vedi al codice 10 corrisponde il punto di inserimento del blocco ...

단체 그룹 코드 번호
그룹 코드 설명

-5 ·


응용 프로그램: persistent 반응기 사슬

-4의


앱: 조건 연산자 (ssget에서만 사용)

-3명


앱: 장시간 자료 (xdata) sentinel (fixed)

-2명


app: 법인 이름 참고 (fixed)

1개


앱: 법인명. 이 변경은 각 시간마다 그림이 열립니다. 그것은 결코 저장되지 않습니다. (연결)

0 댓글


텍스트 문자열 (fixed)

1개


기업의 기본 텍스트 값

2개


name (attribute 태그, 블록 이름 등)

3-4년


다른 문자 또는 이름 값

55,000원


일반 핸들. 최대 16 진수 자리의 텍스트 문자열 (fixed)

6개


linetype 이름 (fixed)

7 월


텍스트 스타일 이름 (fixed)

8개


층 이름 (fixed)

9 월


dxf: 변수 이름 식별자 (dxf 파일의 헤더 섹션에서만 사용).

10대


주요 점. 이것은 라인 또는 텍스트 엔터티티티의 시작점이며, 원의 중심 등입니다.
dxf: 기본 포인트의 x 값 (y와 z 값 코드 20 및 30에 따라)
앱: 3d 포인트 (3개의 실제 목록)

11-18년


다른 점.
dxf: 다른 점의 x 값 (y 값 코드 21-28 및 z 값 코드 31-38)
앱: 3d 포인트 (3개의 실제 목록)

20, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30


dxf: y와 z 값의 기본 포인트

21-28, 31-37 ·


dxf: 다른 점의 y와 z 값

389,000원


dxf: 비제로인 경우의 고도.

399,000원


Nonzero (fixed)가 아닌 경우의 두께

40-48년


부동점 값 (텍스트 높이, 스케일 요소 등)

485,000원


linetype 가늠자. 부동점 scalar 가치. default 값은 모든 엔티티티 유형에 정의됩니다.

49 명


반복된 뜨 점 가치. 여러 개의 49 그룹은 변수 길이 테이블에 대한 한 개의 엔터티티에 나타날 수 있습니다 (ltype 테이블에 dash 길이와 같은). 7x 그룹은 항상 테이블 길이를 지정하기 위해 첫 번째 49 그룹 이전에 나타납니다.

50-100 원


각 (Dxf 파일에 도에서 산출 및 autolisp와 arx 신청을 통해 레이디언).

60명


법인 가시. integer 값. 부재 또는 0은 가시성을 나타냅니다. 1은 보이지 않습니다.

62,600원


색상 번호 (fixed)

66 명


"entities follow" 플래그 (fixed)

67명


공간-그는, 모형 또는 종이 공간 (fixed)

68 댓글


앱: viewport가 켜져 있는지 여부를 식별하지만 화면이 완전히 꺼집니다. 활성적이거나 꺼지지 않습니다.

69 자세


앱: viewport ID 번호.

70-78년


반복 수와 같은 정수 값, 깃발 비트, 또는 형태

90-99년


32비트 정수 값

100명


subclass data marker (문자로 파생된 클래스 이름). 다른 콘크리트 클래스에서 파생되는 모든 개체 및 단체 클래스에 필요한 동일한 개체에 상속 체인에서 다른 클래스에 의해 정의 된 데이터를 분리합니다.
이것은 arx에서 파생된 각 명백한 구체적인 종류를 위한 dxf 이름을 위한 필요조건 이외에 입니다 ("subclass 감적 참조").

102명


제어 문자열, 다음에 의해 "{<arbitrary name="">"또는 "}". xdata 1002 그룹 코드와 유사하여 문자열이 "{"으로 시작될 때, 해석이 응용 프로그램에 달려있는 임의 문자열에 의해 따를 수 있습니다. 다른 허용 제어 문자열은 "}" 그룹 용어로. 이전에 언급 한 것처럼 Autocad는 도면 감사 운영을 제외하고이 문자열을 해석하지 않습니다. 그들은 응용 프로그램에 사용됩니다.

105명


dimvar 기호 표 항목 객체 핸들

210 개


압출 방향 (fixed).
dxf: 밀어남 방향의 x 가치
앱: 3d 압출 방향 벡터

220, 230 원


dxf : 압출 방향의 y 및 z 값

280-289 ·


8 비트 정수 값

300-309의


arbitrary 텍스트 문자열

310-319, 중국


arbitrary 바이너리 펑크와 같은 표현과 제한 1004 그룹 코드 : 최대 254 문자의 16 진수 문자열은 최대 127 바이트의 데이터 펑크를 나타냅니다.

320-329 ·


arbitrary 객체 핸들. 핸들 값은 "as is." 그들은 삽입 및 xref 작업 중에 번역되지 않습니다.

330-339 ·


softpointer 손잡이. 동일한 dxf 파일 또는 그림 안에 다른 목표에 arbitrary 연약한 포인터. 삽입 및 xref 작업 중 번역.

340-349의


하드 포인트 핸들. 동일한 dxf 파일 또는 그림 안에 다른 목표에 임의 단단한 포인터. 삽입 및 xref 작업 중 번역.

350-359년


soft-owner 손잡이. 동일한 dxf 파일 또는 그림 내의 다른 개체에 arbitrary 부드러운 소유권 링크. 삽입 및 xref 작업 중 번역.

360도


하드 핸들. 동일한 dxf 파일 또는 그림 내의 다른 개체에 대한 중재 하드 소유권 링크. 삽입 및 xref 작업 중 번역.

· 999


dxf : 999 그룹 코드는 주석 문자열입니다. dxfout는 dxf 출력 파일에서 그런 그룹을 포함하지 않지만 dxfin는 그들에게 영광을주고 의견을 무시합니다. 당신은 편집 한 dxf 파일에 코멘트를 포함 999 그룹을 사용할 수 있습니다.

1000년


ascii 문자열 (최대 255 바이트 긴) 확장 된 데이터에서.

1001년


최대 31 바이트 길이의 애플리케이션 이름(ascii string up to 31 바이트 long)을 등록했습니다.

1002 원


확장된 데이터 제어 문자열 ( "{"또는 "}").

1003 원


확장된 자료 층 이름.

1004년


확장 된 데이터에서 바이트 (최대 127 바이트)의 펑크.

1005년


확장된 데이터의 엔티티티 핸들. 최대 16 진수 자리의 텍스트 문자열

1010년


장시간 자료에 있는 점
dxf: x 값 (1020 및 1030 그룹에 의해 따르는)
앱: 3d 포인트

1020년 1030년


dxf: 점의 y와 z 값

1011년


확장된 자료에 있는 3d 세계 공간 위치
dxf: x 값 (1021 및 1031 그룹에 의해 따르는)
앱: 3d 포인트

1021년 1031년


dxf: 세계 공간 위치의 y와 z 값

1012년


확장된 자료에 있는 3d 세계 공간 진지변환
dxf: x 값 (1022 및 1032 그룹에 의해 따르는)
앱: 3d 벡터

1022년 1032년


dxf: 세계 공간 진지변환의 y와 z 가치

1013년


확장된 자료에 있는 3d 세계 공간 방향.
dxf: x 값 (1022 및 1032 그룹에 의해 따르는)
앱: 3d 벡터

1023년 1033년


dxf: 세계 공간 방향의 y와 z 값

1040년


장시간 자료 뜨 점 가치.

1041년


장시간 자료 거리 가치.

1042년


확장된 자료 가늠자 요인.

1070년


확장된 자료 16 비트 서명 integer.

1071년


장시간 자료 32 비트는 오래 서명했습니다.</arbitrary></nome></nome>
 
좋은 것은 긴장했다.

나는 당신이 그 명령을 발견 한 지옥을 묻고 싶습니다, 치명적으로, 당신은 내가 마음, cmq에 있었다 다른 프로젝트를 다시 시작하는 욕망을 다시 열었다.

당신은 30, 제발 31.. .

(자동차 (문자)) > d:\xxx.txt dxf ccp coco.
어떻게 할 수 있는지 말해, 그것은 상처하지 않을 것입니다.

파일에 출력을 리디렉션하거나 비디오에 나타나는 데이터가 vba cod의 존재하면

너무 많은 ... 어쩌면 작은 chamomile 첫째 그래서 당신은 휴식을. ;)
 
나는 그것을 던질 것이다. 그러나 왜 autocad에서 매크로 vba를 실행하기 위해 autoit를 사용하지 않고 파일을 생성하고 나머지 작업을 수행하는 데 사용합니까?
 
그리고 예, 나는 너무 많이 행동했지만, 나는이 마지막 정보를 찢을 수 있다면 나는 'almost' 좋다.

frankly 나는 너무 생각했다, vba보다 vbs, 스타일 부족 :

autoit는 autoit에서 가져온 txt를 생성합니다.

괜찮아, 나는 시도 할 것이다, 나는 희망한다.

순간 나는 당신을 감사하고 감사합니다, 나는 당신에게 좋은 소식을주고 싶어.

안녕하세요.
 
(defun c:esportx ()
(setq 파일명 "c:\creafile.txt")
(세트)
(setq 목록 (문자 (문자))))
(쓰기-라인 (vl-princ-to-string list) fr)
(닫은 fr)
·

rrpor66 덕분에 나는 당신이 원하는대로 파일에서 함수 (entget (car (entsel))))의 결과를 저장하는 방법을 발견했습니다.
 
Last edited:
안녕, 나는 autolisp가 어떻게 작동했는지 파악하고, 나는 마침내이 명확하게 만들었습니다 :

(자동차 (문자))
(setq x (cdr (assoc 2 entlist))))
(=x "sk")
(주)
(setq f (open "d:\\\xgiga.txt" "w"))
(쓰기-라인 (rtos(cadr(assoc 10 entlist)))) 2) f)를
(쓰기-라인 (rtos(caddr(assoc 10 entlist)) 2) f)를
(닫히는 f)
·
"아니."
·

거의 작동을 보았을 때 나는 닫히고 다시 열었다 Autocad와 마법에 의해 나는 더 이상 목록 2 (assoc 2 entlist)의 값을 추출 할 수 없습니다) 항상 (2 . sk)
그런 다음 블록의 이름입니다.
나는 거의 튀긴, 당신이 그것을 바꾸지 않는 경우에 코드는 항상 동일한 방법 또는 아닙니다 반응해야 합니까?

bon, 좋은 tisana 나를 위해 진정으로 코드를 시도.

당신은 내 코드로 잘못 생각.
 
오 난 내가 esportx 명령을 따르는 부하 lsp에 대답하는 것을 알고하지 않고 그는 나에게 nil을 대답! null을 의미한다.

사용 autocad 2008 그것은 필요한 경우.

나는 시도한다, 남자.
 
autolisp 이다 아니 나의 매일 빵... 나는 vba와 최고의 케이블 ...rrpor66 ne sa mollto ... 그를 pvt에서 msg을 보내고 그가 당신을 대답 할 때

그러나 나는 apologize

코드를 전송하면 올바르게 모든 목록을 저장합니다.

당신은 알고

(10 55048.5 1758.52 0.0)는 협조입니다

autoit를 사용하여 문자열을 조작하고 값을 x y z로 변환합니다.
 
Last edited:
내 부재를 잊지 않은 적이 없다, (집에서, otitis와 아들, 절대 우선).

그래서, 나는 혼합 혼합 혼합 혼합, 나는 두 개의 얼음 큐브를 추가하고이 밝혀 :

(setq 목록 (문자 (문자))))
(setq xx (rtos (cadr (assoc 10 목록)) 2))
(setq yyyy (rtos (caddr (assoc 10 목록)) 2))
(setq sk (cdr (assoc 2 목록)))
(setq 파일명 "d:/xxxx.txt")
(세트)
(= sk "sk")
(텍스트 라인 yyy fr)
(텍스트 라인 xx fr)
"아니"
(닫은 fr)

결과는 두 개의 행 텍스트 x와 y 파일이며, 나는 단지 한 가지를 놓고, 경우에 나는 오류를 생성 할 수 없습니다 :

오브젝트 선택: ; 오류: 잘못된 주제 유형: lentityp nil

나는 그것을 방해하는 방법을 이해해야, 스튜디오는 여전히 긴.

어쨌든, 나는 도움과 시간을 주셔서 감사합니다.

내가이 게시물에 추가 할 때, 그것은 다른 사람을 봉사 할 수있다.

나는 rrport66, 당신을 감사할 것입니다
이름 *
 

Forum statistics

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

Members online

No members online now.

Back
Top