Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] Lisp cộng - trừ - nhân - chia 2 hàng số cho ra hàng thứ 3


  • Please log in to reply
88 replies to this topic

#81 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 11 July 2011 - 08:49 AM

Mạn phép bác Tue_NV, bạn sửa thế này xem sao:
Thay dòng
(setq *ctnc* (cond (*ctnc*) ("+")))
Bởi dòng
(or *ctnc* (setq *ctnc* +))

Đã thử nhưng không được ?
  • 0

#82 NguyenNgocSon

NguyenNgocSon

    biết dimbaseline

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

Đã gửi 11 July 2011 - 08:52 AM

@NguyenNgocSon: để xuất text kết quả có màu theo ý của bạn thì bạn tìm dòng này: (DXF 40 SSn) 0 "R"(DXF 7 SSn) (DXF 8 SSn) nil nil)
đổi giá trị nil mình đánh dấu đỏ thành mã màu bạn muốn. Ví dụ bạn muốn là màu 3 thì: (DXF 40 SSn) 0 "R"(DXF 7 SSn) (DXF 8 SSn) 3 nil)

@Thaistreetz: Rất cám ơn Thái, mình đã sửa và oke khi chọn điểm ghi kết quả; Cho mình hỏi là muốn đổi màu chữ khi mình chọn ghi kết quả vào text thì sửa ntn ?
Cám ơn !
  • 0

#83 thuphong

thuphong

    biết vẽ circle

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

Đã gửi 11 July 2011 - 03:00 PM

Đã thử nhưng không được ?

Không biết CAD của Bạn có trục trặc gì không, chứ mình thử thay đoạn CODE trong bài 40 của Bác Tue_NV vào CODE trong bài 25, mình vẫn thấy Lisp vẫn chạy và nhớ phép tính trong lần chạy trước đó mà :mellow: . Còn không, bạn thử thêm cách này nữa xem sao: bỏ (xóa) biến "ctnc" trong khai báo biến cục bộ của Code bài số 25
(defun c:cs(/ ss sx ss3 lis1 lis2 lis3 en1 en2 n i ii ptkq nn mm li li1 stp ctnc ctnch shang oldlu)
;Copy right by Tue_NV......
sửa lại thành
(defun c:cs(/ ss sx ss3 lis1 lis2 lis3 en1 en2 n i ii ptkq nn mm li li1 stp ctnch shang oldlu)
;Copy right by Tue_NV......
  • 0

#84 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 11 July 2011 - 04:05 PM

Đã thử nhưng không được ?

Chắc sửa thế này thì được.
http://www.cadviet.c...hang_va_cot.lsp
  • 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.


#85 leejang

leejang

    biết lệnh move

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

Đã gửi 04 August 2011 - 06:26 AM

Chắc sửa thế này thì được.
http://www.cadviet.c...hang_va_cot.lsp

Hiện tại lisp đã xuất kết quả ra 1 hàng(cột) riêng biệt, Nhưng khi dùng chức năng ghi đè kết quả vào hàng ( cột ) khác thì bị lỗi. Mong bác hoàn thiện nốt. Vì lisp này rất hay !
  • 0

#86 htmt234

htmt234

    biết vẽ circle

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

Đã gửi 24 November 2012 - 02:58 PM

Select objects: 1 found

Select objects:

Chon hang-cot text thu 2

Select objects: 1 found

Select objects:
; error: bad argument type: numberp: nil

Lỗi này là lỗi gì vậy các bác, em chỉ nhân 2 số với nhau thôi
Lisp của bác Thaistreetz
  • 0

#87 f4_ars

f4_ars

    Chưa sử dụng CAD

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

Đã gửi 22 July 2013 - 11:31 PM

cho mình xin lisp mà cộng, trừ nhân chia cả 1 hàng hay cột với 1 số cố định ( nhập bằng tay ). Kết quả xuất ra có thể là hàng hay cột mới hoặc chính là hàng hay cột ban đầu có dc k??? xin các bác giúp mình với


  • 0

#88 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 23 July 2013 - 07:05 AM

cho mình xin lisp mà cộng, trừ nhân chia cả 1 hàng hay cột với 1 số cố định ( nhập bằng tay ). Kết quả xuất ra có thể là hàng hay cột mới hoặc chính là hàng hay cột ban đầu có dc k??? xin các bác giúp mình với

Lisp + - * / vào 1 nhóm (hàng/cột) và trả kết quả ngay tại nhóm (hàng/cột) đó.

;; Cong/Tru/Nhan/Chia 1 nhom (hang hoac cot) cho 1 so. Tra ve ket qua ngay tai vi tri cua chung.
;; CadViet.com - ngay 23/7/2013
(defun C:HA( / #SS->List toan so ss elist)
 (defun #SS->List (ss / i lst)
  (repeat (setq i (sslength ss))
   (setq lst (cons (ssname ss (setq i (1- i))) lst))))
 (if
  (and
   (not (initget "C T N H"))
   (setq toan (getkword "\nPhep toan [Cong/Tru/Nhan/cHia: "))
   (not (initget 3))
   (setq so (getreal "\nNhap so: "))
   (setq ss (ssget '((0 . "*Text")))))
  (progn
   (setq toan
    (cond
     ((= toan "C") +)
     ((= toan "T") -)
     ((= toan "N") *)
     ((= toan "H") /)))
   (foreach ent (#SS->List ss)
    (setq elist (entget ent))
    (entmod (subst (cons 1 (rtos (toan (atof (cdr (assoc 1 elist))) so) 2 2)) (assoc 1 elist) elist)))))
 (princ))
 

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


#89 hoquangvinh

hoquangvinh

    biết lệnh mirror

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

Đã gửi 30 May 2014 - 11:40 AM

mình đã sửa lại để chơi đuợc cả hàng lẫn cột đây. post lâu lắm rồi mới thấy có bạn ý kiến nên chắc cũng ít người có nhu cầu này nhỉ.

(defun c:srt (/ DXF MakeText HANG I LAP LSTKQ PT0 PTI SS1 SS2 SS3 SSN SSN3 TBS1 TBS2 TBS3)(defun DXF (code en)	(cdr (assoc code (entget en))))(defun entmod-en (code value en / RES)(setq RES (entget en '("*")))(entmod (subst (cons code value) (assoc code RES) RES)))(defun MakeText (point string Height Ang justify Style Layer Color xdata / Lst); Ang: Radial(setq Lst (list '(0 . "TEXT")(cons 8 (if Layer Layer (getvar "Clayer")))(cons 62 (if Color Color 256))(cons 10 point)(cons 40 Height)(cons 1 string)(if Ang (cons 50 Ang))(cons 7 (if Style Style (getvar "Textstyle")))(cons -3 (if xdata (list xdata) nil)))justify (strcase justify))(cond ((= justify "C") (setq Lst (append Lst (list (cons 72 1) (cons 11 point)))))((= justify "R") (setq Lst (append Lst (list (cons 72 2) (cons 11 point)))))((= justify "M") (setq Lst (append Lst (list (cons 72 4) (cons 11 point)))))((= justify "TL") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 3)))))((= justify "TC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 3)))))((= justify "TR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 3)))))	((= justify "ML") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 2)))))((= justify "MC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 2)))))((= justify "MR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 2)))))((= justify "BL") (setq Lst (append Lst (list (cons 72 0) (cons 11 point) (cons 73 1)))))((= justify "BC") (setq Lst (append Lst (list (cons 72 1) (cons 11 point) (cons 73 1)))))((= justify "BR") (setq Lst (append Lst (list (cons 72 2) (cons 11 point) (cons 73 1))))))(entmakex Lst));endmaketext(setq pheptinh (cond (pheptinh) ("Cong")))(initget "Cong Tru Nhan CHia")(setq pheptinh (cond ((getkword (strcat "\nchon phep tinh: [Cong/Tru/Nhan/CHia/] <" pheptinh ">: "))) (pheptinh)))(prompt "\nChon Hang-Cot so thu nhat..")(if (setq SS1 (ssget '((0 . "TEXT"))))(progn (prompt "Chon Hang-Cot so thu hai..")(if (setq SS2 (ssget '((0 . "TEXT"))))(progn(Setq TBS1 (ACET-GEOM-SS-EXTENTS-FAST SS1) SS1 (acet-ss-to-list SS1)TBS2 (ACET-GEOM-SS-EXTENTS-FAST SS2) SS2 (acet-ss-to-list SS2))(if (> (abs(- (car (car TBS1)) (car (cadr TBS1)))) (abs(- (cadr (car TBS1)) (cadr (cadr TBS1)))))(setq Hang TSS1 (vl-sort SS1 '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2)))))))(setq Hang nilSS1 (vl-sort SS1 '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))))(if (> (abs(- (car (car TBS2)) (car (cadr TBS2)))) (abs(- (cadr (car TBS2)) (cadr (cadr TBS2)))))(setq SS2 (vl-sort SS2 '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2)))))))(setq SS2 (vl-sort SS2 '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))))(if (> (length SS1) (length SS2)) (setq lap (length SS1) i 0) (setq lap (length SS2) i 0))(setq LstKQ '())(if (setq PT0 (getpoint (strcat "\nchon diem dat " (if Hang "hang" "cot") " ket qua. Enter de ghi va Hang-Cot text khac")))(progn (vl-cmdf "ucs" "w")(repeat lap(setq SSn (nth i SS1))(maketext(if (= hang nil)(setq PTi (list (car PT0) (cadr (DXF 10 SSn))))(setq PTi (list (car (DXF 10 SSn)) (cadr PT0))))(cond ((eq pheptinh "Cong")	(rtos (+ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Tru")	(rtos (- (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Nhan")	(rtos (* (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "CHia")	(rtos (/ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2)))(DXF 40 SSn) 0 "R"(DXF 7 SSn) (DXF 8 SSn) nil nil)(setq  i (1+ i)))(vl-cmdf "ucs" "p"))(progn(prompt "\nChon Hang hoac Cot text de ghi ket qua")(if (setq SS3 (ssget '((0 . "TEXT"))))(setq TBS3 (ACET-GEOM-SS-EXTENTS-FAST SS3)SS3 (acet-ss-to-list SS3))(EXIT))(if (> (abs(- (car (car TBS3)) (car (cadr TBS3)))) (abs(- (cadr (car TBS3)) (cadr (cadr TBS3)))))(setq SS3 (vl-sort SS3 '(lambda (e1 e2) (< (cadr (assoc 10 (entget e1))) (cadr (assoc 10 (entget e2)))))))(setq SS3 (vl-sort SS3 '(lambda (e1 e2) (> (caddr (assoc 10 (entget e1))) (caddr (assoc 10 (entget e2))))))))(vl-cmdf "undo" "begin")(repeat lap(setq SSn (nth i SS1))(if (setq SSn3 (nth i SS3))(entmod-en 1(cond ((eq pheptinh "Cong")	(rtos (+ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Tru")	(rtos (- (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "Nhan")	(rtos (* (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))((eq pheptinh "CHia")	(rtos (/ (atof (DXF 1 SSn)) (atof (DXF 1 (nth i SS2)))) 2 2))) SSn3)(progn(alert (strcat "tap hop text khong du de ghi ket qua. Thieu "(rtos (- lap i) 2 0)" text"))(vl-cmdf "undo" "end")(EXIT)))(setq  i (1+ i)))(vl-cmdf "undo" "end")));if);progn)));if(princ));end

he hôm nay vẫn còn người sử dụng đó bác à

thanks bác


  • 0