Đến nội dung


Hình ảnh
- - - - -

[yêu cầu] lisp chèn block phong thủy


  • Please log in to reply
87 replies to this topic

#1 thienchip86

thienchip86

    biết vẽ polygon

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

Đã gửi 09 January 2013 - 06:47 PM

mình viết yêu câù này lên mong các bạn giúp đỡ.
mình muốn viết một cái lisp tính tổng của một số và hiêụ số đó ra một số và cái số tìm được là tên của block mình muốn chèn vào bản cad
các bước để nhập như sau:
Bước 1: vào năm sinh của chủ nhà : vd 1987
Bước 2: vào giơí tính: Nam(1)/Nữ(2)... là nam gõ 1,là nữ gõ 2
sau đó tính tổng
1979=1+9+8+7=25 vì 25 >10 ta lại có 2+5=7=A
nếu chủ nhà là Nam ta lấy 11 trừ A được 1 số ,số đó là block cần chèn vào bản cad: 11-7=4 ,block cần chèn vào bản cad là block số 4
nếu chủ nhà là Nư ta lấy 4 cộng A được 1 số ,số đó là block cần chèn vào bản cad: 4+7=11>10 vâỵ ta có 1+1=2 ,block cần chèn vào bản cad là block số 2

Tất cả có 9 quái số được đặt tên từ 1 đến 9 mình đã tạo sẵn rôì.
Mong các bạn giúp đỡ mình vơí.Hy vọng mình sẽ có các bạn chung tay để công hiến cho anh em diễn đàn phần mềm xem phong thuỷ khoa học.
có gì liên lạc vơí mình nhé Thiện: 0989807986 Email: hoangthanthien79@gmail.com
  • 0

#2 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 09 January 2013 - 09:21 PM

Chèn đi đâu :o, bản vẽ của bạn đâu :o
  • 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


#3 thienchip86

thienchip86

    biết vẽ polygon

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

Đã gửi 10 January 2013 - 01:15 AM

mình xin gửi kèm file bao gồm 9 block,mình đã đánh số block từ 1 đến 9, cac bạn giup mình làm sao khi nhập năm sinh vào thi hàm tinh ra quái số mấy thì chèn đúng block số đó vào bản vẽ cad bất kỳ.
vd: khi cộng trừ xong ra quái số kết quả là 4 thì bạn cho nó chèn block số 4 vào bản vẽ cho minh .

Rất mong cac bạn giúp đỡ.http://www.cadviet.c..._phong_thuy.dwg
  • 0

#4 AutocadLisp

AutocadLisp

    biết pan

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

Đã gửi 10 January 2013 - 08:27 AM

Chèn thì phải có chèn vào đâu chứ ? thienchip chưa dùng lệnh Insert bao giờ chăng ?
  • 0

#5 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 10:15 AM

nhoc ko rành lsp nhưng thấy lạ, xem phog thủy và bói bằng cad ?? :D, về thuật toán thì nhoc nghĩ lsp có thể làm đc nhưng vậy khi dùng lsp phải có file này á, và phải chèn đúng block hình như thiếu cơ sở để xác định chăng ?, cái này hơi khó :D
Ps: hình trong file bạn đẹp thật ^^
Hình đã gửi
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#6 duy782006

duy782006

    PHẠM QUỐC DUY

  • CADViet Team
  • PipPipPipPipPipPipPip
  • 2155 Bài viết
Điểm đánh giá: 1359 (rất tốt)

Đã gửi 10 January 2013 - 11:11 AM

nhoc ko rành lsp nhưng thấy lạ, xem phog thủy và bói bằng cad ?? :D, về thuật toán thì nhoc nghĩ lsp có thể làm đc nhưng vậy khi dùng lsp phải có file này á, và phải chèn đúng block hình như thiếu cơ sở để xác định chăng ?, cái này hơi khó :D
Ps: hình trong file bạn đẹp thật ^^

Nhóc có hứng thú thì thử xem. Ứng dụng hàm duy:tonglist dưới đây để lấy tổng của chuổi. Cú pháp (duy:tonglist chuoi) ví dụ (duy:tonglist "12345") sẽ ra 15

 

(defun duy:tonglist (listdoc / listdoc skq vtd)
(setq skq 0)
(setq vtd 1)
(repeat (fix (strlen listdoc))
(setq skq (+ skq (atof (substr listdoc vtd 1))))
(setq vtd (+ 1 vtd))
)
skq)

  • 1

Cứ ngỡ trần gian là cõi thật.Cho nên tất bật đến bây giờ.
Tạo hộp thoại bằng lisp My blog QUY ĐỊNH ĐẶT TÊN TOPIC TRONG CHUYÊN MỤC LISPD http://ktsduy.wordpress.com/
Để cám ơn chỉ cần nhấn rep_up.png
(Là nhấn vào nút đó phía bài viết của người ta í chứ đừng có nhè cái hình này mà nhấn miết đi nha :-D


#7 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 11:16 AM

nhoc chỉ spam cho vui vì thấy lạ thui anh Duy :D, viết thì nhoc viết chưa nổi đâu, nhưng cũng mót của anh Duy về để dành, khi nào anh Ket dạy tới nhoc moc ra nghiên cứu học hỏi hihi, thanks anh !
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#8 phamthanhbinh

phamthanhbinh

    biết lệnh adcenter

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

Đã gửi 10 January 2013 - 12:01 PM

mình xin gửi kèm file bao gồm 9 block,mình đã đánh số block từ 1 đến 9, cac bạn giup mình làm sao khi nhập năm sinh vào thi hàm tinh ra quái số mấy thì chèn đúng block số đó vào bản vẽ cad bất kỳ.
vd: khi cộng trừ xong ra quái số kết quả là 4 thì bạn cho nó chèn block số 4 vào bản vẽ cho minh .

Rất mong cac bạn giúp đỡ.http://www.cadviet.c..._phong_thuy.dwg

Hề hề hề,
Có phải cái này không hè???


(defun c:pht (/ bln a b c d tg gt t1 t2 t3)
(setq year (getint "\n Hay nhap nam sinh du 4 chu so: ")
GT (getint "\n Hay nhap gioi tinh chu nha <1=Nam; 2=nu>: "))
(setq a (atoi (substr (itoa year) 1 1))
b (atoi (substr (itoa year) 2 1))
c (atoi (substr (itoa year) 3 1))
d (atoi (substr (itoa year) 4 1))
Tg (+ a b c d) )
;;;;;;;;;;;;;;;;;;;
(defun ssu (a / a1 a2 t1)
(if (> a 9)
(progn
(setq t1 (itoa a)
a1 (atoi (substr t1 1 1))
a2 (atoi (substr t1 2 1))
t2 (+ a1 a2) )
(if (> t2 9)
(ssu t2) )
)
)
t2
)
;;;;;;;;;;;;;;;;;;
(setq tong (ssu tg))
(if (= gt 1)
(setq bln (itoa (- 11 t2)))
(progn
(setq t3 (+ 4 t2))
(if (> t3 9)
(setq t3 (ssu t3))
)
(setq bln (itoa t3))
)
)
(alert (strcat "\n Ten block can chen la " bln))
(command "insert" bln (getpoint "\n Nhap diem chen block") 1 1 0)
)
Chúc bạn vui như cái hình avatar của bạn.
  • 1
Chúc các quý Anh trên diễn đàn luôn khỏe, đẻ thêm được nhiều thứ để mót.

#9 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 12:22 PM

hihi lsp anh Binh viết hay quá, nhưng hình như nhầm 1 chỗ thì phải ^^, nhoc nhập 1990 thì cuối cùng nó kiu là block 10 ^^ ko có
nhoc mò mẫn thử đọc ko hỉu lsp vì cao quá ^^ nhưng sữa đại như vầy thì đc :D

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=68603&pid=224775&st=0&#entry224775

(defun c:pht (/ bln a b c d tg gt t1 t2 t3)
(setq year (getint "\n Hay nhap nam sinh du 4 chu so: ")
GT (getint "\n Hay nhap gioi tinh chu nha <1=Nam; 2=nu>: "))
(setq a (atoi (substr (itoa year) 1 1))
b (atoi (substr (itoa year) 2 1))
c (atoi (substr (itoa year) 3 1))
d (atoi (substr (itoa year) 4 1))
Tg (+ a b c d) )
;;;;;;;;;;;;;;;;;;;
(defun ssu (a / a1 a2 t1)
(if (> a 9);sua 9 thanh 10
(progn
(setq t1 (itoa a)
a1 (atoi (substr t1 1 1))
a2 (atoi (substr t1 2 1))
t2 (+ a1 a2) )
(if (> t2 9); sua 9 thanh 10
(ssu t2) )
)
)
t2
)
;;;;;;;;;;;;;;;;;;
(setq tong (ssu tg))
(if (= gt 1)
(setq bln (itoa (- 11 t2)))
(progn
(setq t3 (+ 4 t2))
(if (> t3 9)
(setq t3 (ssu t3))
)
(setq bln (itoa t3))
)
)
(alert (strcat "\n Ten block can chen la " bln))
(command "insert" bln (getpoint "\n Nhap diem chen block") 1 1 0)
)


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#10 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 12:30 PM

bạn @thienchip86 cho mình hỏi, cái này xem sao nhỉ ^^, vd mình là nam block số 2, vậy nhà mình ở hướng Bắc là mình bị tuyệt mạng hả bạn :o :mellow: T_T, ghê quá vậy
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#11 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 January 2013 - 12:34 PM

Nhân tiện ghé qua giao bài riêng cho nhoclangbat luôn, các bác châm trước cho ket vì ket đang bí đề với học viên tốt quá ^^
- Áp dụng hàm này giúp bạn thienchip86, hàm trả về tên block, đối số đã ghi


;ns : nam sinh, string hoac so (~Int)
;gt : gioi tinh, string hoac so (~Int)
;(batquai 1987 1), (batquai "1987" "2") => tra ve ten Block
(defun batquai(ns gt / tst)
(defun tst(str / kq)(vl-load-com)
(while (> (setq kq (apply '+ (mapcar '(lambda(x)(atoi (chr x))) (vl-string->list str)))) 9)
(setq str (itoa kq))
) kq
)
(itoa (tst (itoa (abs (+ (tst (vl-princ-to-string ns)) (if (= (vl-princ-to-string gt) "1") -11 4))))))
)

  • 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


#12 thienchip86

thienchip86

    biết vẽ polygon

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

Đã gửi 10 January 2013 - 12:48 PM

Hề hề hề,
Có phải cái này không hè???



(defun c:pht (/ bln a b c d tg gt t1 t2 t3)
(setq year (getint "\n Hay nhap nam sinh du 4 chu so: ")
GT (getint "\n Hay nhap gioi tinh chu nha <1=Nam; 2=nu>: "))
(setq a (atoi (substr (itoa year) 1 1))
b (atoi (substr (itoa year) 2 1))
c (atoi (substr (itoa year) 3 1))
d (atoi (substr (itoa year) 4 1))
Tg (+ a b c d) )
;;;;;;;;;;;;;;;;;;;
(defun ssu (a / a1 a2 t1)
(if (> a 9)
(progn
(setq t1 (itoa a)
a1 (atoi (substr t1 1 1))
a2 (atoi (substr t1 2 1))
t2 (+ a1 a2) )
(if (> t2 9)
(ssu t2) )
)
)
t2
)
;;;;;;;;;;;;;;;;;;
(setq tong (ssu tg))
(if (= gt 1)
(setq bln (itoa (- 11 t2)))
(progn
(setq t3 (+ 4 t2))
(if (> t3 9)
(setq t3 (ssu t3))
)
(setq bln (itoa t3))
)
)
(alert (strcat "\n Ten block can chen la " bln))
(command "insert" bln (getpoint "\n Nhap diem chen block") 1 1 0)
)
Chúc bạn vui như cái hình avatar của bạn.




Cảm ơn các bạn nhiều.đây chính là cái mà minh đang muốn,nhưng chỉ có điều bạn sửa lại một chút giúp minh
đúng như bạn Nhoclangbat nói nếu la Nam 1990=1+9+1+0=19=1+9=10 khi đó quái số sẽ là 11-10=1 (quái số là 1 nên chèn block số 1)
ở đây là nam nên ta lấy 11-10 còn nếu là nữ ta lấy 4+10=14=1+4=5 (quái số là 5 chèn block số 5)

và khi nó hỏi tên block cần chèn là 1.thì mình phải khai báo đường dẫn như thế nào để nó lôi ra đung block của mình.mình có đính kèm chín quái số đã block và đặt tên từ 1 đến 9 rồi bạn giup minh với..hihi háo hức quá ắp oke rùi bạn ơi.
  • 0

#13 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 12:48 PM

??? anh Ket ơi, nhoc ko hỉu để, nhìn cái lsp anh đưa (>"<), nó biết nhóc, nhưng nhoc ko biết nó :D. Để nhoc mò mẫn tí khi nào có nhoc pm inbox hen ^^, còn ko đc chắc lại phải đi lang bạt xin xỏ tâm pháp của các huynh có nội công thâm hậu chỉ giáo ^^ kaka
  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#14 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 10 January 2013 - 12:57 PM

Mình có yêu cầu Nhoc phải hiểu code trong hàm con mình viết như thế nào đâu :o Chỉ cần nhoc SỬ DỤNG lại nó như đã ví dụ thôi mà. Về cơ bản tất cả mọi hàm đi mót về thì đều như thế, mình cũng thế, ai cũng thế, trước hết học cách dùng nó đã. Muốn hiểu sâu hơn thì mới đọc code bên trong
  • 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


#15 thienchip86

thienchip86

    biết vẽ polygon

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

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

bạn @thienchip86 cho mình hỏi, cái này xem sao nhỉ ^^, vd mình là nam block số 2, vậy nhà mình ở hướng Bắc là mình bị tuyệt mạng hả bạn :o :mellow: T_T, ghê quá vậy



hihi bạn đừng lo,hướng nhà phụ thuộc vào tuổi chủ nhà,nếu nhà đó của bố bạn thi ko sao,còn nếu là của bạn thì bạn có cách khắc chế mà,vd như xoay bếp về hướng Sinh Khí, bàn thờ về hướng Phục vị, vệ sinh chấn vào những khu vực ,như Hại Họa,ngũ quỷ ,ngoài cửa đặt gương bát quái...có rất nhiều cách mà bạn..hehe
  • 0

#16 AutocadLisp

AutocadLisp

    biết pan

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

Đã gửi 10 January 2013 - 01:07 PM

Chèn block thì :
- Có sẵn trong bản vẽ, cho tên Block vào code : "1", "2", "3"...
- Có sẵn ở bên ngoài, cho tên đường dẫn + tên file block
(strcat duongdan "\\1.dwg")
Ví dụ (strcat "C:\\Dulieu" "\\2.dwg")
- Chưa có ở đâu thì dùng code tự vẽ lên hình block này (dùng cho nhiều máy khác nhau)
  • 0

#17 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 01:08 PM

nhoc xin mạn phép pst bài ở đây lun hen ^^, anh Ket xem có phải vậy ko anh

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=68603&pid=224799&st=0&#entry224799
;ns : nam sinh, string hoac so (~Int)
;gt : gioi tinh, string hoac so (~Int)
;(batquai 1987 1), (batquai "1987" "2") => tra ve ten Block
(defun c:pht (/ ns gt)
(setq ns (getint "\nNhap nam sinh of you:"))
(setq gt (getint "\nChon gioi tinh 1 la boy 2 la girl:"))
(princ "\n")
(princ "quai so cua ban la: ")
(princ (batquai ns gt))
(princ)
)
(defun batquai(ns gt / tst)
(defun tst(str / kq)(vl-load-com)
(while (> (setq kq (apply '+ (mapcar '(lambda(x)(atoi (chr x))) (vl-string->list str)))) 9)
(setq str (itoa kq))
) kq
)
(itoa (tst (itoa (abs (+ (tst (vl-princ-to-string ns)) (if (= (vl-princ-to-string gt) "1") -11 4))))))
)


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#18 thienchip86

thienchip86

    biết vẽ polygon

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

Đã gửi 10 January 2013 - 01:12 PM

Thưa các bạn diễn đàn yêu quý mình có nhiều ý tưởng để làm thành những lisp phục vụ cho ngành xây dựng quá nhưng chỉ có điều mình không có kiến thức về lập trình nên ko biết phải viết làm sao.minh mạo muội thỉnh thoảng đưa một vài để tài lên để các bạn cùng nghiên cứu giúp mình nhé có được không?rất mong các bạn chung tay giúp đỡ.sau mỗi thành quar mình hứa sẽ tuyển tập lại và làm mottj cái hướng dẫn để các bạn áp dụng nó vào thực tế,mong se giúp ích cho cộng đồng diễn đàn.
  • 0

#19 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 10 January 2013 - 01:24 PM

nhoc xin đóng góp cách thổ rân thế này ^^, 9 cái đó bạn dùng lệnh writeblock write từng cái cái lưu trong đường dẫn
(C:\program files\autodesk\autocad autocad2xxx\support\).cách này nếu bạn chỉ dùng 1 máy, mà mở bất kỳ bản vẽ nào bạn dùng lsp để gọi nó cũng ra, ko phải mở đúng bản vẽ bạn đã vẽ sẵn 9 cái block đó mới xài đc.
Còn nếu đi máy khác thì chắc như bạn autocadlisp nói phải vẽ nó trong lsp lun, mà vẽ cái này trong lsp cũng mệt mỏi ah ^^. mạn phép anh Bình sữa dùm bạn ấy chỗ nhầm xíu trong lsp của anh

;; free lisp from cadviet.com
;;; this lisp was downloaded from http://www.cadviet.com/forum/index.php?showtopic=68603&pid=224775&st=0&#entry224775

(defun c:pht (/ bln a b c d tg gt t1 t2 t3)
(setq year (getint "\n Hay nhap nam sinh du 4 chu so: ")
GT (getint "\n Hay nhap gioi tinh chu nha <1=Nam; 2=nu>: "))
(setq a (atoi (substr (itoa year) 1 1))
b (atoi (substr (itoa year) 2 1))
c (atoi (substr (itoa year) 3 1))
d (atoi (substr (itoa year) 4 1))
Tg (+ a b c d) )
;;;;;;;;;;;;;;;;;;;
(defun ssu (a / a1 a2 t1)
(if (> a 9);
(progn
(setq t1 (itoa a)
a1 (atoi (substr t1 1 1))
a2 (atoi (substr t1 2 1))
t2 (+ a1 a2) )
(if (> t2 9);
(ssu t2) )
)
)
t2
)
;;;;;;;;;;;;;;;;;;
(setq tong (ssu tg))
(if (= gt 1)
(progn
(setq t3 (- 11 t2))
(if (> t3 9)
(setq t3 (ssu t3))
)
(setq bln (itoa t3))
)
(progn
(setq t3 (+ 4 t2))
(if (> t3 9)
(setq t3 (ssu t3))
)
(setq bln (itoa t3))
)
)
(alert (strcat "\n Ten block can chen la " bln))
(command "insert" bln (getpoint "\n Nhap diem chen block") 1 1 0)
)

Ps: đã sữa lại như anh Bình chỉ ^^
  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#20 ap0ll02009

ap0ll02009

    biết zoom

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

Đã gửi 10 January 2013 - 01:33 PM

cách tính phong thủy này của bác cũng nhanh và gọn nhỉ . nhưng lisp bị lỗi 1 chút . nam 1990 ko chèn đc bblock là 10 .
  • 0