Đến nội dung


Hình ảnh
* * * - - 17 Bình chọn

Hỏi về Lisp (thuật toán, ý tưởng, coding,...)


  • Please log in to reply
2854 replies to this topic

#1541 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 02 April 2013 - 03:02 PM

Lee viết hàm này khá giống hàm ssget, chỉ thiếu mỗi hiệu ứng đồ họa nữa là y chang. Việc thêm Method mới cũng đơn giản.

 

Nhưng có một điều làm mình tò mò: Nếu đây là code hoàn thiện thì anh chàng này viết nó làm gì nhỉ? bởi vì nó làm công việc y hệt hàm ssget. Thậm chí còn thiếu 1 vài Method như Fence, WPolygon, CPolygon so với ssget.

 

@Skywings: Mình đã thử rồi và có thể khẳng định chắn chắn là không được vì hàm callback của reactor không chấp nhận chứa bất cứ hàm chờ nhập dữ liệu nào bên trong nó. Đây là quy định hơi khó hiểu của reactor.


  • 0

#1542 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 02 April 2013 - 05:42 PM

Câu trả lời ở đầu hàm, phần chú thích bạn ạ


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#1543 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 02 April 2013 - 09:00 PM

"aligned to the active UCS"

Mình thực sự chưa hiểu rõ định nghĩa này. Nó ứng dụng trong trường hợp nào nhỉ?


  • 0

#1544 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5685 Bài viết
Điểm đánh giá: 2606 (tuyệt vời)

Đã gửi 02 April 2013 - 10:01 PM

(Bạn hãy test khi ) Trục nghiêng. Đây cũng là một lisp ngày xưa có bạn yêu cầu muốn chọn đt theo một hcn isometric


  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#1545 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 05 April 2013 - 02:34 PM

Mình vừa nghĩ ra 1 ý tưởng mới cho yêu cầu rẽ nhánh khi select đối tượng bằng ssget: Thay vì rẽ nhánh bằng 1 phím nào đó trên bàn phím thì ta rẽ nhánh bằng việc click chuột phải. mình triển khai ý tưởng đó bằng hàm con dưới đây, post để các bạn có nhu cầu tham khảo

 

(defun ssget-rightclick (filter functions / ss reactor Callback-RightClick option)
 (if (setq ss (ssget "I" filter)) ss
  (progn
   (setq reactor (vlr-mouse-reactor nil '((:vlr-BeginRightClick . Callback-RightClick))))
   (defun Callback-RightClick (reactor point) (setq option T))
   (setq ss (ssget filter))
   (vlr-remove reactor)
   (if ss ss    
    (if option
     (progn
      (eval functions)
      (ssget-rightclick filter functions)))))))
 

Phuơng pháp này có ưu điểm:

- Ngắn gọn hơn (so với của Lee Mac)

- Bảo lưu hoàn toàn mọi đặc tính của hàm ssget bởi nó vẫn là ssget (của Lee là viết lại 1 hàm giống ssget)

- Rẽ nhánh bằng chuột phải nhanh và tiện hơn so với nhập phím.

- Và hoàn toàn không có nhược điểm. hihi

 

Test: (ssget-rightclick '((0 . "TEXT")) '(alert "ban vua kich chuot phai"))


  • 3

#1546 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 05 April 2013 - 03:19 PM

Cái này chỉ rẽ nhánh khi chưa có đối tượng nào được chọn, phải không bạn TL ơi?


  • 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.


#1547 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 05 April 2013 - 03:59 PM

 Nếu muốn rẽ nhánh khi đã chọn đối tượng thì cũng được. chỉ cần sửa code 1 chút. Mình nghĩ điều đó hoàn toàn nằm trong khả năng của bạn


  • 0

#1548 hochoaivandot

hochoaivandot

    biết dimradius

  • Members
  • PipPipPipPipPip
  • 310 Bài viết
Điểm đánh giá: 107 (tàm tạm)

Đã gửi 09 April 2013 - 08:54 AM

Trong hộp thoại mình có 2 edit_box và OK_cancel.

Mình muốn khi xuất hiệp hộp thoại, con trỏ sẽ xuất hiện trực tiếp trong edit_box thứ 2.

Sau khi nhập giá trị cho edit_box 2 này, mình enter sẽ nhận OK luôn.

 

Muốn nhập xong edit_box và OK thì nhận chạy luôn (vì OK đã default) thì mình dùng allow_accept cho edit_box.

Nhưng vấn đề khi hộp thoại xuất hiện, con trỏ đang trong edit_box thứ 2 mình không biết làm  thế nao.

 

Hỏi dài dòng khó hiểu quá phải không các bác!


  • 0

Dương Bá Diệp

 

www.cadonline.duyxuyen.vn 

 

Thành viên nhóm CADMAGIC

 


#1549 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 09 April 2013 - 09:15 AM

(mode_tile "key_of_edit_box_2" 2)

Chú ý: màu đỏ có các giá trị: 0, 1, 2, 3, 4. Tùy theo bạn thích kiểu gì.


  • 1

* 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.


#1550 tientracdia

tientracdia

    biết lệnh scale

  • Members
  • PipPipPip
  • 147 Bài viết
Điểm đánh giá: -11 (hơi kém)

Đã gửi 11 April 2013 - 02:02 PM

Xin nhờ các anh giúp hiệu chỉnh Vẽ nhà qua 3 điểm và vẽ tạo tiếp kí hiệu mái ngói.

Lisp mình sưu tầm được thì vẽ như sau p1,p2,p3, tụ chọn p4. sau đó xác định p5 và p6 vẽ đường thẳng p5, p6 theo hướng giữa p2 và p3. Vẽ kí hiệu ngóc từ p1,p5.p3 và p3,p6,p4

ý mình muốn đường đỉnh nóc theo hướng p1 và p2 và nối theo chiều p1,p5,p4 và p2, p6,p3.  nối p5,p6

(while (/= pta nil)
		(command "undo" "begin")
		(command "color" 1 "circle" pta 1)
		(setq ss1 (ssget "L") ss (ssadd) ss (ssadd (ssname ss1 0) ss))
		(setvar "cecolor" colast)
		(setq ptb (getpoint (strcat "\n pick diem thu 2") pta))
		(command "color" 2 "circle" ptb 1)
		(setq ss2 (ssget "L") ss (ssadd (ssname ss2 0) ss))
		(setvar "cecolor" colast)
		(setq ptc (getpoint (strcat "\n pick diem thu 3") ptb))
		(command "color" 3 "circle" ptc 1)
		(setq ss3 (ssget "L") ss (ssadd (ssname ss3 0) ss))
		(setvar "cecolor" colast)
		(setq L1 (distance pta ptb) L2 (distance ptb ptc))
		(setq ptd (polar pta (angle ptb ptc) L2))
		(if (> L2 L1)
		(setq pt1 pta pt2 ptb pt3 ptc)
		(setq pt1 ptd pt2 pta pt3 ptb))
		(setq L1 (distance pt1 pt2) L2 (distance pt2 pt3))
		(setq goc1 (angle pt1 pt2))
		(setq goc2 (angle pt2 pt3))
		(setq pt4 (polar pt1 goc2 L2))
		;; THAY GOC VE
		(setq pt5 (polar pt1 (- goc1 (/ pi 6)) (/ L1 2 (cos (/ pi 6)))))
		(setq pt6 (polar pt3 (+ goc2 (/ pi 3)) (/ L1 -2 (cos (/ pi 6)))))
		;(setq pt5 (polar pt1 (- goc1 (/ pi 7.2)) (/ L1 2 (cos (/ pi 7.2)))))
		;(setq pt6 (polar pt3 (+ goc2 (/ pi 2.769)) (/ L1 -2 (cos (/ pi 7.2)))))
		;(setq pt5 (polar pt1 (- goc1 (/ pi 7.2)) (/ L1 2 (cos (/ pi 7.2)))))
		;(setq pt6 (polar pt3 (+ goc2 (/ pi 2.769)) (/ L1 -2 (cos (/ pi 7.2)))))
		(setq pt7 (polar pt5 goc2 (/ (distance pt5 pt6) 2)))

(setq nha (cond (nha) ("Ngoi")))
(initget "Ngoi Tang")
(setq Tmp1 (strcat "\nNha mai ngoi hay nha tang [Ngoi/Tang] <" nha ">: ") nha (cond ((getkword Tmp1)) (nha)))
(if (not (tblsearch "layer" "NHATOANDAC"))
(command "-layer" "N" "NHATOANDAC" "S" "NHATOANDAC" "color" 7 "" "")
(command "Clayer" "NHATOANDAC"))

(if (eq Nha "Ngoi")
(progn
(Command "color" bylayer "osmode" 0 "pline" pt1 pt2 pt3 pt4 pt1 "")
(if (not (tblsearch "layer" "layer1"))
	(command "-layer" "N" "layer1" "S" "layer1" "color" 8 "" "")
	(command "Clayer" "layer1"));if
	(command "pline" pt1 pt5 pt4 "")
	(command "pline" pt5 pt6 "")
	(command "pline" pt2 pt6 pt3 "")
	(command "osmode" 109)
(setq i1 (1+ i1))
(setvar "cecolor" colast)
(command "erase" ss "")
(command "undo" "end")
);progn

Nội dung Lisp này ở đây

http://www.cadviet.c...u-phan-2/page-5

Rất mong được giúp đỡ. Cám ơn


  • 0

#1551 Skywings

Skywings

    biết lệnh erase

  • Members
  • PipPipPip
  • 102 Bài viết
Điểm đánh giá: 46 (tàm tạm)

Đã gửi 13 April 2013 - 09:37 AM

Ssget rẽ nhánh Lee viết rồi, vác về xào thôi (code hơi dài nhé).

 

Mình tìm được hàm select rẽ nhánh cũng do Lee viết rất hay và ngắn gọn, các bác tham khảo nhé

 


;;---------------------=={ Select if }==----------------------;;
;; ;;
;; Provides continuous selection prompts until either a ;;
;; predicate function is validated or a keyword is supplied. ;;
;;------------------------------------------------------------;;
;; Author: Lee Mac, Copyright © 2011 - www.lee-mac.com ;;
;;------------------------------------------------------------;;
;; Arguments: ;;
;; msg - prompt string ;;
;; pred - optional predicate function [selection list arg] ;;
;; func - selection function to invoke ;;
;; keyw - optional initget argument list ;;
;;------------------------------------------------------------;;
;; Returns: Entity selection list, keyword, or nil ;;
;;------------------------------------------------------------;;

(defun LM:SelectIf ( msg pred func keyw / sel ) (setq pred (eval pred))
(while
(progn (setvar 'ERRNO 0) (if keyw (apply 'initget keyw)) (setq sel (func msg))
(cond
( (= 7 (getvar 'ERRNO))
(princ "\nMissed, Try again.")
)
( (eq 'STR (type sel))
nil
)
( (vl-consp sel)
(if (and pred (not (pred sel)))
(princ "\nInvalid Object Selected.")
)
)
)
)
)
sel
)
(defun c:test1 ( / entity )
  (if
    (setq entity
      (car
        (LM:SelectIf "\nSelect a Line: "
          (lambda ( x ) (eq "LINE" (cdr (assoc 0 (entget (car x)))))) entsel nil
        )
      )
    )
    (princ (strcat "\nHandle of Selected Line: " (cdr (assoc 5 (entget entity)))))
  )
  (princ)
)
(defun c:test2 ( / select pt )
  (if
    (and
      (setq select
        (LM:SelectIf "\nSelect Circle [Point]: "
          (lambda ( x ) (eq "CIRCLE" (cdr (assoc 0 (entget (car x)))))) entsel '("Point")
        )
      )
      (or
        (and
          (listp select) (setq pt (cdr (assoc 10 (entget (car select)))))
        )
        (setq pt (getpoint "\nSpecify Point: "))
      )
    )
    (princ (apply 'strcat (mapcar 'strcat '("\nPoint: " "," ",") (mapcar 'rtos pt))))
  )
  (princ)
)


  • 0

#1552 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 13 April 2013 - 11:32 AM

Hàm này không có cho multiselect bạn ạ. Mình không hiểu lắm ý đồ của Lee khi viết hàm này. Bởi nếu để rẽ nhánh cho việc pick chọn thì sử dụng grread đơn giản hơn, viết dễ hơn và tùy biến cũng dễ hơn, hoặc đơn giản hơn nữa là dùng initget nếu chỉ có nhu cầu rẽ nhánh bằng keyboard.

 

Mình đính chính lại ý của bạn Tue_NV ở trang trước: Initget vẫn có tác dụng với các hàm entsel và nentsel nhé, bạn đọc trong help developer sẽ rõ.


  • 0

#1553 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 13 April 2013 - 12:02 PM

Hàm trên LM viết để chọn 1 đối tượng theo điều kiện lọc nào đó, chừng nào chọn được mới dừ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.


#1554 ThuyLinh313

ThuyLinh313

    biết lệnh mtext

  • Members
  • PipPipPipPip
  • 288 Bài viết
Điểm đánh giá: 142 (tàm tạm)

Đã gửi 16 April 2013 - 04:02 PM

Mình đang cần gấp 1 hàm có chức năng tìm trong 1 đoạn string các đoạn là integer để chuyển chúng về real.

ví dụ: "a2b3.1c5" chuyển thành "a2.0b3.1c5.0"

Do đang cần gấp mà mình bận quá không có thời gian mò mẫm nên đành cầu cứu các bạn. Bạn nào đã từng viết hàm như thế này rồi vui lòng cho mình xin. Cảm ơn các bạn!


  • 0

#1555 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 16 April 2013 - 07:03 PM

Lisp của bạn đây

(defun kk(a / b i j)
  (setq i 1)
  (while (<= i (strlen a))
    (setq j 1)
    (while (<= j (- (1+ (strlen a)) i))
      (setq b(substr a i j))
      (if (and (= (vl-string-search "." b) nil)
	       (= (vl-string-search (strcat b ".") a) nil)
	       (= (vl-string-search (strcat "." b) a) nil))
	(if (= (read b) (atof b))
	  (setq a(strcat (substr a 1 (1+ (vl-string-search b a))) ".0" (substr a (1+ (1+ (vl-string-search b a))) )))
	  )
	)
      (setq j(1+ j))
      )
    (setq i (1+ i))
    )
  (princ a)
  (princ)
  )

  • 1

#1556 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 16 April 2013 - 07:27 PM

Không ổn đâu KK ơi. Cái này hy vọng chỉ đúng với integer chỉ gồm 1 chữ số như ví dụ của TL, khi gặp integer có hơn 1 chữ số là bị sai.

VD: (kk "1a2.3b4c56") => 1.0a2.3b4.0c5.06.0

(kk "1a+2.3b4c56")
1.0a+2.3b4.0c5.06.0
 
(kk "1a+2.3b4c56")
1.0a+2.3b4.0c5.06.0
 
(kk "1a+2.3b4c56")
1.0a+2.3b4.0c5.06.0
 
(kk "1a+2.3b4c56")

  • 1

* 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.


#1557 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 16 April 2013 - 11:45 PM

Không ổn đâu KK ơi. Cái này hy vọng chỉ đúng với integer chỉ gồm 1 chữ số như ví dụ của TL, khi gặp integer có hơn 1 chữ số là bị sai.

VD: (kk "1a2.3b4c56") => 1.0a2.3b4.0c5.06.0

Thanks bác Hà đã phát hiện ra lỗi. Cũng tại viết code theo ví dụ của TL nên không phát hiện ra. Đã sửa lại Code mới rồi đây. Các bác Test thử xem còn lỗi ở đâu nữa không.

(defun C:kk ( / i j kt b)
  (setq a "a1.2b23.4c4567f78.5g34984")
  (setq i 1)
  (while (<= i (strlen a))
    (setq j (- (1+ (strlen a)) i))
    (setq kt 0)
    (while (and (= kt 0) (>= j 1))
      (setq b(substr a i j))
      (if (and (= (vl-string-search "." b) nil)
	       (= (vl-string-search (strcat b ".") a) nil)
	       (= (vl-string-search (strcat "." b) a) nil))
	(if (and (= (read b) (atof b)) (= kt 0))
	  (progn
	    (setq a(strcat (substr a 1 (- i 1)) b ".0" (substr a (+ i j)) ))
	    (setq kt 1)
	    (setq i (+ i (strlen b)))
	    )
	  )
	)
      (setq j(1- j))
      )
    (setq i (1+ i))
    )
  (princ a)
  (princ)
  )

  • 1

#1558 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 17 April 2013 - 12:06 AM

Món này thấy dễ xơi nhưng khó nuốt lắm KK ơi! Chắc bạn TL cũng mướt mồ hôi rồi chứ chẳng đơn giản để post lên nhờ với 1 cao thủ như bạn ấy.

Tôi mần từ tối tới giờ, được 90% rồi, mai mần tiếp.

Của bạn còn sai: ví dụ a là "1x1" chẳng hạn.


  • 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.


#1559 KangKung

KangKung

    biết lệnh array

  • Members
  • PipPipPip
  • 189 Bài viết
Điểm đánh giá: 227 (khá)

Đã gửi 17 April 2013 - 01:53 AM

Quá tam ba bận. Hi vọng lần này sẽ hết lỗi

(defun C:kk ( / i j kt b lst item)
  (setq a (getstring "\n Nhap chuoi:"))
  (setq lst(list))
  (setq i 1)
  (while (<= i (strlen a))
    (setq j (- (1+ (strlen a)) i))
    (setq kt 0)
    (while (and (= kt 0) (>= j 1))
      (setq b(substr a i j))
      (if (/= b ".")
	(if (and (= (read b) (atof b)) (/= (vl-string-search "." b) nil))
	  (progn
	    (setq kt 1)
	    (setq i (+ i (strlen b)))
	    )
	  )
	)
      (if (and (= (vl-string-search "." b) nil)
	       (= (vl-string-search (strcat b ".") a) nil)
	       (= (vl-string-search (strcat "." b) a) nil))
	(if (and (= (read b) (atof b)) (= kt 0))
	  (progn
	    (setq lst(append lst (List (list i j b))))
	    (setq kt 1)
	    (setq i (+ i (strlen b)))
	    )
	  )
	)
      (setq j(1- j))
      )
    (setq i (1+ i))
    )
  (setq lst(reverse lst))
  (foreach item lst
  (setq a(strcat (substr a 1 (- (car item) 1)) (caddr item) ".0" (substr a (+ (car item) (cadr item)))))
  )
  (alert a)
  (princ)
  )

  • 2

#1560 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3805 (đỉnh cao)

Đã gửi 17 April 2013 - 06:49 AM

Quá tam ba bận. Hi vọng lần này sẽ hết lỗi

(defun C:kk ( / i j kt b lst item)
  (setq a (getstring "\n Nhap chuoi:"))
  (setq lst(list))
  (setq i 1)
  (while (<= i (strlen a))
    (setq j (- (1+ (strlen a)) i))
    (setq kt 0)
    (while (and (= kt 0) (>= j 1))
      (setq b(substr a i j))
      (if (/= b ".")
	(if (and (= (read b) (atof b)) (/= (vl-string-search "." b) nil))
	  (progn
	    (setq kt 1)
	    (setq i (+ i (strlen b)))
	    )
	  )
	)
      (if (and (= (vl-string-search "." b) nil)
	       (= (vl-string-search (strcat b ".") a) nil)
	       (= (vl-string-search (strcat "." b) a) nil))
	(if (and (= (read b) (atof b)) (= kt 0))
	  (progn
	    (setq lst(append lst (List (list i j b))))
	    (setq kt 1)
	    (setq i (+ i (strlen b)))
	    )
	  )
	)
      (setq j(1- j))
      )
    (setq i (1+ i))
    )
  (setq lst(reverse lst))
  (foreach item lst
  (setq a(strcat (substr a 1 (- (car item) 1)) (caddr item) ".0" (substr a (+ (car item) (cadr item)))))
  )
  (alert a)
  (princ)
  )

Còn lỗi :

Ví dụ với string : "(5+6)*3"


  • 1