어제 리스프로 오전내내 작업했습니다.
잘되고 있슴다.
| PL 12 x 2500 | 5000 | 2 | 2355.0 |
|———————|—|——–|
| PL 12 x 4000 | 7000 | 3 | 7912.8 |
문제가 생겼슴다.
위에서 12 란 숫자를 15로 또는 19 로 부꿔도 잘 됨다.
근데 한자리 숫자로 바꾸면 안됩니다.
예를 들어 9 로 바꾸면 답이 0.0 오르 나옵니다.
답좀 부탁합니다.
그리고 첫번째 객체 선택후
다시 두,세번째를 선택하는데 한꺼번에 선택해서 하면 안되나요?
감사합니다. 거듭 죄~~~~~~~송…
강나루님의 글
————————————
어제 리스프로 오전내내 작업했습니다.
잘되고 있슴다.
| PL 12 x 2500 | 5000 | 2 | 2355.0 |
|———————|—|——–|
| PL 12 x 4000 | 7000 | 3 | 7912.8 |
문제가 생겼슴다.
위에서 12 란 숫자를 15로 또는 19 로 부꿔도 잘 됨다.
근데 한자리 숫자로 바꾸면 안됩니다.
예를 들어 9 로 바꾸면 답이 0.0 오르 나옵니다.
답좀 부탁합니다.
그리고 첫번째 객체 선택후
다시 두,세번째를 선택하는데 한꺼번에 선택해서 하면 안되나요?
감사합니다. 거듭 죄~~~~~~~송…
————————————
(DEFUN C:WW (); (/ AA BB D A B C DD T TT TTT)
(SETVAR “CMDECHO” 0)
(prompt “처음텍스트를 선택해주십시요”)=======================
(setq aa_1 (ssget ‘((0 . “text”))))
(setq bb_1 (sslength aa_1))
(SETQ a_1 (SSNAME AA_1 0))
(SETQ B_1 (ENTGET A_1)) 이부분을 설명드리죠..
(SETQ C_1 (CDR (ASSOC 1 B_1)))
(setq text1 (atof (substr c_1 4 2))
text2 (atof (substr c_1 9 4)))
(setq all (* text1 text2))====================================
(prompt “나중의 텍스트 두개를 선택해주십시요”)
(SETQ AA (SSGET ‘((0 . “TEXT”)))) ;AA란 함수에 텍스트 문서를 저장
(SETQ BB (SSLENGTH AA)) ;BB란 함수에 선택된 텍스트의 숫자
(SETQ D 1)
(WHILE (/= 0 BB)
(SETQ BB (- BB 1))
(SETQ A (SSNAME AA BB))
(SETQ B (ENTGET A))
(SETQ C (ATOF (CDR (ASSOC 1 B))))
(SETQ D (* D C))
) ;; while
(setq d (* all d))
(setq d (* d 0.00000785))
(SETQ DD (RTOS D 2 1))
(SETQ T (ENTSEL “nSELECT MULTIPLICATION TEXT? 숫자를 선택해 주세요?”))
(SETQ TT (ENTGET (CAR T)))
(SETQ TTT (ASSOC 1 TT))
(ENTMOD (SUBST (CONS 1 DD) TTT TT))
(PRINC))
==============================================
윗부분
처음에 하나로 되있는 부분을 계산할수 있도록 나누어놓은 부분입니다..
제가 님께 자릿수를 알기위해 샘풀파일 요청했었자나여..그이유를 설명드리자면
prompt “처음텍스트를 선택해주십시요”)=======================
(setq aa_1 (ssget ‘((0 . “text”)))) => 하나로된 텍스트 선택
(setq bb_1 (sslength aa_1)) =>선택된 텍스트의 숫자
(SETQ a_1 (SSNAME AA_1 0)) =>선택된 텍스트의를 순차적으로 나누기위해
(SETQ B_1 (ENTGET A_1)) =>선택딘 텍스트 속성 분리
(SETQ C_1 (CDR (ASSOC 1 B_1))) => 문자열만 따로 뽑아냄.. [PL 12 x 5000]
(setq text1 (atof (substr c_1 4 2)) =>바로윗줄을 PL 12 x 5000중 12만 뽑아냄 (네번째시작되는글부터 2칸더)
text2 (atof (substr c_1 9 4)))=>바로윗줄을 PL 12 x 5000중 5000만 뽑아냄 (9번째시작되는글부터 4칸더)
(setq all (* text1 text2))====================================
atof => 문자열을 숫자로 인식할수 있게끔 사용한 함수
(setq all (* text1 text2))=>그것들을 곱합…
이런식으로써 하나로 붙어있는 텍스트를 나누었거든여..
처음에 12를 9로 바꿨다면 아마도 칸수에 이상에 생겨서 실행에 애러가 나는것 같습니다
위에 말씀드린 부분을 약간 수정해 사용하시면 될꺼같으네..
칸수 계산만 잘 하신다면 님께서 충분히 수정 사용가능할꺼란 생각이 드네여..
그럼 꼭 성공하시길..
성공했슴다.
감사함다.