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))
   )
;;;선택세트에서 문자열을 정리해서 리턴