프로그램
캐드 분류

리습 수정 좀 부탁드립니다.<br>리습 수정 좀 부탁드립니다.<br>리습 수정 좀 부탁드립니다….<br>리습 수정 좀 부탁드립니다..<br>리습 수정 좀 부탁드립니다.<br>리습 수정 좀 부탁드립니다.<br>리습 수정 좀 부탁드립니다

컨텐츠 정보

본문

(defun c:xx (/ #a #b #c #d #e #f #g #h #i #index)
(vl-load-com)
(prompt "n>>문자들을 선택: ")
(setq #a(ssget '((0 . "text"))))
(vl-cmdf "undo" "m")
(setq #b(entsel "n>>라인을 선택: "))
(if (and #a #b)
(progn
(setq #c(vlax-ename->vla-object(car #b)))
(if (eq "AcDbPolyline" (vla-get-objectname #c))
(progn
(vl-cmdf "explode" (vlax-vla-object->ename #c))
(setq #c(vlax-ename->vla-object(ssname(ssget (osnap(cadr #b)"nea"))0)))
);;progn
);;if
(setq #d(vlax-safearray->list(vlax-variant-value(vla-get-startpoint #c))))
(setq #e(vlax-safearray->list(vlax-variant-value(vla-get-endpoint #c))))
(vl-cmdf "undo" "b")
(setq #f(osnap (cadr #b) "nea"))
(setq #g(distance #d #f))
(setq #h(distance #e #f))
(if (< #g #h)(setq #i(angle #d #f))(setq #i(angle #e #f)))
(setq #index 0)
(repeat (sslength #a)
(vla-put-rotation (setq #j(vlax-ename->vla-object(ssname #a #index))) #i)
(setq #index(1+ #index))
(grtext -1 "변환중…..")
);;repeat
(grtext -1 "")
);;progn
);;if
);;defun

이 리습으로 문자를 선에 맞추어 정렬하고 쓰고 있었는데 한가지 문제가 있읍니다.
다시 문자를 이동시켜 선의 중앙에 다시 배치해야 하는 번거움입니다.
뭐,,,,수십개 정도야 하겠지만 몇백개씩 되니 참 힘들니다.
고수 여러분 부탁드립니다.
글자 정렬후 선의 중앙애 배치되고 또 어느정도 간격이 조정이 됐으며 합니다.  부디 도와 주시길 바랍니다.


면적, 평 리습입니다

소수점 2자리까지만 나오게 수정좀 부탁드립니다
수정된 부분은 폰트색으로 구별해주시면 더 할 나이 없이 감사하겠습니다!!!!

(defun c:zz(/ cmd a pyng sm)
 (setq cmd(getvar"cmdecho"))
 (setvar"cmdecho"0)
 (setq sc(getvar"ltscale"))
 (setq ts(* sc 5))
 (princ"Select polyline:")
 (command"area""e"pause)
 (setq area(getvar"area"))
 (setq sm(rtos(/ area 1.0e+06) 2 4))
 (setq py(rtos(* area 0.0000003025) 2 4))
 (princ"n      Area : ")
 (princ sm)
 (princ" sq m")
 (princ"   -> ")
 (princ py)
 (princ" pyong")
 (setq pt(getpoint"nn      Pick Text Point :"))(terpri)
 (setq ar1(strcat ""sm" m2″))
 (command"text""s""standard""mc"pt ts"0″ar1)
 (setvar"cmdecho"cmd)
 (prin1))
(princ)
(defun c:xx(/ cmd a pyng sm)
 (setq cmd(getvar"cmdecho"))
 (setvar"cmdecho"0)
 (setq sc(getvar"ltscale"))
 (setq ts(* sc 5))
 (princ"Select polyline:")
 (command"area""e"pause)
 (setq area(getvar"area"))
 (setq sm(rtos(/ area 1.0e+06) 2 4))
 (setq py(rtos(* area 0.0000003025) 2 4))
 (princ"n      Area : ")
 (princ sm)
 (princ" sq m")
 (princ"   -> ")
 (princ py)
 (princ" pyong")
 (setq pt(getpoint"nn      Pick Text Point :"))(terpri)
 (setq ar1(strcat ""py" py"))
 (command"text""s""standard""mc"pt ts"0″ar1)
 (setvar"cmdecho"cmd)
 (prin1))


리습 완전 생초보입니다…
이것저것 짜집기해서 만들기는 했는데요….
일반적인 대칭 명령어 사용시 대칭을 할경우 어떻게 뜰거다라는 모습이
점선으로 나타나잔아요..
그런데 만든 리습을 사용시 그런 모습을 미리보는게 안되네요…
요것 수정 좀 부탁드립니다…..

; 대칭복사


(DEFUN C:CM ()
 (PROMPT "nSELECT ENTITY TO MIRROR COPY : ")
 (SETQ A (SSGET))
 (PROMPT "nFIRST POINT : ")
 (SETQ PT (getpoint))
 (PROMPT "nSECOND POINT : ")
 (SETQ PU (getpoint))
 (COMMAND "COPY" A "" PT PT)
 (COMMAND "MIRROR" "P" "" PT PU "Y")
)



; 대칭이동



(DEFUN C:MM ()
 (PROMPT "nSELECT ENTITY TO MIRROR MOVE : ")
 (SETQ A (SSGET))
 (PROMPT "nFIRST POINT : ")
 (SETQ PT (getpoint))
 (PROMPT "nSECOND POINT : ")
 (SETQ PU (getpoint))
 (COMMAND "MIRROR" "P" "" PT PU "Y")
)


(defun c:t (/ p1 ent p2 p3 p4 p5 ent op obj ang sset a)
  (vl-load-com)
  (command "undo" "be")
  (setq a (getvar "osmode"))
  (setvar "osmode" 0)
  (cond
    ((vl-cmdf "_.line" (setq p1 (getpoint "nSelect First Point: "))
     (setq p2 (getpoint p1 "nSelect Second Point: "))
     ""
     )
      (setq ent (entlast))
      (setq p3 (getpoint "nWhich sides: "))
      (setq obj (vlax-ename->vla-object ent))
      (setq op (vlax-curve-getclosestpointto obj p3))
      (setq ang (angle op p3))
      (setq p4 (polar p1 ang 1))
      (setq p5 (polar p2 ang 1))
      (setq sset (ssget "_f" (list p1 p2)))
      (command "_.trim" sset "" "f" p4 p5 "" "")
      (command "_.erase" ent "")
    )
  )
  (setvar "osmode" a)
  (command "undo" "e")
)
TRIM을 빨리 하게 하는 리습인데, 리습을 사용할 때 스냅이 다 꺼져 있습니다.
그래서 정확한 지점을 기준으로 TRIM을 하기 힘들구요..
오스냅이 걸린상태에서 사용할수는 없을까요?

2008에서 cloud 기능으로 쓰고있는데,
이게 설정값을 매번 할때마다 수정하는 불편함이 있어서요.(값이 초기화 됨)
전 값을 설정하면 그대로 계속 물고있게 수정 좀 부탁드립니다.



아래리습은 첫번째 점과 두번째 점을 찍으면 길이가 나오고, 다음 점을 찍으면 연속해서 누적거리가
나옵니다.
제가 원하는 것은 첫번째 점과 두번째 점을 찍으면 길이 나오고, 또다시, 첫번째점과 두번째 점을 찍으면
길이가 누적되어 누적거리가 나오도록 ((계속 반복))
하는 건데요… 어딜 수정해야 하나요?

(defun c:test () ; 명령어 바꿔사용하세요~
(setq sub 0)
(setq p1 (getpoint "n First Point >"))
(while (setq p2 (getpoint "n Next Point >"))
(setq di (distance p1 p2))
(setq sub (+ di sub))
(setq p1 p2)
(prompt "n SUB = ")
(princ sub)))

예)) 첫번째 점 찍고, 두번째 점 찍고… 길이가 14.66m라면, 다음에 첫번째 점 찍고, 두번째 점 찍으면..
현길이= 15.20m, Total길이 = 14.66 + 15.20 = 29.86m 표시되고… 또 첫번째 점 찍고, 두번째 점 찍으면…
현길이= 11.10m, Total길이 = 29.86 + 11.10 = 40.96m  … (반복)


안녕하세요?
첨부파일을 다음과 같이 수정을 좀 부탁드립니다. (1번, 2번)

-1번-
1. 외경의 값을 입력하게 하고 (외경을 입력하시오)
2. X0.000 Y0.000 —>X0.000 A0.000 방식으로 기록
3. A의 기록값은 의 계산값이 기록되게요

-2번-
1. 'X스케일값을 입력하시오. Y스케일값을 입력하시오.' 로 각각 구분입력
2. 실행이 끝나면 dimstyle을 원래대로 되돌림 (현 dimscale이 리습에 입력한 수치 그대로임)
***1번, 2번 모두 실행이 끝나면 <후행 0억제>를 원래대로 되게도요**

관련자료

댓글 4 / 1 페이지

수야12님의 댓글

어느정도란게 정확하게 뭔가요??  문자를  라인 가운데 정렬하고 나서 띄울 간격을 직접 보시고 조정 할 수 있게 옵션을 넣어 달라는 것인지 정렬하기 전에 라인에서 띄울 간격을 입력하게 해 달라는 것인지

질문이 명확해야 리습 수정하시는 분이 수정를 할 수 있을거 같네요 

sun`s님의 댓글

네 선 중앙에서 부터 얼마나 띄울건지 입력하여 자기가 원하는대로 조절했으면 좋겠습니다

[Deleted User]님의 댓글

(defun c:zz(/ cmd a pyng sm)  (setq cmd(getvar"cmdecho"))  (setvar"cmdecho"0)  (setq sc(getvar"ltscale"))  (setq ts(* sc 5))  (princ"Select polyline:")  (command"area""e"pause)  (setq area(getvar"area"))  (setq sm(rtos(/ area 1.0e+06) 2 2))  (setq py(rtos(* area 0.0000003025) 2 2))   (princ"n      Area : ")  (princ sm)  (princ" sq m")  (princ"   -> ")  (princ py)  (princ" pyong")  (setq pt(getpoint"nn      Pick Text Point :"))(terpri)  (setq ar1(strcat ""sm" m2″))  (command"text""s""standard""mc"pt ts"0″ar1)  (setvar"cmdecho"cmd)  (prin1)) (princ) (defun c:xx(/ cmd a pyng sm)  (setq cmd(getvar"cmdecho"))  (setvar"cmdecho"0)  (setq sc(getvar"ltscale"))  (setq ts(* sc 5))  (princ"Select polyline:")  (command"area""e"pause)  (setq area(getvar"area"))  (setq sm(rtos(/ area 1.0e+06) 2 2))  (setq py(rtos(* area 0.0000003025) 2 2))   (princ"n      Area : ")  (princ sm)  (princ" sq m")  (princ"   -> ")  (princ py)  (princ" pyong")  (setq pt(getpoint"nn      Pick Text Point :"))(terpri)  (setq ar1(strcat ""py" py"))  (command"text""s""standard""mc"pt ts"0″ar1)  (setvar"cmdecho"cmd)  (prin1))

전체 66 / 1 페이지
번호
제목
이름

최근글


새댓글


알림 0