비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 23057
다음
Lv.0
등록일: 2005-04-212005-04-21T11:37:55+09:00 2005-04-21T11:37:55+09:00카테고리: AutoCAD & CADian

리습좀봐주세요.R14에서는 실행이 되는데 map 6에서 실행이안됩니다.

(defun dtr (a)
(* pi (/ a 180.0))) ;degree to radian
(defun rtd (a)
(/ (* a 180.0) pi)) ;radian to degree

(defun plver_td( );/ ent entl num v10 pver)
(setq ent (car (entsel “n Select pline : “)))
(setq entl (entget ent))
(setq plverl ()) ;구할 vertex list

(setq num 12) ;첫번째 vertex 좌표
(setq v10 10) ;vertex 좌표 code
(setq dis 0) ;거리값

(while (= v10 10)
(setq pver (cdr (nth num entl)))
(setq plverl (cons pver plverl))
(if (/= num 12)
(setq spt_lt (nth 1 plverl))
(setq spt_lt (cdr (assoc 10 entl)))
)
(setq dis (+ (distance pver spt_lt) dis))
(setq num (+ num 4))
(setq v10 (car (nth num entl)))
);while 1-10 10

(setq plverl (reverse plverl))

);defun

(defun dvpt_td(plverl d )

(setq dvptl ()) ;구할 좌표와 각도 list

(setq su (length plverl)) ;pline의 전체 vertex의 갯수

(setq len d) ;pline을 나눌 값
(setq dist 0.0)
(setq index 0)
(setq index1 (+ index 1))

(setq spt (nth index plverl)) ;첫번째 vertex
(setq ept (nth index1 plverl)) ;두번째 vertex
(setq dist (distance spt ept)) ;첫구간의 거리
(setq ang (angle spt ept)) ;첫구간의 각도
(setq lspt (nth (- su 2) plverl))
(setq lept (nth (- su 1) plverl))
(setq ldist (distance lspt lept))
(setq lang (angle lspt lept))
(setq ddist 0.0)

(setq dvptl (cons (list spt ang) dvptl)) ;처음 리스트

(while (< index su)
;(cond
; ((= (rem control 3) 0) (setq len 10))
; ((= (rem control 3) 1) (setq len 5))
; ((= (rem control 3) 2) (setq len 5))
😉
(if (>= dist len)
(progn ;구간 거리가 len길이보다 큰 경우
(setq ddist (- dist len))
(setq npt (polar ept (+ ang pi) ddist)) ;구할 좌표점을 구한다.
(setq dvptl (cons (list npt ang) dvptl)) ;구할 좌표 list를 구한다.

(setq dist ddist)
)
(progn ;구간 거리가 len길이보다 작은 경우
(setq index (+ index 1))
(setq nindex (+ index 1))
(if (/= (nth nindex plverl) nil) ;다음점 좌표 유무
(progn ;유
(setq sp (nth index plverl))
(setq ep (nth nindex plverl))
(setq sedist (distance sp ep))
(setq seang (angle sp ep))

(setq dist (+ dist sedist))
(setq ang seang)
(setq ept ep)

)
) ;if
)
) ;if
) ;while
(setq dvptl (cons (list lept lang) dvptl))
(setq dvptl (reverse dvptl))
) ;defun dvpt 끝

(defun lt_num(t_list) ; space를 뺀 글자수를 센다.
(setq ltnum 0)
(setq lt_list t_list)
(setq lt_1 (cdr (assoc 1 lt_list)))
(setq lt_n (strlen lt_1))
(setq lt_c 0)
(setq lcount 1 d 1)
(while (> lt_n lcount)
(setq lt_tv (substr lt_1 lcount d))
(setq lt_tv_asc (ascii lt_tv))
(if (< lt_tv_asc 127)
(progn ;영문일 경우
(if (/= lt_tv_asc 32)
(setq lt_c (+ 1 lt_c))
)
(setq lcount (+ 1 lcount))
)
(progn ;한글일 경우
(setq lt_c (+ 1 lt_c))
(setq lcount (+ 2 lcount))
)
);if
);while
);space를 뺀 글자수는 lt_c

(defun c:td()
(setvar “CMDECHO” 0)
(setq skekn (car (entsel “n select text : “)))
(setq ekl (entget skekn))
(setq ela (cdr (assoc 8 ekl))) ;layer
(setq ep (cdr (assoc 10 ekl))) ;start point
(setq ea (cdr (assoc 50 ekl))) ;angle
(setq eh (cdr (assoc 40 ekl))) ;높이
(setq etv (cdr (assoc 1 ekl))) ;글값
(setq esc (cdr (assoc 41 ekl))) ;x scale
(setq eo (cdr (assoc 51 ekl))) ;oblique
(setq est (cdr (assoc 7 ekl))) ;font style
(setq until (* (* eh esc) 1.35)) ;자간설정=높이*x scale*1.2
(setq tn (strlen etv)) ;문자열의 길이
(setq eo (rtd eo)) ;각도 변환
(setq index1 1)
(setq chart nil)
(setq c 0)
(lt_num ekl) ;글자수 구하기
(plver_td ) ;글자를 배치할 선의 점 리스트
(setq div_dis (/ dis (- lt_c 1)))
(dvpt_td plverl div_dis);글자위치 및 각도 구하기

(setvar “clayer” ela)
(command “style” est “” eh esc eo “” “” “”)
(entdel skekn)
(repeat tn
; (setq index (+ index 1))
; (setq index1 index)
(setq uncnt (substr etv index1 1))
(setq ascii_t (ascii uncnt))
(if (>= ascii_t 127)
(setq sp 2)
(setq sp 1)
)
(setq char (substr etv index1 sp))
(setq index1 (+ index1 sp))
;(setq eak1 (/ (* ea 180.0) pi))
(if (/= ascii_t 32)
(progn
(setq ep (car (nth c dvptl)))
(setq eak1 (rtd (cadr (nth c dvptl))))
(command “text” ep eak1 char)
(setq c (1+ c))
)
)
(setq ep (polar ep ea until))
)
)

  • 0
  • 7 조회
공유
  • Facebook

    관련 있는 질문들

    • mvsetup 및 align 안됨
    • mvsetup 및 align 안됨
    • 에어컨 실외기 도면
    • cad에서 기준점 복사 후 다른 파일에 붙여넣기 시 블록참조객체의 길이가 줄어들어있어요

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved