Đến nội dung


Hình ảnh
- - - - -

Lisp copy text, giá trị text thay đổi theo chênh cao các vị trí bắt điểm


  • Please log in to reply
16 replies to this topic

#1 Euler

Euler

    biết vẽ line

  • Members
  • PipPip
  • 20 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 26 July 2013 - 02:50 PM

- Em có bài toán như sau: Điểm A có số liệu cao độ biết trước là a, điểm B chưa có số liệu cao độ (cao độ cần tìm là B). Lấy 2 điểm A và B làm 2 vị trí bắt điểm khi copy. Câu hỏi là:  Copy text b=a+B-A (B-A: là chênh cao độ 2 vị trí bắt điểm A,B)

- Em nhờ các anh viết giúp em lisp để giải quyết bài toán trên. Thanks!!!


  • 0

#2 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 26 July 2013 - 03:03 PM

Bản vẽ minh họa?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#3 Euler

Euler

    biết vẽ line

  • Members
  • PipPip
  • 20 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 26 July 2013 - 05:54 PM

Bản vẽ đây anh Doan Van Hoa:    https://mega.co.nz/#...G4d4t9J7blB5-O8

 

 
 
 

  • 0

#4 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 26 July 2013 - 10:12 PM

Không down load được nên chịu. File dwg thì cứ post trực tiếp lên Cviệt cho nhẹ nhàng.


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#5 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 26 July 2013 - 10:15 PM

101306_20130726_220608.png

Bài toán của bạn chưa rõ ràng, trên hình vẽ có tới hai điểm A, giả thiết một là A, một là B, cách nhau theo bạn nói là 10 đơn vị theo phương đứng, nhưng còn phương ngang thì sao, biết lấy giá trị như thế nào. Nôm na mình tạm hiểu yêu cầu của bạn là

  1. Bước 1: Chọn điểm pA (setq pA (getpoint "\nChọn điểm A"))
  2. Bước 2: Chọn điểm pB (setq pB (getpoint "\nChọn điểm B"))
  3. Bước 3: Chọn Text của điểm A(hoặc nhập từ bàn phím) :     (setq textA (cdr(assoc 1 (entget(car (entsel "\nChọn text cao độ A"))))))
  4. Tính ra TextB = (pA-pB) + textA 

Nhưng khó khăn của mình là

  1. (pA-pB) lấy dấu như thế nào trị tuyệt đối hay luôn là pA-pB, và lấy xA-xB , hay yA-yB, hay là khoảng cách A,B
  2. có cần tỷ lệ bản vẽ không

File quick lại cho bác Hà

http://www.cadviet.c...v_trí_bt_im.dwg


  • 0

#6 Euler

Euler

    biết vẽ line

  • Members
  • PipPip
  • 20 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 28 July 2013 - 08:00 PM

- Ặc. Em vội quá lên chưa đặt câu hỏi hoàn chỉnh. Em ắp lại nè. https://mega.co.nz/#...ddFHRmo1WhLCB0M

- Các anh giúp em với. Thanks

- Anh quansla: Lisp của em cần mà làm được theo thứ tự là:  Lệnh -> Chọn cao độ (giả định=10đv) điểm A (a) -> Chọn bắt điểm 1 là điểm A -> chọn bắt điểm 2 là điểm B -> Chọn vị trí ghi giá trị text được tính là b (Lúc này, yêu cầu của bài toán là: b=a+XB-XA); Với XA,XB là số liệu tọa độ trong hệ tọa độ Đề các. 


  • 0

#7 TaiNguyen79

TaiNguyen79

    biết vẽ ellipse

  • Members
  • PipPip
  • 51 Bài viết
Điểm đánh giá: 24 (tàm tạm)

Đã gửi 28 July 2013 - 09:52 PM

- Ặc. Em vội quá lên chưa đặt câu hỏi hoàn chỉnh. Em ắp lại nè. https://mega.co.nz/#...ddFHRmo1WhLCB0M
- Các anh giúp em với. Thanks
- Anh quansla: Lisp của em cần mà làm được theo thứ tự là:  Lệnh -> Chọn cao độ (giả định=10đv) điểm A (a) -> Chọn bắt điểm 1 là điểm A -> chọn bắt điểm 2 là điểm B -> Chọn vị trí ghi giá trị text được tính là b (Lúc này, yêu cầu của bài toán là: b=a+XB-XA); Với XA,XB là số liệu tọa độ trong hệ tọa độ Đề các.

Như vầy đc không ?

(defun c:chcao (/ ha hb chon p1 p2 p3 T1)
(if (null (setq ha (getreal "\n Nhap cao do diem A :")))
(while (or (null (setq te1 (car (entsel "\n Chon Text <Cao do diem A>: ")))) (/= "TEXT" (cdr (assoc 0 (entget te1))))
(null (setq ha (distof (cdr (assoc 1 (entget te1)))))))));while
(initget 1) (setq p1 (getpoint "\nVi tri diem A :"))
(initget 1) (setq p2 (getpoint p1 "\nVi tri diem B :"))
(setq hb (+ ha (- (nth 1 p2) (nth 1 p1))))
(if (setq p3 (getpoint "\nChon vi tri dat ket qua :"))
(progn
(setq T1 (nentselp p3))
(if (or (null T1) (/= "TEXT" (cdr (assoc 0 (entget (car T1))))))
(entmake (list (cons 0 "TEXT") (cons 100 "AcDbEntity") (cons 100 "AcDbText") (list 10 (nth 0 p3) (nth 1 p3) 0.0)
(cons 40 1.0)(cons 1 (rtos hb 2 2))))
(entmod (subst (cons 1 (rtos hb 2 2)) (assoc 1 (entget (car T1))) (entget (car T1))))))
(princ (strcat "chenh cao can tim :" (rtos hb 2 2))))
(princ))

  • 1

#8 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 28 July 2013 - 10:22 PM

Gửi bạn

 
(defun c:caodo (/ ANG ENTA ENTB KC PA PB TEXTA TEXTB DAUTP POS TEXTSTR)
  (if (and (setq textA (ssname (ssget '((0 . "*TEXT"))) 0 ))
  (setq pA (getpoint "\nChon diem A\t")))
    (progn      
      (setq entA (entget TextA)
   Textstr (cdr(assoc 1 entA))
   pos (cond ( (vl-string-search "." Textstr))( 1))
   kc (distance pA (cdr (assoc 10 entA)))
   ang (angle pA (cdr (assoc 10 entA))))
      (setq dauTP ( - (strlen Textstr) pos 1))
      ;(setq dauTP 3);;;;-----Co the sua lai dau thap phan o day
      (while (setq pB (Getpoint "\nChon diem B"))
(if (= (type pB) 'LIST)
 (progn
   (setq textB (+ (atof(cdr(assoc 1 entA))) (- (car pB) (car pA))))
   (command "copy" TextA "" pA pB)
   (setq entB (entget(entlast)))
   (progn
     (setq entB (subst (cons 10 (polar pB ang kc)) (assoc 10 entB) entB))
     (setq entB (subst (cons 11 (polar pB ang kc)) (assoc 11 entB) entB))
     (setq entB (subst (cons 1 (rtos TextB 2 dauTP)) (assoc 1 entB) entB))
     (entmod entB)
     )
 nil
 )))
      );end progn
    );end if
  (princ)
  )

lisp lấy chữ số thập phân giống như TextA chọn, Ví dụ TextA chọn là 20.00 thì các số tiếp theo sẽ là 20.01 26.33 27.00 .....
Còn nếu TextA là 20 thì tiếp theo sẽ là 21 23 49 50 ....100,,,,,
  • 1

#9 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 28 July 2013 - 10:27 PM

Gửi bạn

lisp lấy chữ số thập phân giống như TextA chọn, Ví dụ TextA chọn là 20.00 thì các số tiếp theo sẽ là 20.01 26.33 27.00 .....
Còn nếu TextA là 20 thì tiếp theo sẽ là 21 23 49 50 ....100,,,,,

ặc mình cũng nhanh nhảu quá, bạn yêu là chọn vị trí đặt điểm chèn TextB cơ mà nhỉ, lisp của mình thì lại tự lấy luôn vị trí rồi
Sửa không khó nhưng bạn muốn vị trí này tự động căn ngang hàng với TextA không/
Nếu không thì sẽ thế này

(defun c:thu ()
(prompt "\nChon TextA")(princ)
(if (and (setq textA (ssname (ssget '((0 . "*TEXT"))) 0 ))
(setq pA (getpoint "\nChon diem A\t")))
(progn
(setq entA (entget TextA)
Textstr (cdr(assoc 1 entA))
pos (cond ( (vl-string-search "." Textstr))( 1)))
(setq dauTP ( - (strlen Textstr) pos 1))
;(setq dauTP 3);;;;-----Co the sua lai dau thap phan o day
(while (setq pB (Getpoint "\nChon diem B"))
(setq dchen (getpoint "\nChon diem chen TextB"))
(setq textB (+ (atof(cdr(assoc 1 entA))) (- (car pB) (car pA))))
(entmake (list
(cons 0 "TEXT")
(cons 10 dchen)
(cons 11 dchen)
(assoc 40 entA)
(cons 1 (rtos TextB 2 dauTP))
))
)
)
)
(princ)
)

  • 2

#10 Euler

Euler

    biết vẽ line

  • Members
  • PipPip
  • 20 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 29 July 2013 - 09:13 AM

- Cảm ơn anh quansla. Em làm được rồi. Nhưng a có thể sửa thêm: Vị trí đặt text B là text có đã sẵn giúp em được không?

- Anh có thể làm lisp như vậy, nhưng với YA-YB được không a? Vị trí đặt text B là text đã có sẵn a nhé . Thanks!!!


  • 0

#11 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 29 July 2013 - 11:54 AM

- Cảm ơn anh quansla. Em làm được rồi. Nhưng a có thể sửa thêm: Vị trí đặt text B là text có đã sẵn giúp em được không?
- Anh có thể làm lisp như vậy, nhưng với YA-YB được không a? Vị trí đặt text B là text đã có sẵn a nhé . Thanks!!!

Của bạn đây
Tên lệnh CaodoX và CaodoY (tương ứng là trừ xB-xA và yB-yA)
sử dụng

  • Bước 1 : chọn TextA và vị trí tương ứng của A
  • Bước 2: Chọn vị trí B và có hai lựa chọn: chọn trực tiếp 1 Text có sẵn để "EDDIT" về giá trị tính được hoặc Enter (/ phím "Space") để lựa chọn điểm chèn TextB
  • Lặp lại bước 2 nếu chưa Enter(hoặc Space) kết thúc lệnh

http://www.cadviet.c...306_viet_ho.lsp


(defun c:caodoX (/ DAUTP DCHEN ENTA ENTB PA PB POS TEXTA TEXTASTR TEXTB TEXTBSTR)
(vl-load-com)
(prompt "\nChon TextA")(princ)
(if (and (setq textA (ssname (ssget '((0 . "*TEXT"))) 0 ))
(setq pA (getpoint "\nChon diem A\t")))
(progn
(setq entA (entget TextA)
TextAstr (cdr(assoc 1 entA))
pos (cond ( (vl-string-search "." TextAstr))( 1)))
(setq dauTP ( - (strlen TextAstr) pos 1))
;(setq dauTP 3);;;;-----Co the sua lai dau thap phan o day
(while (setq pB (Getpoint "\nCHON DIEM B"))
(initget "P")
(setq textBstr (+ (atof(cdr(assoc 1 entA))) (- (car pB) (car pA))))
(prompt "\nChon TextB")
(if (setq TextB (entsel"\nChon TextB<or Enter de chon diem chen TextB>"))
(progn
(setq entB (entget(car TextB)))
(entmod(subst (cons 1 (rtos textBstr 2 dauTP))(assoc 1 entB) entB)))
(progn
(setq dchen (getpoint "\nChon diem chen TextB>"))
(entmake (list
(cons 0 "TEXT")
(cons 10 dchen)
(cons 11 dchen)
(assoc 40 entA)
(cons 1 (rtos textBstr 2 dauTP))
))
)
)
)
)
nil
)
(princ)
)



(defun c:caodoY (/ DAUTP DCHEN ENTA ENTB PA PB POS TEXTA TEXTASTR TEXTB TEXTBSTR)
(vl-load-com)
(prompt "\nChon TextA")(princ)
(if (and (setq textA (ssname (ssget '((0 . "*TEXT"))) 0 ))
(setq pA (getpoint "\nChon diem A\t")))
(progn
(setq entA (entget TextA)
TextAstr (cdr(assoc 1 entA))
pos (cond ( (vl-string-search "." TextAstr))( 1)))
(setq dauTP ( - (strlen TextAstr) pos 1))
;(setq dauTP 3);;;;-----Co the sua lai dau thap phan o day
(while (setq pB (Getpoint "\nCHON DIEM B"))
(initget "P")
(setq textBstr (+ (atof(cdr(assoc 1 entA))) (- (cadr pB) (cadr pA))))
(prompt "\nChon TextB")
(if (setq TextB (entsel"\nChon TextB<or Enter de chon diem chen TextB>"))
(progn
(setq entB (entget(car TextB)))
(entmod(subst (cons 1 (rtos textBstr 2 dauTP))(assoc 1 entB) entB)))
(progn
(setq dchen (getpoint "\nChon diem chen TextB>"))
(entmake (list
(cons 0 "TEXT")
(cons 10 dchen)
(cons 11 dchen)
(assoc 40 entA)
(cons 1 (rtos textBstr 2 dauTP))
))
)
)
)
)
nil
)
(princ)
)
 


Bài viết đã được chỉnh sửa nội dung bởi quansla: 29 July 2013 - 11:57 AM

  • 3

#12 bach1212

bach1212

    biết lệnh trim

  • Members
  • PipPipPip
  • 190 Bài viết
Điểm đánh giá: 5 (bình thường)

Đã gửi 29 July 2013 - 02:18 PM

Dùng lisp này xem
 

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.c...pic=12103&st=20
(defun c:dcs(/ tlv blm blname dmo cdm cd dm cdmi dmoc bl)
(setvar "attreq" 1)
(setvar "cmdecho" 0)
(setq oldim (getvar "DimZin"))
(setvar "Dimzin" 0)
(setq tlv (/ 1 (getreal "\n Nhap ti le ve : 1/")))
(setq bl (car(entsel "\n Pick chon Block mau / Text mau :")))
(setq blm (entget bl))
(setq dmo (getpoint "\n Pick diem moc : "))

(setq cdm (getreal "\n Nhap cao do cua diem moc \ Enter pick text cao do : "))
(if (null cdm) (setq cdm (atof (cdr(assoc 1 (entget(car (entsel "pick text cao do : ")))))))  )
(if cdm (progn
(if (= cdm 0) (setq cd (strcat "%%p" (rtos cdm 2 2))))
(if (> cdm 0) (setq cd (strcat "+" (rtos cdm 2 2))))
(if (< cdm 0) (setq cd (rtos cdm 2 2)))
(setq dmoc dmo)
(while (setq dm (getpoint dmoc "\n Pick diem tiep theo :"))
(if (> (cadr dm) (cadr dmo))  (setq cdmi (+ (* (- (cadr dm) (cadr dmo)) tlv) cdm) ) )
(if (<= (cadr dm) (cadr dmo))  (setq cdmi (- cdm (* (- (cadr dmo) (cadr dm)) tlv) ) ) )
(if (= cdmi 0) (setq cdi (strcat "%%p" (rtos cdmi 2 2))))
(if (> cdmi 0) (setq cdi (strcat "+" (rtos cdmi 2 2))))
(if (< cdmi 0) (setq cdi (rtos cdmi 2 2)))
(command "copy" bl "" "_non" (cdr(assoc 10 blm)) "_non" dm)
(if (and (wcmatch (cdr(assoc 0 (entget (entlast)))) "INSERT") (= (cdr(assoc 66 (entget (entlast)))) 1))
 	(setq el (entget (entnext (entlast)) )))
(if (wcmatch (cdr(assoc 0 (entget (entlast)))) "TEXT") (setq el (entget (entlast))) )
(entmod (subst (cons 1 cdi) (assoc 1 el) el))
(setq dmoc dm)
)
(setvar "Dimzin" oldim)
))
(princ)
)



  • 3

Một môn tập luyện mang lại vô vàn lợi ích sức khỏe cho mọi người, nhiều bệnh tật nan y đều được chữa khỏi, hoàn toàn miễn phí. Hiệu quả chữa khỏi bệnh tật của nó lên đến hơn 90%.
Tài liệu tại đây: http://phapluan.org/

Rất vui được làm quen với mọi người trên facebook:
https://www.facebook...67946371&type=1

 

 


#13 Euler

Euler

    biết vẽ line

  • Members
  • PipPip
  • 20 Bài viết
Điểm đánh giá: -2 (bình thường)

Đã gửi 29 July 2013 - 03:31 PM

Xin cảm ơn các anh rất nhiều. Em đã làm được rồi


  • 1

#14 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 5448 Bài viết
Điểm đánh giá: 2624 (tuyệt vời)

Đã gửi 29 July 2013 - 03:36 PM

Xin cảm ơn các anh rất nhiều. Em đã làm được rồi

Hàng loạt sự giúp đỡ mà sao bạn không "like" cho họ nhỉ?


  • 0

* Chỉ nên yêu cầu Lisp khi bạn làm việc đó mất cả ngày nhưng họ chỉ viết 1 giờ. Đừng nêu yêu cầu Lisp khi bạn chỉ làm 1 giờ nhưng bắt họ phải mất cả ngày.

* Nhờ viết lisp cũng như đi khám bệnh. Chỉ gởi căn cước và than sắp chết thì không bác sỹ nào cứu sống được.


#15 chien_lv

chien_lv

    biết vẽ rectang

  • Members
  • PipPip
  • 89 Bài viết
Điểm đánh giá: -9 (bình thường)

Đã gửi 25 May 2016 - 02:05 PM

Của bạn đây
Tên lệnh CaodoX và CaodoY (tương ứng là trừ xB-xA và yB-yA)
sử dụng

  • Bước 1 : chọn TextA và vị trí tương ứng của A
  • Bước 2: Chọn vị trí B và có hai lựa chọn: chọn trực tiếp 1 Text có sẵn để "EDDIT" về giá trị tính được hoặc Enter (/ phím "Space") để lựa chọn điểm chèn TextB
  • Lặp lại bước 2 nếu chưa Enter(hoặc Space) kết thúc lệnh

http://www.cadviet.c...306_viet_ho.lsp


(defun c:caodoX (/ DAUTP DCHEN ENTA ENTB PA PB POS TEXTA TEXTASTR TEXTB TEXTBSTR)
(vl-load-com)
(prompt "\nChon TextA")(princ)
(if (and (setq textA (ssname (ssget '((0 . "*TEXT"))) 0 ))
(setq pA (getpoint "\nChon diem A\t")))
(progn
(setq entA (entget TextA)
TextAstr (cdr(assoc 1 entA))
pos (cond ( (vl-string-search "." TextAstr))( 1)))
(setq dauTP ( - (strlen TextAstr) pos 1))
;(setq dauTP 3);;;;-----Co the sua lai dau thap phan o day
(while (setq pB (Getpoint "\nCHON DIEM B"))
(initget "P")
(setq textBstr (+ (atof(cdr(assoc 1 entA))) (- (car pB) (car pA))))
(prompt "\nChon TextB")
(if (setq TextB (entsel"\nChon TextB<or Enter de chon diem chen TextB>"))
(progn
(setq entB (entget(car TextB)))
(entmod(subst (cons 1 (rtos textBstr 2 dauTP))(assoc 1 entB) entB)))
(progn
(setq dchen (getpoint "\nChon diem chen TextB>"))
(entmake (list
(cons 0 "TEXT")
(cons 10 dchen)
(cons 11 dchen)
(assoc 40 entA)
(cons 1 (rtos textBstr 2 dauTP))
))
)
)
)
)
nil
)
(princ)
)



(defun c:caodoY (/ DAUTP DCHEN ENTA ENTB PA PB POS TEXTA TEXTASTR TEXTB TEXTBSTR)
(vl-load-com)
(prompt "\nChon TextA")(princ)
(if (and (setq textA (ssname (ssget '((0 . "*TEXT"))) 0 ))
(setq pA (getpoint "\nChon diem A\t")))
(progn
(setq entA (entget TextA)
TextAstr (cdr(assoc 1 entA))
pos (cond ( (vl-string-search "." TextAstr))( 1)))
(setq dauTP ( - (strlen TextAstr) pos 1))
;(setq dauTP 3);;;;-----Co the sua lai dau thap phan o day
(while (setq pB (Getpoint "\nCHON DIEM B"))
(initget "P")
(setq textBstr (+ (atof(cdr(assoc 1 entA))) (- (cadr pB) (cadr pA))))
(prompt "\nChon TextB")
(if (setq TextB (entsel"\nChon TextB<or Enter de chon diem chen TextB>"))
(progn
(setq entB (entget(car TextB)))
(entmod(subst (cons 1 (rtos textBstr 2 dauTP))(assoc 1 entB) entB)))
(progn
(setq dchen (getpoint "\nChon diem chen TextB>"))
(entmake (list
(cons 0 "TEXT")
(cons 10 dchen)
(cons 11 dchen)
(assoc 40 entA)
(cons 1 (rtos textBstr 2 dauTP))
))
)
)
)
)
nil
)
(princ)
)
 

 Ban ơi cho mình hỏi, nếu trong trường hợp Text A được chọn mình muốn lấy cả số lẽ phần đằng sau thì làm thế nào, ví dụ A=21.1245 hàm của mình khi dùng a mới là 21.000 còn muốn lấy đúng số 21.1245 thì làm thế nào?


  • -1

#16 quansla

quansla

    biết lệnh xclip

  • Members
  • PipPipPipPipPipPipPip
  • 642 Bài viết
Điểm đánh giá: 224 (khá)

Đã gửi 25 May 2016 - 03:42 PM

Mình không còn nhớ rõ cả bài này làm khi nào nữa, nhưng giờ mình chưa sửa được, nếu tối, mai rảnh mới có thể, còn nghiên cứu lại yêu cầu, nội dung nữa, hix
ai có thể giúp sửa code cho bạn, xin sửa giúp trước
  • 0

#17 chien_lv

chien_lv

    biết vẽ rectang

  • Members
  • PipPip
  • 89 Bài viết
Điểm đánh giá: -9 (bình thường)

Đã gửi 27 May 2016 - 10:32 PM

Mình không còn nhớ rõ cả bài này làm khi nào nữa, nhưng giờ mình chưa sửa được, nếu tối, mai rảnh mới có thể, còn nghiên cứu lại yêu cầu, nội dung nữa, hix
ai có thể giúp sửa code cho bạn, xin sửa giúp trước

Mình xin trình bày ngắn gọn để bạn có thể hình dung ra câu chuyện nhé. Lisp đó bạn viết gõ lệnh "caodoy" chọn text  (cao độ đầu)  chọn điểm A (điểm gốc) chọn điểm B (điểm thứ 2) chọn text có sẵn để ghi text. Hiện nay nếu text A mà là số chẵn ví dụ 20.000 thì ok nhưng nếu là số lẻ ví dụ 20.125 thì giá trị chỉ nhận 20.000 mình đoán là hàm nào đó chỉ chọn số nguyên nên mới không nhận giá trị đằng sau. 


  • 0