Đến nội dung


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

Ứng dụng LISP để vẽ bản vẽ kiến trúc (phần cơ bản)


  • Please log in to reply
124 replies to this topic

#41 friday13th

friday13th

    biết vẽ arc

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

Đã gửi 17 November 2007 - 04:24 PM

Thế đấy ! Giờ thì bản vẽ đã ổn thỏa. Chẳng còn gì để làm nữa. Nhưng với đống LISP kia thì sao nhỉ? Nhiều file *.LSP quá @_@. Làm gì?

Bài 12: Chuyển LSP sang VLX
Công cụ này thì cực hay. Vì từ hàng trăm file LSP ta có thể chuyển thành 1 file VLX, gọn, nhẹ, bảo mật cao hơn...

Hình đã gửi

Các bước thực hiện.

Bước 1: Khởi động Cad, tại dòng Command nhập lệnh vlide.

Hình đã gửi

Bước 2: Trong cửa sổ Visual Lisp for AutoCad, nhấn vào File/Make Application/New Application Wizard

Hình đã gửi

Bước 3: Chọn Simple vầ nhấn Next

Hình đã gửi

Bước 4: Lựa chọn đường dẫn (Application Location) và tên file (Application Name) Rồi nhấn Next

Hình đã gửi

Bước 5: Nhấn vào nút Add, 1 cửa sổ chọn file hiện ra, select tất cả các file LSP, rồi nhấn Open

Hình đã gửi

Bước 6: Các file LSP vừa lựa chọn được cập nhật và bảng danh sách, nhấn Next

Hình đã gửi

Bước 7: Nhấn Finish để kết thúc.

Hình đã gửi

Quá trình này kết thúc thành công bàng 1 thông báo hoàn thành

Hình đã gửi

Ok. Giờ thì file VLX duy nhất đã được tạo ra, rất gọn, rất nhẹ và bảo mật cao hơn..0_0

Nếu bạn không muốn mất thời gian, có thể tải file vlxcoban.vlx tại đây:

http://thunglungden.org/cadviet/cad/lisp/v...an/vlxcoban.vlx

Kết thúc. Chúc các bạn thành công với bộ lisp cơ bản này. Hẹn gặp lại lần sau với một bộ lisp năng cao, phát huy hết các tính năng của CAD.

Chào thân ái ! :bigsmile:

anh ơi link die rồi, co thể send cho em được ko?
friday13th_death@yahoo.com
thanks!
  • 0

#42 be_chanh

be_chanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1712 Bài viết
Điểm đánh giá: 889 (rất tốt)

Đã gửi 17 November 2007 - 04:34 PM

link: http://www.cadviet.com/upfiles/vlxcoban.vlx
  • 1

t: 097.323.1199 | m: cudstk@gmail.com | w: http://www.aicollect.com


#43 friday13th

friday13th

    biết vẽ arc

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

Đã gửi 17 November 2007 - 04:49 PM

pro ơi, sao em ko load được, help mi
thanks pro!
  • 0

#44 ngayve324

ngayve324

    biết lệnh xref

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

Đã gửi 19 November 2007 - 11:10 AM

pro ơi, sao em ko load được, help mi
thanks pro!

Không load được thì cứ coppy mấy đoạn lisp trên rồi về tự converter thanh` *.VLX . cách này vừ học thêm dược cách chuyển đổi nữa. Mình cũng làm được rồi
  • 1

#45 k_victory

k_victory

    biết vẽ ellipse

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

Đã gửi 21 November 2007 - 03:13 PM

Sao hết down được rồi anh oi!
  • 0
Càng học càng thấy mình còn kém

#46 conghaice

conghaice

    biết vẽ pline

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

Đã gửi 22 November 2007 - 06:37 PM

link: http://www.cadviet.com/upfiles/vlxcoban.vlx

Sao ko thống kê lệnh bằng một txt cho tiện jikibo ơi
  • 0

#47 ngayve324

ngayve324

    biết lệnh xref

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

Đã gửi 23 November 2007 - 07:05 AM

Sao ko thống kê lệnh bằng một txt cho tiện jikibo ơi

Bác nói đúng đó, thống kê mấy lệnh bằng một txt đễ mấy bác nào nhác chỉ dow VXLCOBAN.VLX Biết đường mà lần
CÒn ai có thời gian thì đọc lại mấy bài của ssg, trên đó có đầy đủ mà
  • 0

#48 vinhngoc

vinhngoc

    biết pan

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

Đã gửi 24 November 2007 - 10:24 PM

Một bản vẽ mới được thiết lập. Vẫn những layer đó, vẫn những kiểu text đó, vẫn những kiểu dim đó...Bạn không cần thiết phải làm lại từ đầu vì quá mất thời gian. Vậy làm thế nào???

( Tất cả các LISP CODE bạn chỉ việc copy rồi save ra file cùng tên với lệnh lisp và có phần mở rộng la .LSP (ví dụ: TaoL.LSP) là ok :bigsmile: )

Bài 1: Tạo Layer


(defun c:TaoL()
(command "layer" "m" "!tuong" "c" "2" "" "")
(command "layer" "m" "!tim" "c" "1" "" "")
(command "layer" "m" "!thay" "c" "7" "" "")
(command "layer" "m" "!noithat" "c" "8" "" "")
(command "layer" "m" "!hatch" "c" "8" "" "")
(command "layer" "m" "!chu" "c" "3" "" "")
(command "layer" "m" "!kichthuoc" "c" "8" "" "")
(princ)
)


Với lisp này lệnh để tạo layer sẽ là TaoL.

Bài 2: Tạo Text Style ( kiểu chữ )


(defun c:TaoC()
(command "style" "!vnAvanH" ".VnAvantH" "" "" "" "" "")
(princ)
)


Với lisp này lệnh để tạo kiểu chữ sẽ là TaoC.

Bài 3: Tạo Dim Style ( kiểu kích thước )


(defun c:TaoK (/ scl fcal scal );dmasz dexo dexo dtxt dgap dclre dclrt dsn ao ad obj)
(vl-load-com)
(setq scl (getstring "\nTY LE BAN VE: "))
(setq fcal (atof (substr scl 1 1)))
(setq scal (atof (substr scl 3 3)))
(setq tyle (/ fcal scal))

(setq caochu (getint "\nCHIEU CAO CUA CHU: "))
(setvar "DIMALTF" 25)
(setvar "DIMALTTZ" 13)
(setvar "DIMALTZ" 13)
(setvar "DIMBLK" "ArchTick")
(setvar "DIMBLK1" "ArchTick")
(setvar "DIMBLK2" "ArchTick")
(setvar "DIMASZ" (/ caochu 2))
(setvar "DIMCEN" -50)
(setvar "DIMCLRD" 9)
(setvar "DIMDLE" (/ caochu 2))
(setvar "DIMTOFL" 1)
(setvar "DIMDLI" 0)
(setvar "DIMCLRE" 9)
(setvar "DIMEXE" (/ caochu 2))
(setvar "DIMEXO" 0)
(setvar "DIMTMOVE" 2)
(setvar "DIMLDRBLK" "ArchTick")
(setvar "DIMDEC" 0)
(setvar "DIMCLRT" 9)
(setvar "DIMTXT" caochu)
(setvar "DIMLFAC" TYLE)
(setvar "DIMTIX" 1)
(setvar "DIMTIH" 0)
(setvar "DIMGAP" (/ caochu 2))
(setvar "DIMTOH" 0)
(setvar "DIMTAD" 1)
(setvar "DIMTXSTY" "!vnAvanH")
(setvar "DIMTDEC" 0)
(setvar "DIMTZIN" 13)
(setvar "DIMZIN" 13)
;-------------------------------------------------------------
(setq dsn (getstring "\nTEN CUA KIEU DIM MOI: "))
(setq ao (vlax-get-acad-object))
(setq ad (vla-get-ActiveDocument ao))
(setq obj (vla-add (vla-get-dimstyles ad) dsn))
(vla-copyfrom Obj ad)
(vla-put-activedimstyle ad Obj)
(princ)
)


Với lisp này lệnh để tạo kiểu kích thước sẽ là TaoK.
Các thông số cần nhập
1. Tỷ lệ bản vẽ: (Thường là 1/1, cũng có thể là 1/2 tùy vào kiểu dim bạn muốn tạo)
2. Chiều cao chữ: (Tùy thuộc vào bản vẽ của bạn)
3. Tên kiểu dim mới: (Nên đặt theo chiều cao của chữ)


  • 0

#49 vinhngoc

vinhngoc

    biết pan

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

Đã gửi 24 November 2007 - 10:31 PM

- Sao mình copy dòng CODE rồi saveas nhưng không có dòng code đó mà chỉ có nhiều ký tự lạ , chỉ giúp nhé ! :bigsmile:
  • 0

#50 ngayve324

ngayve324

    biết lệnh xref

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

Đã gửi 29 November 2007 - 04:19 PM

Một bản vẽ mới được thiết lập. Vẫn những layer đó, vẫn những kiểu text đó, vẫn những kiểu dim đó...Bạn không cần thiết phải làm lại từ đầu vì quá mất thời gian. Vậy làm thế nào???

( Tất cả các LISP CODE bạn chỉ việc copy rồi save ra file cùng tên với lệnh lisp và có phần mở rộng la .LSP (ví dụ: TaoL.LSP) là ok :bigsmile: )



Bài 3: Tạo Dim Style ( kiểu kích thước )


(defun c:TaoK (/ scl fcal scal );dmasz dexo dexo dtxt dgap dclre dclrt dsn ao ad obj)
(vl-load-com)
(setq scl (getstring "\nTY LE BAN VE: "))
(setq fcal (atof (substr scl 1 1)))
(setq scal (atof (substr scl 3 3)))
(setq tyle (/ fcal scal))

(setq caochu (getint "\nCHIEU CAO CUA CHU: "))
(setvar "DIMALTF" 25)
(setvar "DIMALTTZ" 13)
(setvar "DIMALTZ" 13)
(setvar "DIMBLK" "ArchTick")
(setvar "DIMBLK1" "ArchTick")
(setvar "DIMBLK2" "ArchTick")
(setvar "DIMASZ" (/ caochu 2))
(setvar "DIMCEN" -50)
(setvar "DIMCLRD" 9)
(setvar "DIMDLE" (/ caochu 2))
(setvar "DIMTOFL" 1)
(setvar "DIMDLI" 0)
(setvar "DIMCLRE" 9)
(setvar "DIMEXE" (/ caochu 2))
(setvar "DIMEXO" 0)
(setvar "DIMTMOVE" 2)
(setvar "DIMLDRBLK" "ArchTick")
(setvar "DIMDEC" 0)
(setvar "DIMCLRT" 9)
(setvar "DIMTXT" caochu)
(setvar "DIMLFAC" TYLE)
(setvar "DIMTIX" 1)
(setvar "DIMTIH" 0)
(setvar "DIMGAP" (/ caochu 2))
(setvar "DIMTOH" 0)
(setvar "DIMTAD" 1)
(setvar "DIMTXSTY" "!vnAvanH")
(setvar "DIMTDEC" 0)
(setvar "DIMTZIN" 13)
(setvar "DIMZIN" 13)
;-------------------------------------------------------------
(setq dsn (getstring "\nTEN CUA KIEU DIM MOI: "))
(setq ao (vlax-get-acad-object))
(setq ad (vla-get-ActiveDocument ao))
(setq obj (vla-add (vla-get-dimstyles ad) dsn))
(vla-copyfrom Obj ad)
(vla-put-activedimstyle ad Obj)
(princ)
)


Với lisp này lệnh để tạo kiểu kích thước sẽ là TaoK.
Các thông số cần nhập
1. Tỷ lệ bản vẽ: (Thường là 1/1, cũng có thể là 1/2 tùy vào kiểu dim bạn muốn tạo)
2. Chiều cao chữ: (Tùy thuộc vào bản vẽ của bạn)
3. Tên kiểu dim mới: (Nên đặt theo chiều cao của chữ)


BÁC JI SÓ THỂ CHỈNH LẠI CHO TỰ NHẬP SCALE FACTOR KHÔNG
VÍ DỤ
TÔI TẠO 1 KÍCH THƯỚC CÓ TÊN 100 BẰNG LISP NÀY
Command: TAOK

TY LE BAN VE: 1:1

CHIEU CAO CUA CHU: 250

TEN CUA KIEU DIM MOI: 100

KHI KIỂU DIM NÀY ĐƯỢC TẠO THÌ HỆ SỐ SCALE FACTOR TRONG TAB PRIMARY UNITS LÀ 1

BÂY GIỜ TẠO THÊM 1 DIM STYLE 50
Command: TAOK

TY LE BAN VE: 1:1

CHIEU CAO CUA CHU: 250

TEN CUA KIEU DIM MOI: 50

KHI KIỂU DIM NÀY ĐƯỢC TẠO THÌ HỆ SỐ SCALE FACTOR TRONG TAB PRIMARY UNITS LÀ 0.5
TƯƠNG TỰ VỚI CÁC DIM KHÁC (25 THÌ SCALE FACTOR=0.25, 20 THÌ SCALE FACTOR=0.2...)
THANKS!
  • 0

#51 ngayve324

ngayve324

    biết lệnh xref

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

Đã gửi 03 December 2007 - 10:49 AM

Sao jikibo khong tra loi vay?
  • 0

#52 kiến thợ

kiến thợ

    Chưa sử dụng CAD

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

Đã gửi 04 December 2007 - 06:06 PM

Hết sức cảm phục JIKIBO. Bạn giỏi hơn Kiến Thợ nhiều, và rất hòa phóng nữa.
Lúc trước Kiến Thợ cứ tưởng mình đã là khá, nay gặp bạn mới thấy mình đúng chỉ là kiến thợ.
Cảm ơn sự chia sẻ!
Chúc bạn nhiều may mắn!
  • 0

#53 be_chanh

be_chanh

    biết lệnh adcenter

  • Moderator
  • PipPipPipPipPipPipPip
  • 1712 Bài viết
Điểm đánh giá: 889 (rất tốt)

Đã gửi 04 December 2007 - 06:13 PM

ừ xin lỗi các bạn nhé, dạo này bận quá, công việc nó cứ nối đuôi nhau tới, hix, rồi JI sẽ trả lời hết :">
  • 0

t: 097.323.1199 | m: cudstk@gmail.com | w: http://www.aicollect.com


#54 xgame

xgame

    biết vẽ arc

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

Đã gửi 05 December 2007 - 10:23 AM

Cảm ơn JIKIBO nhiều về những LISP trên, thật là tuyệt!
  • 0

#55 thanhliem98

thanhliem98

    biết pan

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

Đã gửi 19 December 2007 - 09:40 PM

Thế đấy ! Giờ thì bản vẽ đã ổn thỏa. Chẳng còn gì để làm nữa. Nhưng với đống LISP kia thì sao nhỉ? Nhiều file *.LSP quá @_@. Làm gì?

Bài 12: Chuyển LSP sang VLX
Công cụ này thì cực hay. Vì từ hàng trăm file LSP ta có thể chuyển thành 1 file VLX, gọn, nhẹ, bảo mật cao hơn...

Hình đã gửi

Các bước thực hiện.

Bước 1: Khởi động Cad, tại dòng Command nhập lệnh vlide.

Hình đã gửi

Bước 2: Trong cửa sổ Visual Lisp for AutoCad, nhấn vào File/Make Application/New Application Wizard

Hình đã gửi

Bước 3: Chọn Simple vầ nhấn Next

Hình đã gửi

Bước 4: Lựa chọn đường dẫn (Application Location) và tên file (Application Name) Rồi nhấn Next

Hình đã gửi

Bước 5: Nhấn vào nút Add, 1 cửa sổ chọn file hiện ra, select tất cả các file LSP, rồi nhấn Open

Hình đã gửi

Bước 6: Các file LSP vừa lựa chọn được cập nhật và bảng danh sách, nhấn Next

Hình đã gửi

Bước 7: Nhấn Finish để kết thúc.

Hình đã gửi

Quá trình này kết thúc thành công bàng 1 thông báo hoàn thành

Hình đã gửi

Ok. Giờ thì file VLX duy nhất đã được tạo ra, rất gọn, rất nhẹ và bảo mật cao hơn..0_0

Nếu bạn không muốn mất thời gian, có thể tải file vlxcoban.vlx tại đây:

http://thunglungden.org/cadviet/cad/lisp/v...an/vlxcoban.vlx

Kết thúc. Chúc các bạn thành công với bộ lisp cơ bản này. Hẹn gặp lại lần sau với một bộ lisp năng cao, phát huy hết các tính năng của CAD.

Chào thân ái ! :)


  • 0

#56 ngayve324

ngayve324

    biết lệnh xref

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

Đã gửi 20 December 2007 - 10:04 AM

bạn thanhliem muon hỏi zi zay
  • 0

#57 Ar_Chanwoo

Ar_Chanwoo

    biết lệnh break

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

Đã gửi 12 March 2008 - 09:55 AM

Ờ nhỉ tí quến. Thế khi vẽ tim và tường thì làm thế nào cho nhanh. Co người thì dùng MLine, co người thì dùng Line. MLine thì không bàn, nhanh, nhưng không phải ai cũng quen. Vậy làm thế nào khi đã ve xong tim tường rồi? OFFSET ?

Bài 7: Offset line sang 2 bên


(defun c:oo(/ data_m)

(defun import_data(/ i)
(setq data_m (ssget))
(if (= nil distan_m) (setq distan_m 110.0))
(princ "Distance (")
(princ distan_m)
(princ "):")
(setq i (getreal ))
(if (not (= nil i)) (setq distan_m i))
)

(defun process(/ ent check)

(defun p_check()
(setq check 0)
(if (= "LINE" (cdr (assoc 0 ent))) (setq check 1))
(princ)
)

(defun p_d_offset(/ p1 p2 p3 p4)

(defun makeline(/ e2 e5)
; (princ ent)
; (setq e5 nil)
; (setq e5 (cdr (assoc 5 ent)))
; (princ e5)
; (if (= nil e5) (setq e5 ))

(setq la (list (cons 0 "LINE")
(cons 5 (cdr (assoc 5 ent)) )
(cons 8 (cdr (assoc 8 ent)) )
(cons 10 p3)
(cons 11 p4)
))
; (princ la)
(entmake la)
(princ)
)

(setq p1 (cdr (assoc 10 ent)) p2 (cdr (assoc 11 ent)) )
(if (not (= p1 p2)) (progn
(if (< (abs (- (nth 0 p1) (nth 0 p2))) 0.000001) (progn
(setq p3 (list (+ (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1) ) )
(setq p4 (list (+ (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2) ) )
(makeline)
(setq p3 (list (- (nth 0 p1) distan_m) (nth 1 p1) (nth 2 p1) ) )
(setq p4 (list (- (nth 0 p2) distan_m) (nth 1 p2) (nth 2 p2) ) )
(makeline)
))
(if (< (abs (- (nth 1 p1) (nth 1 p2))) 0.000001) (progn
(setq p3 (list (nth 0 p1) (+ (nth 1 p1) distan_m) (nth 2 p1) ) )
(setq p4 (list (nth 0 p2) (+ (nth 1 p2) distan_m) (nth 2 p2) ) )
(makeline)
(setq p3 (list (nth 0 p1) (- (nth 1 p1) distan_m) (nth 2 p1) ) )
(setq p4 (list (nth 0 p2) (- (nth 1 p2) distan_m) (nth 2 p2) ) )
(makeline)
))

))
(princ)
)

(if (not (= nil data_m)) (progn
(setq i 0)
(while (< i (sslength data_m)) (progn
(setq ent (entget (ssname data_m i)))
(p_check)
(if (= 1 check) (p_d_offset))
(setq i (+ i 1))
))
))
(princ)
)
(import_data)
(ai_undo_push)
(process)
(ai_undo_pop)
(princ)
)


Lênh để offset line sang 2 bên là oo.
....
Còn lắm nhưng mà ăn cơm đã..hè hè



Thông thường khi vẽ kiến trúc người ta sẽ vẽ tim đầu tiên, sau đó offset sang 2 bên hoặc dùng lệnh mline để vẽ, lisp trên của a theo e còn có hạn chế là sau khi offset sang 2 bên thì đối tượng mới trùng layer với đối tượng cũ, như vậy sẽ rất khó khăn khi tách (theo kiểu on/off layer) đối tượng ra để chỉnh sửa trong những bản vẽ phưc tạp.
  • 0

#58 lktonline

lktonline

    Chưa sử dụng CAD

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

Đã gửi 14 March 2008 - 03:18 AM

Bacs jikibo chỉ dùm Em cách dùng lisp vẽ cửa sổ và cửa đi,Em loay hoay mãi kô được
  • 0

#59 dotranduy

dotranduy

    biết zoom

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

Đã gửi 17 March 2008 - 01:43 PM

Bác jikibo có thể tổng hợp thêm các lips dành cho dân Giao thông, Quy Hoạch, San Nền... được ko ạ! Em cám ơn bác lắm!
  • 0

#60 thangsra

thangsra

    biết vẽ rectang

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

Đã gửi 07 April 2008 - 06:50 PM

Ở đây toàn dân xây dựng với kiến trúc vậy. Có ai dân Giao Thông không.
Tôi thấy nếu viết lisp kiểu này thì chúng ta có thể nghĩ đến 1 lisp thay luôn chương trình nova không

Trình độ cad của mình hơi non nên hỏi vậy. Các bác thấy thế nào?
  • 0
It`s me !!