2011년 12월 12일 월요일
2011년 12월 7일 수요일
2011년 12월 3일 토요일

DocumentWindowCollection
모든 문서 창 개체 (DocumentManager의 각 문서 개체에 대한 문서 창 개체가)에 대한 컨테이너.
InfoCenter
InfoCenter 도구 모음에 대한 참조를 포함합니다.
MainWindow
AutoCAD의 응용 프로그램 창 개체에 대한 참조를 포함합니다.
MenuBar
AutoCAD에서 menubar에 대한 MenuBar의 COM 개체에 대한 참조를 포함합니다.
MenuGroups
각 로드된 CUIx 파일에 대한 사용자 지정 그룹 이름이 들어있는 MenuGroups COM 개체에 대한 참조를 포함합니다.
Preferences
당신은 옵션 대화 상자의 설정 중 많은 것들을 수정할 수있는 환경 설정 COM 개체에 대한 참조를 포함합니다.
Publisher
게시 도면에 사용되는 발행인 개체에 대한 참조를 포함합니다.
StatusBar
응용 프로그램 창의 상태 표시줄객체에 대한 참조를 포함합니다.
UserConfiguration
당신은 사용자가 저장한 프로필 작업 수있는UserConfiguration 개체에 대한 참조를 포함합니다.
AutoCAD .NET Developer's Guide 를 구글번역기 돌린거
AutoCAD .NET Developer's Guide 를 구글번역기 돌린거
CAD객체구조
http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer%27s%20Guide/index.html
2011년 11월 25일 금요일
(defun c:test()
(vl-load-com)
(setq fn(getvar "savename"));;savename현제파일의 경로와 이름을 저장한다.
(setq fd(vl-filename-directory fn));;filename에서 경로만을 취한다.(filename는 경로와 이름합치거)
(setq fdlist(vl-directory-files fd));;지정한 경로내의 파일의 이름 리스드를 만드다.
(setq file1(strcat fd (nth n fdlist)))
(princ file1)
(princ)
)
(vl-string->list 문자열);;문자열을 구성하는 각문자의 아스키 코드값을 리스트로 반환한다.
2011년 11월 17일 목요일
DIMTEDIT 치수선
프린터 ip 192.168.0.8
"C:\Program Files\Autodesk\AutoCAD 2012 - Korean\UserDataCache\"
2008
"C:\Program Files\AutoCAD 2008\UserDataCache\"
2002
"C:\Program Files\AutoCAD 2002\"
(A)...ABOVE >도면용어
(B)...BELOW >도면용어
VERIFY
연세현장 이과장(010 2548 3331
DELETEGHOST
TEMPOVERRIDES >cad cui (임시재지정)
dsettings >cad제도세팅창
PAUSE 입력대기 > auto lisp
WORKSPACELABEL
_WSCURRENT
*1 PIECES >도면용어
rememberfolders "0"
*EL.+VARIOUS >도명용어
*COLUMN ARRANGEMENT PLAN >도면용어
1) 높은버전에서 문제의 파일연다.
2) audit 명령을 실행한다.
3) purge 명령을 실행한다.
4) 낮은 버전의 .dxf로 저장을 한다.
5) 이 파일을 열고나서 다시 .dwg로 다시 저장을 한다.
VTENABLE =zoom속도
dsviewer(공중뷰)
CELTSCALE(선종류 축척)
JUSTIFYTEXT(정렬점변경)
vLLO 자물쇠 닫기
LUL 열기
LFR 선택만 동결
TJO 문자합치기
TTEE
LMA 레이어 일치
ART 문자정렬
VOL 선택한색만보이기
VEL 색택만보이기
-VIEW 뷰
DRH 해치를뒤로ㄷ
EDV
ESN
JU 문자정렬점변경
,2214,2125,2137,2146,
4411441
MVIEW >cad
VPORTS >cad
DIMANGULAR >cad 각도치수
*%%U밑줄 >cad
DTEXTED //TEXT BOX
*ELEVATION >도면용어
CTRL ; >EXCEL 날짜
SHIFT ; >excel시간
TODAY()
NOW()
CMDECHO 기본값1COMMAND함수동..
EXCEL SQRT(제곱근)
Gusset Plate >도면용어
Stiffener >도면용어
GIRT FRAMING ELEVATION >용어
T-BAR 11
BASE 1047
빔서프라이스 75&10
cmd 상에서 딧크조각 모음 defrag c:
pl60 >pl70(lotte)
reinit >pgp파일갱신
draworder >레이어순서 변경
"C:\Program Files\AutoCAD 2002\"
DIMBREAK 디맨션 치수 끊기
DIMASSOC "2" 연관치수 설정
visualStyles
GROUP 그룹작성및관리
PICKSTYLE 그룸켜고끄는 변수
속성문자
ATTDEF 작성
ATTMULTI 1
ATTIPE 1
ATTMODE 0끄기 1현제유지 2켜기
ATTDIA 대화상자 표시여부
BATTMAN 속성편집
CAD)TEXTTOFRONT 치수나 문자를 앞으로 가져온다.
CAD)PASTEBLOCK 불록으로 붙여넣기
CAD)chspase 배치로이동
CAD)wipeout >가리기
CAD) BOUNDARY 영역추출
CAD) VISRETAIN 외부참조 변수 초기값 "1"
CAD) OSMODE
0 없음
1 끝점
2 중간점
4 중심점
8 노드
16 사분점
32 교차점
64 삽입점
128 수직점
256 접선
512 근처점
1024 모든 객체 스냅을 지웁니다
2048 가상 교차점
4096 연장선
8192 평행
(●)
(■)
(▲)
(○)
(△)
(□)
CAD) CHPROP 선택개체 특성변경
cad) wipeout
CAD) DBLCLKEDIT 두번클릭으로 특성창 열기
excel)trim공백문자 제거
CAD) DWGPROPS
CAD)STATUS
CAD)TIME
CAD)DELOBJ(SWEEP의경로나 형상 원본의 삭제유무)
CAD)VISUALSTYLES
철골 )girth
A3(297x420mm)
A4(210x297mm)
DWG
http://idkay0.tistory.com/25
2011년 11월 9일 수요일
(DEFUN C:TEST()
(SETQ A1(SSGET))
(SETQ A2(SSNAME A1 0))
(SETQ A3(ENTGET A2))
(SETQ A4(ASSOC 1 A3))
(SETQ STR(CDR A4))
(SETQ FD(OPEN "D:/02_서브/good/TEST.TXT" "A"))
(SETQ C1(STRLEN STR))
(SETQ N 1)
(REPEAT C1
(SETQ C2(SUBSTR STR N 1))
(SETQ C3(LIST C2))
(PRINC C3 FD)
(SETQ N(+ N 1))
)
(CLOSE FD)
(PRINC)
)
;;;문자열을 분리중
;;;원하는것은 선택한 문자열을 원하는데로 분리해서 리스트로 묶어서
;;;파일에 쓰는것인데...막혔다.
(DEFUN C:TEST()
(SETQ A1(SSGET))
(FILE_W (STRING_R A1 0))
;(PRINC)
)
(DEFUN STRING_R(SELECTION N / ENT_NAME ENT ENT_CODE STR
SELECTION N)
;;;;;객체이름,객체정보 ,지정코드 내용,문자열,선택세트,숫자
(SETQ ENT_NAME (SSNAME SELECTION N))
(SETQ ENT(ENTGET ENT_NAME))
(SETQ ENT_CODE(ASSOC 1 ENT))
(SETQ STR(CDR ENT_CODE))
STR
)
;;;;;TEXT를 선택 넘겨받아서
(DEFUN FILE_W(STR / FILE_DIRECTORY STRING_LEN STRING_S N STR_LIST STR)
;;;;; 파일이름과 경로,문자열 길이,지정한위치의 문자,문자리스트,넘겨받은 문자열
(SETQ FILE_DIRECTORY(OPEN "C:/hello/Programming/lisp/TEST.TXT" "A"))
(SETQ STRING_LEN(STRLEN STR))
(SETQ N 1)
(REPEAT STRING_LEN
(SETQ STRING_S(SUBSTR STR N 1))
(SETQ STR_LIST(LIST STRING_S))
(PRINC STR_LIST FILE_DIRECTORY)
(SETQ N(+ N 1))
)
(CLOSE FILE_DIRECTORY)
(PRINC)
)
;;;C:\hello\Programming\lisp\
;;;"D:/02_서브/good/TEST.TXT"
;;;;함수단위를 나누어보았다.
2011년 11월 8일 화요일
;;;파일에서 읽어온문자를 도면의 글자와 대치해서 삽입
(defun c:ae(/ a1 a2 a3 num n a4 po1 tang ipt a5 text1 file_m);
(setq val1(getvar "dimscale"))
(setq val2(getvar "cmdecho"))
(setq val3(/ val1 2))
(setvar "cmdecho" 0)
(setq file_m(file_name))
(if (= file_m nil)
(setq file_m file_i)
(setq file_i file_m)
)
(prompt"\n 글자를 선택해주세요")
(setq a1(ssget '((0 . "text"))))
(setq num(sslength a1))
(setq n 0)
(repeat num
(setq a2(ssname a1 n))
(setq a3(entget a2))
(setq a4(assoc 1 a3))
(setq a5(cdr a4))
(setq po1(cdr(assoc 10 a3)))
(setq tang(cdr(assoc 50 a3)))
(setq ipt(polar po1 (+ tang (+ pi(/ pi 2))) val1))
(setq tang_t(* 180(/ tang pi)))
;;;----text의 삽입점과 회전추출----
;(setq text10(car(aaa a5)))
;;; (setq text1(itoa(cadr(aaa a5))))
;;; (setq text2(itoa(caddr(aaa a5))))
(setq text1(car(edwg_mark a5 file_m)))
;(setq text2(aaa a5))
; (setq textval(strcat text1 "x" text2))
(command "-text" ipt val3 tang_t text1)
(setq n(+ n 1))
)
(princ)
)
(DEFUN edwg_mark(a5 file_m / fd r1 r2 r3 r4 i);
(setq i 0)
(setq fd(open file_m "r"))
(if(= fd nil)
(alert "\n존재하지 않는파일입니다.")
)
(while (= i 0)
(setq r1(read-line fd))
(if (= r1 nil)
(progn
(setq r4 (list "000"))
(setq i 1)
)
(progn
(setq r2(read r1))
(setq r3(car r2))
)
)
(if (= r3 a5)
(progn
(setq r4(cdr r2))
(setq i 1)
)
)
)
(close fd)
r4
)
;basic도면의 부재 싸이즈를 txt파일로
(defun c:ab( / stp1 edp1 stp10 edp10 stp2 edp2 v_len1 v_len2 v_len3 fd file_m)
;;; stp~영역
;;; edp~영역
;;; v_len~선택영역교체용
;;; fd 파일포인터
;;; file_~파일이름
(setq var_osmode(getvar "osmode"))
(setvar "osmode" 33)
(prompt"\n한줄의 영역을 지정해주세요.")
(setq stp1(getpoint"\n시작점"))
(setq edp1(getcorner stp1 "\n두번째점"))
(prompt"\n문자열이 포함된 영역을 지정해주세요")
(setq stp10(getpoint"\n시작점"))
(setq edp10(getcorner stp10 "\n두번째점"))
(setq file_m(file_name))
(if (= file_m nil)
(setq file_m file_i)
(setq file_i file_m)
)
;;; 파일입력시 이전 입력값 을 쓴다.
(setvar "osmode" 0)
(setq v_len1(abs(- (cadr stp1)(cadr edp1))))
(setq v_len2(abs(- (cadr stp10)(cadr edp10))))
(setq v_len3(atoi(rtos(/ v_len2 v_len1)2 0)))
;(while (<= (abs(cadr stp1))(abs(cadr edp10)))
;(while (/= rl nil)
(repeat v_len3
(setq a1(ssget "w" stp1 edp1))
(if(/= a1 nil)
(progn
(setq fd(open file_m "a"))
(princ (basic_mark a1)fd)
(princ "\n" fd)
(close fd)
)
)
;;;선택영역에 텍스트가없으면 파일에 쓰지않음
(setq stp2(polar stp1 (+ pi(/ pi 2)) v_len1))
(setq edp2(polar edp1 (+ pi(/ pi 2)) v_len1))
(setq stp1 stp2
edp1 edp2)
)
(setvar "osmode" var_osmode)
(princ)
)
;;;text를 선택해서 파일로저장하는거
(defun basic_mark(a1 / num n a2 a3 a4 a5 b1 b2 b3 len_b1 len_b2 b6 b11 b22)
;;;a1~a5선택세트
;;;n 반복용
;;;len~ 길이를 이용한 정렬
;;;b~ 출력
; (setq a1(ssget "w" stp1 edp1))
(setq num(sslength a1))
(setq n 0)
(repeat 2
(setq a2(ssname a1 n))
(setq a3(entget a2))
(setq a4(assoc 1 a3))
(setq a5(cdr a4))
(if (= n 0)
(setq b1 a5)
(setq b2 a5)
)
(setq n(+ n 1))
)
(setq len_b1(strlen b1))
(setq len_b2(strlen b2))
;(setq b6 nil)
(if (> len_b1 len_b2)
(progn
(setq b6 b1)
(setq b1 b2)
(setq b2 b6)
)
)
(setq b11(strcat "\"" b1 "\""))
(setq b22(strcat "\"" b2 "\""))
(setq b3(list b11 b22))
)
;;;선택세트에서 문자열을 정리해서 리턴
2011년 10월 24일 월요일
inters,textbox
inters 라인의 포인트를 이용해서 교차점은 얻는다.
(inters <point1> <point2><point3><point4> [flag])
flag 가nil 이면 무한상의 교차점 t 이면 아니고.
textbox <elist>
text인 elist를 감싸는 box의 대각선 좌표를 두 점의 list로 출력한다.
(inters <point1> <point2><point3><point4> [flag])
flag 가nil 이면 무한상의 교차점 t 이면 아니고.
textbox <elist>
text인 elist를 감싸는 box의 대각선 좌표를 두 점의 list로 출력한다.
2011년 10월 19일 수요일
(defun c:test()
(setq select_set(ssget '((0 . "line"))))
(setq setname(ssname select_set 0))
(setq ent (entget setname))
(setq xpon1(abs(nth 1(assoc 10 ent))))
(setq xpon2(abs(nth 1(assoc 11 ent))))
(setq ypon1(abs(nth 2(assoc 10 ent))))
(setq ypon2(abs(nth 2(assoc 11 ent))))
(setq len(rtos(distance
(setq p2(cdr(assoc 10 ent)))
(setq p2(cdr(assoc 11 ent)))
)2 0))
(if (> xpon1 xpon2)
(setq xlen(rtos(- xpon1 xpon2)2 0))
(setq xlen(rtos(- xpon2 xpon1)2 0))
)
(if (> ypon1 ypon2)
(setq ylen(rtos(- ypon1 ypon2)2 0))
(setq ylen(rtos(- ypon2 ypon1)2 0))
)
(setq p1(getpoint))
(command "-insert" "vbal" p1 "" "" len ylen xlen)
(princ xlen)
(princ "\n")
(princ ylen)
(princ)
)
선택한 라인의 길이를 써준다.
2011년 10월 18일 화요일
BOLT 그리기
(defun insert_bolt(bolts len bolt_d bolt_h bs / p1 p2 p3 pon1 pon2 pon3
pon4 pon5 pon6 pon7 pon8 pon9 pon10 pon11 pon12 pon13 oldos)
(setq oldos(getvar "osmode"))
(setvar "osmode" 33)
(setq p1(getpoint"\n\"첫번째점 지정\""));insert point
(setq p2(getpoint"\n\"두번째점 지정\""));방향과 각도를 얻는다.
(setvar "osmode" 0);그리기위해서 오스넵을 꺼둔다.
(setq p3(angle p1 p2))
(setq pon1(polar p1 (+ p3 (/ pi 2)) (/ bolts 2)))
(setq pon2(polar pon1 p3 bs))
(setq pon3(polar pon2 p3 len))
(setq pon4(polar pon3 (- p3 (/ pi 2)) bolts))
(setq pon5(polar pon4 (+ p3 pi) len))
(setq pon6(polar pon5 (+ p3 pi) bs))
(setq pon7(polar p1 p3 (+ bs len)))
(setq pon8(polar pon7 (+ p3 (/ pi 2))(/ bolt_d 2)))
(setq pon9(polar pon8 p3 bolt_h))
(setq pon10(polar pon9 (- p3 (/ pi 2)) bolt_d))
(setq pon11(polar pon10 (+ p3 pi) bolt_h))
(setq pon12(polar pon7 p3 (+ bolt_h bolt_h)))
(setq pon13(polar p1 (+ p3 pi) bolt_h))
(command "color" "3" "" );볼트는 녹색
(command "pline" pon1 pon2 pon5 pon6 pon1 "")
(command "pline" pon2 pon3 pon4 pon5 pon2 "")
(command "pline" pon8 pon9 pon10 pon11 pon8 "")
(command "color" "1" "");중심선은 빨강색
(command "line" pon13 pon12 "");center line
(setvar "osmode" oldos)
(command "color" "bylayer" "")
);end
(defun c:ib();insert bolt(t.s bolt 규격참조)
(initget 1 "16 20 22 24")
(setq bolt_size (getkword"\n\"bolt size를 선택해주세요.(16 20 22 24)\""))
(setq len(getint"\n\"길이를 입력해주세요.\""))
(cond
((= bolt_size "16")(insert_bolt 16.0 len 27.0 10.0 15.0));볼트사이즈,길이,d(머리지름),h(머리두께),s(덜어져 나갈부분)
((= bolt_size "20")(insert_bolt 20.0 len 34.0 13.0 18.0))
((= bolt_size "22")(insert_bolt 22.0 len 39.0 14.0 19.0))
((= bolt_size "24")(insert_bolt 24.0 len 43.0 15.0 20.0))
)
(princ)
)
규격화된 볼트를 그린다.
딴건 없고 서브 함수에 매게변수를 건네주는 것을 본격적으로 활용한것에 의의
상수와 변수 모두 잘 건네주었다.
지역변수 지정도 정상작동 돼었다.
딴건 없고 서브 함수에 매게변수를 건네주는 것을 본격적으로 활용한것에 의의
상수와 변수 모두 잘 건네주었다.
지역변수 지정도 정상작동 돼었다.
2011년 10월 12일 수요일
2011년 10월 7일 금요일
2011년 9월 28일 수요일
2011년 9월 27일 화요일
DIMBREAK 디맨션 치수 끊기
DIMASSOC "2" 연관치수 설정
visualStyles 화면 스타일 ex)와이어프레임 실제 x레이...
GROUP 그룹작성및관리
PICKSTYLE 그룸켜고끄는 변수
속성문자
ATTDEF 작성
ATTMULTI 1
ATTIPE 1
ATTMODE 0끄기 1현제유지 2켜기
TEXTTOFRONT 치수나 문자를 앞으로 가져온다.
region 닫힌 라인을이용해서 면적을 만든다.
union region 을이용해 얻은 면적일경우 합집합
subtract // 차집합
intersect // 교집합
chspace 도면영역에서 모형객채를 가져온다.축척변환해서
2011년 9월 26일 월요일
2011년 9월 14일 수요일
VBA
Sub text_1()
Sheet1.Range(Range("a1"), Range("a1").End(xlDown)).Select
Selection.Offset(1, 0).Select
Selection.Resize(Selection.Rows.Count - 1, Selection.Columns.Count).Select
End Sub
excel vba 값이있는열의 마지막까지 선택 열의 맨위는 재목이 들어가기때문에
선택제외 하고 선택영역을 다시 설정
range.end(xldown)
선택셀의 아래마지막 셀 선택
range.end(xldown)
선택셀의 아래마지막 셀 선택
2011년 9월 11일 일요일
2011년 9월 8일 목요일
VBA
Range 오브젝트
Range 범위에 접근하는 것같음.
Cells (행,열) 셀에접근한다.
둘다 셀에 접근하고 컨트롤하지만 뭔가 표현 방법이 다르고 약간의 쓰임세가 다르다.
Range 범위에 접근하는 것같음.
Cells (행,열) 셀에접근한다.
둘다 셀에 접근하고 컨트롤하지만 뭔가 표현 방법이 다르고 약간의 쓰임세가 다르다.
Range 오브젝트는 VBA로 프로그래밍을 할 때 가장 빈번하게 사용되는 가장 중요한 오브젝트 입니다. 엑셀에 입력되는 대부분의 데이터들이 바로 Range 오브젝트에 보관됩니다
Range 오브젝트는 워크시트 오브젝트의 하위 오브젝트로 시트 내에 한 개 또는 복수 개의 셀들로 이루어집니다.
Range 오브젝트는 워크시트 오브젝트의 하위 오브젝트로 시트 내에 한 개 또는 복수 개의 셀들로 이루어집니다.
Range 오브젝트에 접근하는 방법은 여러 가지가 있습니다. 다음은 대표적인 몇 가지 방법입니다.
Range 속성을 사용하는 방법
Cells 속성을 사용하는 방법
Offset 속성을 사용하는 방법
Union 메서드를 사용하는 방법
-Exceller"s vba 입문강좌 중-
worksheets("sheet1").Range("a1").value = 100
sheet1의 range("a1")오브젝트의 value속성에 100을 대입한다.
-Exceller"s vba 입문강좌 중-
worksheets("sheet1").Range("a1").value = 100
sheet1의 range("a1")오브젝트의 value속성에 100을 대입한다.
2011년 9월 7일 수요일
VBA
Sub 안녕하세요()
Msg = Application.UserName & "님 안녕하세요?" //application.username 은 사용자 컴퓨터의 이름을 가져온다.
Answer = MsgBox(Msg, vbYesNo) //예 아니오 버튼을 만든다.
If Answer = vbYes Then //친숙한 if문 사영법 역시 같다.
MsgBox "안녕하시다니 다행이네요!"
Else
MsgBox "저런, 무슨 일이 있었나요?"
End If // lisp의 괄호처럼 닫는다.
End Sub //메크로 닫기
실행하면 이름과함께 안녕하세요라는 메세지 박스를 띄운다.
박스에는 예와 아니오의 버튼이 있고 이들중 선택하는것에 따라
다른 메세지를 띄우게된다.
sub 함수명 as 데이터형식
...
코드
...
end sub
비주얼 베이직
언제나 처럼 진작에 라는 탄식이 흘러나온다.
어쩨서 유행이 다지난 언어를 뒤늦게 하고 앉아있는가?
뒤처질까 이미 따라잡을수 없을만큼 멀어질가봐 두렵다.
2011년 9월 3일 토요일
2011년 9월 1일 목요일
using system;
namespace aaa{
class helloworld{
public static void main(){
console.writeline("hello world!");
}
}
}
int 4바이트 정수
char 2바이트 문자
float 4바이트 실수
c# 변수 이름 대소문자를 구분한다.
반드시 데이터 타입을 이용해서 만든다.
100 다른 명시가 없는상수일경우 int
100L long형상수
100.0 혹은 100.0D double 8바이트
100.0f float 4바이트
100.0M decimal 상수
정수형 : byte, char, int ,long
실수형 : float, double, decimal
불형 : bool
2011년 8월 23일 화요일
command 함수
(command "circle" pause 50.0)
//command 함수뿐만이 아니라 lisp함수는 script file을 작성해서 쓸수있다.
//pause 사용자 입력대기
시험해본결과 idwgtap없이는 pause의사용이 제약적이다.
입력대기 에 다른 작성된 명령이 실행됌.
//command 함수뿐만이 아니라 lisp함수는 script file을 작성해서 쓸수있다.
//pause 사용자 입력대기
시험해본결과 idwgtap없이는 pause의사용이 제약적이다.
입력대기 에 다른 작성된 명령이 실행됌.
2011년 8월 22일 월요일
2011년 8월 16일 화요일
(defun c:ree()
(setq arc_size(getdist"\n"))
(princ "\n")
(if (= nil arc_size)
(setq arc_size num1)
)
(command "rectang"
(setq p1(getpoint))
(setq p2(getcorner p1))
)
(command "revcloud" "a" arc_size arc_size "o"
(setq ent (entlast)) ;마지막으로 그린 객체를 선택세트로
"n"
)
(setq num1 arc_size)
(princ)
)
colud의 크기를 입력 받은후 rectang을 그리면 사각형의 구름이 그려진다.
2011년 8월 9일 화요일
선택세트의 엔티티를 바꾸는 방법
(setq a(ssget))
(setq b(ssname a n)) ;n은 선택세트 몇번째 인지 알리는것 하나의 객채만
선택할경우 0을 입력한다.
(setq c(entget b))
(setq d(subst (cons 40 ?)(assoc 40 c) c));subst로 엔티티속성을 변경한다.
;(subst New-item Old-item List-Name)
;(subst New-item Old-item Entity-Name) or (subst New-item Old-item Variable)
(entmod d) ;바뀐것을 화면에 출력(반영)
(setq a(ssget))
(setq b(ssname a n)) ;n은 선택세트 몇번째 인지 알리는것 하나의 객채만
선택할경우 0을 입력한다.
(setq c(entget b))
(setq d(subst (cons 40 ?)(assoc 40 c) c));subst로 엔티티속성을 변경한다.
;(subst New-item Old-item List-Name)
;(subst New-item Old-item Entity-Name) or (subst New-item Old-item Variable)
(entmod d) ;바뀐것을 화면에 출력(반영)
(ssget "X")
도면의 모든것을 선택세트로 담아둔다
"X"인자가 지원하는 코드는 다음과 같다.
0 - 엔티티타입
ex) (ssget "X" '((0 . "text)))
(ssget "X" (list(cons 0 "text"))) //(text를 지정하면 도면않의 text엔티티는 모두 선택된다.
2 - 블록
6 - 라인타입
7 - 택그트 스타일
8 - 레이어
38 - elevation - must be real number, e.g..: (38 . 2.5)
39 - thickness - must be real number, e.g..: (39 . 0.75)
62 - color (0 = "BYBLOCK", 256 = "BYLAYER")
66 - attributes follow flag, in insertion association lists
210 - 3D extrusion direction vector (list of 3 reals)
(ssget (list 1.75 4.0)) //주어진 지점 통과 엔티티로 구성된 선택 세트를 만듭니다
(ssget "L") //마지막으로그린 것을 선택세트에 담아둔다.
(ssget "W"(list 1) (list 4 4)) //윈도우선택
(ssget "W"(setq P1 (getpoint "첫 번째 지점 :")) (getcorner P1 "기타 지점 :")) 위와 동일하지만, 사용자가 포인터로 포인트를 찾을 수 있습니다
(ssget "C"(list 1) (list 4 4)) 걸치기 선택
(ssget "P")은 (SELECT 명령을 선택하여 방금 만든 설정, 예를 들면) 이전 선택 세트에서 단체로 구성된 선택 세트를 만듭니다
도면의 모든것을 선택세트로 담아둔다
"X"인자가 지원하는 코드는 다음과 같다.
0 - 엔티티타입
ex) (ssget "X" '((0 . "text)))
(ssget "X" (list(cons 0 "text"))) //(text를 지정하면 도면않의 text엔티티는 모두 선택된다.
2 - 블록
6 - 라인타입
7 - 택그트 스타일
8 - 레이어
38 - elevation - must be real number, e.g..: (38 . 2.5)
39 - thickness - must be real number, e.g..: (39 . 0.75)
62 - color (0 = "BYBLOCK", 256 = "BYLAYER")
66 - attributes follow flag, in insertion association lists
210 - 3D extrusion direction vector (list of 3 reals)
(ssget (list 1.75 4.0)) //주어진 지점 통과 엔티티로 구성된 선택 세트를 만듭니다
(ssget "L") //마지막으로그린 것을 선택세트에 담아둔다.
(ssget "W"(list 1) (list 4 4)) //윈도우선택
(ssget "W"(setq P1 (getpoint "첫 번째 지점 :")) (getcorner P1 "기타 지점 :")) 위와 동일하지만, 사용자가 포인터로 포인트를 찾을 수 있습니다
(ssget "C"(list 1) (list 4 4)) 걸치기 선택
(ssget "P")은 (SELECT 명령을 선택하여 방금 만든 설정, 예를 들면) 이전 선택 세트에서 단체로 구성된 선택 세트를 만듭니다
2011년 7월 2일 토요일
입력된 두수사이의 수들의 합을 구하는 거
(defun c:asdf()
(setq n1(getint"\n첫번째 정수를 입력해주세요"))
(setq n2(getint"\n두번째 정수를 입력해주세요"))
(setq sum 0)
(if(< n1 n2)
(setq start n1 end n2)
(setq start n2 end n1)
)
(while (< start (- end 1))
(setq sum (+ sum start))
(setq start(1+ start))
(princ start)
(princ "+")
)
(princ "\t=")
(princ sum)
(princ)
)
(defun c:asdf()
(setq n1(getint"\n첫번째 정수를 입력해주세요"))
(setq n2(getint"\n두번째 정수를 입력해주세요"))
(setq sum 0)
(if(< n1 n2)
(setq start n1 end n2)
(setq start n2 end n1)
)
(while (< start (- end 1))
(setq sum (+ sum start))
(setq start(1+ start))
(princ start)
(princ "+")
)
(princ "\t=")
(princ sum)
(princ)
)
반복문 while과 repeat를 중첩 입력한정수를 결과값으로 가지는 숫자들을 출력하면서 출력한 수를 알준다.
세번중첩했을뿐인데 괄호관리가 힘들다.
코드를 한번에 쓰는게아니라 그때그때 편집하는데 괄호관리하는거는 좀 난감하다.
오토리습 출력함수 c의 prlntf같은거 없을까?
(defun c:asdf()
(setq num(getint"\n정수를 입력해주세요."))
(setq i 0)
(setq j 0)
(setq k 0)
(setq sum 0)
(while (<= i 100)
(setq j 0)
(while (<= j 100)
(setq k 0)
(while (<= k 100)
;(setq k 0)
(if
(= (+ i j k) num)
(progn
(princ "\n")
(princ i)
(princ "+")
(princ j)
(princ "+")
(princ k)
(princ "=")
(princ (+ i j k))
(setq sum (+ sum 1))
);progn끝
);if
(setq k (+ k 1))
);while k
(setq j (+ j 1))
);while j
(setq i (+ i 1))
);while i
(princ "\n num 의 합을나눈수는")(princ sum)
(princ)
)
(defun c:asdfa()
(setq num(getint"\n정수를 입력해주세요."))
(setq i 0)
(setq sum 0)
(repeat 100
(setq j 0)
(repeat 100
(setq k 0)
(repeat 100
(if (= (+ i j k) num)
(progn
(princ "\n")
(princ i)
(princ "+")
(princ j)
(princ "+")
(princ k)
(princ "=")
(princ (+ i j k))
(setq sum (1+ sum))
)
)
(setq k (1+ k))
)
(setq j (1+ j))
)
(setq i (1+ i))
)
(princ "\n원하는숫자는")
(princ sum)
(princ)
)
피드 구독하기:
글
(
Atom
)