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

 

(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

 

 

 

 

 

 

 

STRLEN은 속성이 문자열에서 그 문자 갯수를 정수로 응답합니다

 

문자 갯수를 파악하여 수정 편집 기능 리습에 활용 됩니다

 

예제

 

  (setq txtsu (strlen oldstr)) ; 문자인 oldstr 의 문자갯수 정수를 txtsu 에 저장합니다

 

 

 

 

 

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

 

 

 

 

 

SUBST 예제

 

 

(setq selent(entsel "\n 객체 선택 " ))

 

; 하나의 객체를 선택합니다

 

(setq entname (entget selent))

 

; 선택한 객체의 이름을 저장합니다

 

(setq entname (subst (cons 8 "2") (assoc 8 entname) entname ))

 

;  subst 대체데이터 구데이터 교체대상

; subst 함수로 선택했던 entname의 레이어를(뭔지모르지만) "2" 레이어로 교체하여

; 새로운 객체를 생성하고 그 이름은 entname 덮어쓰기 저장합니다

; 교체대상은 엔티티이름이어야 합니다

 

 

(entmod entname)

 

; 내부 정보가 수정된 엔티티이름의 객체를 갱신표현 합니다

 

SUBST 는 객체의 내부 정보를 교체하여 수정하는 매우 강력한 함수입니다

 

 

 

 

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

 

 

 

 

 

 

CONS 는 일반 변수를 dxf code 와 결합하도록 합니다

 

 

text 를 다루는 예제입니다

txtnew 는 문자열 값입니다

cons 는 이 txtnew 에 dxf code 1 을 입혀 newtxt 로 합니다

 (setq newtxt (cons 1 txtnew))

이제 newtxt 는 dxf code 1 문자열 txtnew 인 변수가 됩니다

 

 

 

이제 dxf code를 가진 newtxt 는 dxfcode를 가진 txtold 를 대체하여 ent에 저장합니다

     (setq newent (subst newtxt txtold ent) )
     (entmod newent)

entmode 로 문자값 txtold 이 txtnew 로 변경 됩니다

 

 

 

 

 

 

 

 

 

 

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

 

 

 

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

CAR CADR CADDR CDR LIST 중 선택 응답  (0) 2022.08.10

 

 

 

 

 

 

 

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

 

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

(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 추가

 

 

 

 

 

 

 

 

 

 

 

 

if while cond repeat 등의 조건을 설정하는 함수 작성법입니다

 

 

(>  aaa bbb) ; 조건 bbb 보다 aaa 가 큰 경우

 

(<  aa bb) ; bb 보다 aa 가 작은 경우

 

(= ccc ddd) ; 조건 ccc 와 ddd 가 같은 경우

 

(<= eee fff) ; 조건 fff 가 eee 와 같거나 큰경우

 

(>= ee ff) ; ee 가 ff 보다 크거나 같은 경우

 

(= ggg nil) ; 조건 ggg 값이 nil (오류) 인 경우

 

(= hhh "") ; 사용자 입력 hhh 문자값이 그냥엔터로 값이 없는 경우

 

(/= cd nil) ; nil아니면 참 응답

 

 

 

 

 

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

 

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

 

 

 

(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

+ Recent posts