도면번호 형식 또는 패턴의 문자를 검색하는 예제문 입니다

 

(setq ss_ent (ssget '( (0 . "text") (1 . "*-*-* ")  ) ) )

 

; * 는 모든문자를 의미

; *-*-* 는 aaa-bbb-000 등의 도면번호 패턴의 문자에 해당합니다

 

 

 

'리습 예제 1부' 카테고리의 다른 글

블록 존재여부로 작도 삽입 if 문  (0) 2022.08.19
리습 작도전 화면 크기 제어  (0) 2022.08.19
라인타입 로드하기  (0) 2022.08.13
메인리습 서브리습  (0) 2022.08.08
리습 목적별 예제 문장  (0) 2022.07.27

 

 

 

 

 

 

 

도면에서 표현되는 치수나 문자의 크기는 도면 대상물의 크기에 따릅니다

 

대상물 크기에 따른 치수표기를 조절하려면 우선 치수 표기의 크기에 대한 자신만의 표준을 정합니다

(command "dimasz" 1.5 "dimdli" 6  "dimexo" 1.2  "dimexe" 0.6 "dimtxt" 2.4 "DIMGAP" 0.6)

위와 예는 설정은 일반적인 표기 기준 정도입니다

 

 

 

dimasz 화살표 크기

dimdli   dimbaseline 치수선 증분 간격

dimexo 치수대상체와 치수보조선의 이격

dimexe 치수선위로 치수보조선 돌출

dimtxt    치수문자 크기

dimgap  치수선과 치수문자의 이격

 

 

 

 

 

위 설정후 대상물 크기에 따라서 dinscale 값을 변경합니다

 

 

'D 함수' 카테고리의 다른 글

DELAY 캐드 동작 잠시 멈춤 지연  (0) 2022.08.06
DXF 코드 객체 정보 추출  (0) 2022.08.05
DISTANCE 두점간의 거리 응답  (0) 2022.08.02

현 도면상에 원하는 블록이 없으면 새로 작도및 블록화 삽입을 하고 존재하면 바로 삽입을 합니다

 

 

 

(if (= (tblsearch "block" blkname) nil ) ; 조건은 해당 블록이 없으면 입니다

(sublisp) ; 블록이 없으면 작도 및 블록화 삽입늘 수행하는 서브리습 호출실행합니다

(command "-insert" blkname p10 1 1 0)  ; 블록이 존재하면 바로 삽입합니다

) ; end if

 

 

 

 

'리습 예제 1부' 카테고리의 다른 글

도면번호 형식 문자 검색  (0) 2022.09.05
리습 작도전 화면 크기 제어  (0) 2022.08.19
라인타입 로드하기  (0) 2022.08.13
메인리습 서브리습  (0) 2022.08.08
리습 목적별 예제 문장  (0) 2022.07.27

리습으로 자동 작도 전에 캐드 화면 크기를 적당히 할 필요가 있는 경우가 있습니다

 

trim extend fillet chamfer 등 객체선택과 동시에 해당점이 작용하는 경우입니다

 

적당하지 않은 캐드화면크기로 인한 오류가 발생하므로 화면크기 제어를 합니다

 

예제문

적당한 위치의 정의된 두점을 중심으로한 캐드화면을 조정합니다 

(command "zoom" "w" p10 p30)  

(command "zoom" "0.6x" )

 

 

 

 

CADBOX  AUTOBOX 는 오토캐드에 강력한 기능들을 추가합니다

 

 

 

'리습 예제 1부' 카테고리의 다른 글

도면번호 형식 문자 검색  (0) 2022.09.05
블록 존재여부로 작도 삽입 if 문  (0) 2022.08.19
라인타입 로드하기  (0) 2022.08.13
메인리습 서브리습  (0) 2022.08.08
리습 목적별 예제 문장  (0) 2022.07.27

 

캐드 명령창 출력문에 따옴표를 나오게하는 방법입니다

 

(prompt "일반 출력문 입니다") 

출력 결과

일반 출력문 입니다

 

(prompt "따움표 \"출력문\" 입니다")

출력 결과

따옴표 "출력문" 입니다

 

(prompt "길이가 1/4\" 입니다")

출력 결과

길이가 1/4" 입니다

 

 

 

 

 

'특수문자' 카테고리의 다른 글

입력문자 대문자 소문자 구분 리습  (0) 2022.08.18

리습으로 다수의 객체를 트림할 경우 fence 옵션으로 해당 라인에 걸리는 대상 모두를 트림합니다

tt01 ~ tt07 은 정의된 점

(command "trim" "l" "" "f" tt01 tt02 tt03 tt04 tt05 tt06 tt07 "" "")

 

 

 

'T 함수' 카테고리의 다른 글

TBLSEARCH 도면 테이블 검색  (0) 2022.08.11

 

ssadd 는 선택집합을 정의합니다

 

ssadd 예제

(setq ss (ssadd)) ;  null 인 선택집합 ss 정의. 

(ssadd e1 ss) ; 선택 집합 ss 에 e1 추가

 

 

 

 

 

문자로 입력을 받는 경우 사용자가 대문자 소문자 입력 여부를 알 수 없습니다

 

따라서 대문자 소문자 입력시 대응 하는 리습을 작성합니다

 

 

 

(setq R(getstring "\n  <Rear> = R  <T/2 Point> = T none= Enter " ))

  (cond 

    ((= R "R" ) (setq Text3(strcat "REAR " Text1)))   

    ((= R "T" ) (setq Text3(strcat "T/2 point " Text1)))
    ((= R "r" ) (setq Text3(strcat "REAR " Text1)))   

    ((= R "t" ) (setq Text3(strcat "T/2 point " Text1)))
    (t  (setq Text3(strcat Text1)))

) ; end cond

 

 

 

'특수문자' 카테고리의 다른 글

출력문자에 따옴표 표기하기 \"  (0) 2022.08.19

리습으로 자동 작성된 요소들을 BLOCK 화하면 여러모로 편리합니다

 

작성된 다수의 객체들을 block 화하는 예제문 입니다

 

예제는 block 의 이름 bname 과 삽입점 pt 가 그리고 객체작성용 점들이 사전에 정의 되어 있어야 합니다

  (command "line" p2 p3 "")   (setq e1 (entlast))  
  (command "line" p3 p5 "")   (setq e2 (entlast)) 
  (command "line" p9 p14 "")  (setq e3 (entlast))  
  (command "line" p5 p7 "")   (setq e4 (entlast))  
  (command "line" p13 p14 "") (setq e5 (entlast)) 
  (command "line" p9 p8 "")   (setq e6 (entlast))   
  (command "line" p8 p2 "")   (setq e7 (entlast))    
  (command "line" p7 p2 "")   (setq e8 (entlast))   
  (command "line" p13 p8 "")  (setq e9 (entlast))  
  (command "-block" bname pt e1 e2 e3 e4 e5 e6 e7 e8 e9  "")

 

리습 자동작도 객체 블록화 다른 방법 입니다

 

 (setq elast(entlast))  ; 마지막 객체 기억
 (command "line" ps3 ps4 ^c)

 (command "chprop" "L" "" "C" "8" "") 
 (command "arc" pr2 phc pr1)
 (command "arc" pr1 "e" pd1 "a" 45) ; 자동 작성문
 (setq enext (entnext elast) ; 마지막 객체 다음 객체를 시작 객체로

            ss (ssadd))  ; 선택 셋트 시작

 (while enext (setq ss (ssadd enext ss) enext (entnext enext)) )  ; 객체 모음 종료

 (command "-block" blkname pt ss "") ; block 화

 

 

 

ssadd 참고

(setq ss (ssadd)) ;  null 인 선택집합 ss 정의. 

(ssadd e1 ss) ; ss 에 e1 추가

 

 

 

 

CADBOX  AUTOBOX 는 오토캐드에 강력한 기능들을 추가합니다

 

inters 는 두점이 이루는 각도와 또다른 두점이 이루는 각도로 교차되는 점을 찾아줍니다

 

결국 두선의 각 끝점으로 교차점을 찾는것과 같습니다

 

교차점을 찾기위해서는 네개의 점을 미리 정의해야합니다

 

aas  선 aa 의 시작점

aae  선 aa 의 끝점

bbs  선 bb 의 시작점

bbe 선 bb 의 끝점

ccc 교차점

 

 

t 옵션은 선에대한 연장을 하지 않습니다

(setq ccc (inters aas aae bbs bbe t))

직접 교차하지 않으면 nil 응답

 

 

 

nil 옵션은 선에대한 연장을 합니다

(setq ccc (inters aas aae bbs bbe nil))

 

 

선을 연장하여 교차점을 찾습니다

 

 

 

예제는 캐드 화면상의 두선을 선택하게하여 그 교차점 pt0 을 구합니다

 (setq ss1 (entsel "\n LINE 하나 선택 "))
 (setq pt11 (cdr (assoc 10 (entget (car ss1)))))
 (setq pt12 (cdr (assoc 11 (entget (car ss1)))))
 (setq ss2 (entsel "\n 다른 LINE 하나 선택 "))
 (setq pt21 (cdr (assoc 10 (entget (car ss2)))))
 (setq pt22 (cdr (assoc 11 (entget (car ss2)))))
 (setq pt0 (inters pt11 pt12 pt21 pt22 nil))

 

'i 함수' 카테고리의 다른 글

itoa 정수를 문자로 변환  (0) 2022.08.02

getpoint 는 사용자에게 점을 입력(클릭) 하도록 요구합니다

사용자가 점을 클릭시 점의 값을 변수에 저장합니다

(getpoint "요구메세지")


점클릭시 pt1 저장
(setq pt1 (getpoint "\n Point 1 "))


정의된 점 pt1 지정하면 캐드화면에서 점 pt2 를클릭을 위해 커서를 움직일때 pt1 에서 예상 pt2 점까지의 실시간 늘어나는 점선으로된 고무선을 표현해줍니다
(setq pt2 (getpoint pt1 "\n Point 2 "))
pt1 의 위치를 명확하게 하여 pt2 와의 거리감각에 도움을 줍니다








'G 함수' 카테고리의 다른 글

GRAPHSCR 캐드 화면창으로 복귀  (0) 2022.08.06

 

 

(setq zn (getint "\n 호칭 규격 정수 입력 ")) ; 사용자 호칭규격 정수 입력

 (cond 
   ((= zn 10)  (setq size '(25.4 34.0 1.2))) ; 입력 10 인경우 size
   ((= zn 15)  (setq size '(38.1 49.0 1.2)))
   ((= zn 20)  (setq size '(50.8 61.0 1.5)))
   ((= zn 25)  (setq size '(63.5 84.0 2.0)))
   ((= zn 30)  (setq size '(76.3 89.0 2.0))) ; 입력 30 인경우 size
   (t (exit)) 

  ) ;cond;
(setq

dd (nth 0 size) ; size list 중 첫째 

rr (nth 1 size)

tt (nth 2 size) ; size list 중 세번째 

) ; setq

 

 

  

입력할 규격표를 명령창에 보여줍니다

 

그다음 사용자가 입력을 하면 캐드화면(그래픽창)으로 변경합니다

 

(명령창과 그래픽창의 전환은 캐드에서 F2 키입니다)

 

 

 

직경 입력 창 전환 리습 예제

  (prompt "\nSPEC 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 28 29 30") ; 규격표 보여주기
  (prompt "\nSPEC 32 34 35 36 38 40 42 45 48 50 52 55 56 58 60 62 63 65 68 70")
  (prompt "\nSPEC 72 75 78 80 82 85 88 90 95 100 105 110 115 120 125")
  (textscr)  ; 명령창 보이기
  (if (null dd11)(setq dd11 10)) 
   (setq dd1(getdist (strcat "\n Input Diameter of Shaft or Enter key =<" (rtos dd11 2 0) ">: "))) ; 직경 입력 받기
   (graphscr) ; 그래픽창 보이기
 

 

 

 

 

삼각함수로 라디안각도를 구하거나 라디안 각도로 삼각형의 길이를 구합니다

 

 

(sin ang) ; 삼각함수 사인 ang 라디안각

 

(cos ang) ; 삼각함수 코사인 ang 라디안각

 

(atan aa bb) ; 역탄젠트 라디안각 응답, 탄젠트 bb/aa 에 해당하는 라디안각도 응답

 

 

 

 

 

 

 

princ는 따옴표 없이 문자열을 표시합니다.

 

prin1은 따옴표로 묶인 문자열을 표시합니다.

 

print는 따옴표로 둘러싸인 문자열을 표시하지만 식 앞에 빈 줄을 배치하고 뒤에 공백을 배치합니다.

 

 

 

'P 함수' 카테고리의 다른 글

PAUSE 사용자 입력 대기  (0) 2022.08.13
PROGN 연속실행문  (0) 2022.08.09
PI 원주율 고유함수  (0) 2022.08.08

+ Recent posts