Chuyển đến nội dung
Diễn đàn CADViet
  • Thông báo

    • Nguyen Hoanh

      CADViet đã hoàn tất nâng cấp   14/09/2017

      Chào các bạn, CADViet đã hoàn tất việc nâng cấp lên phiên bản mới. Tất cả các chức năng đã hoạt động theo kỳ vọng của ban quản trị. Nếu có vấn đề gì cần phản hồi, các bản post ở đây nhé: Trân trọng, Nguyễn Hoành.
Nguyen Hoanh

Vẽ thang bằng lisp

Các bài được khuyến nghị

Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

(defun c:tinhthang()
(defun l2bac(ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
)
(list p1 p2)
)
(setq
ssbac (ssget '((0 . "LINE")))
hbac (getdist "\nChieu cao bac")
lstent (ss2ent ssbac)
ttbac (mapcar 'l2bac lstent)
index 0.0
)
(command ".3dmesh")
(command (* 2 (length lstent)) 2)
(foreach pp ttbac
(setq
caoht (* index hbac)
index (+ index 1.0)
p1 (car pp)
p2 (cadr pp)
x1 (car p1)
y1 (cadr p1)
x2 (car p2)
y2 (cadr p2)
za caoht
zb (+ caoht hbac)
p1a (list x1 y1 za)
p1b (list x1 y1 zb)
p2a (list x2 y2 za)
p2b (list x2 y2 zb)
)
(command p1a p2a p1b p2b)
)
)
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)

 

Đầu tiên là mặt bằng của bạn:

Thang01.gif

 

bạn đổi viewport để xem dạng phối cảnh:

thang02.gif

 

dùng lệnh tinhthang để vẽ 3d của bậc thang:

thang03.gif

 

dùng lệnh shade để xem thang dạng có diện:

thang04.gif

 

Xoay để lấy mặt đứng biên:

thang05.gif

 

Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

  • Vote tăng 6

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Cách sử dụng vô cùng đơn giản.

 

Đây là một thang tròn cần vẽ 3D:

thtron1.gif

 

1. Sau khi upload file lisp, tại dòng lệnh bạn gõ lệnh tinhthang:

Command: tinhthang (enter)

 

2. Chúng ta sẽ chọn đối tượng line đại diện cho bậc thang:

Select objects: f (f = fence)

First fence point: (bạn pick các điểm để bắt theo lựa chọn fence thứ tự các line đại diện cho bậc thang)

thtron2.gif

Specify endpoint of line or [undo]:(pick tiếp)

Specify endpoint of line or [undo]:(pick tiếp)

Specify endpoint of line or [undo]:(pick tiếp cho đến khi hoàn tất việc lựa chọn tất cả các line đại diện bậc thang - theo thứ tự)

Select objects: (enter - xong rồi thì gõ enter để kết thúc lệnh chọn thang)

 

3. Nhập chiều cao của thang:

Chieu cao bac 150 (nhập vào chiều cao bậc)

 

Ta sẽ được 3D của thang:

thtron3.gif

thtron4.gif

 

Có 2 lưu ý quan trọng:

1. Các bậc của thang phải là đối tượng line

2. khi chọn các bậc thang (các line) phải chọn đối tượng theo thứ tự từ bậc thấp đến bậc cao.

  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Với thang tròn thì lisp này làm việc tốt, nhưng với thang vuông nó cứ làm sao ấy :lol:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

Cảm ơn bác đã chia sẻ, nhưng khi em dùng thì gặp lỗi như sau mong bác xem giúp

Command: tinhthang

CADViet.com © 2007

Select objects: f

First fence point:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]:

Specify endpoint of line or [undo]: 9 found

 

Select objects:

Chieu cao bac150

; error: no function definition: SS2ENT

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Cảm ơn bác đã chia sẻ, nhưng khi em dùng thì gặp lỗi như sau mong bác xem giúp

[/color]

Xin lỗi bạn, đoạn code trên bị lỗi vì thiếu hàm ss2ent. Hàm này là hàm tôi thường dùng, nên tôi quên mất copy nó vào đoạn mã trên.

 

Sau khi bổ sung hàm ss2ent, đoạn mã trên sẽ trở thành:

(defun c:tinhthang()
(defun l2bac(ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
)
(list p1 p2)
)
(setq
ssbac (ssget '((0 . "LINE")))
hbac (getdist "\nChieu cao bac")
lstent (ss2ent ssbac)
ttbac (mapcar 'l2bac lstent)
index 0.0
)
(command ".3dmesh")
(command (* 2 (length lstent)) 2)
(foreach pp ttbac
(setq
caoht (* index hbac)
index (+ index 1.0)
p1 (car pp)
p2 (cadr pp)
x1 (car p1)
y1 (cadr p1)
x2 (car p2)
y2 (cadr p2)
za caoht
zb (+ caoht hbac)
p1a (list x1 y1 za)
p1b (list x1 y1 zb)
p2a (list x2 y2 za)
p2b (list x2 y2 zb)
)
(command p1a p2a p1b p2b)
)
)
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)

  • Vote tăng 2

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

(defun c:tinhthang()
 (defun l2bac(ent)
   (setq
     tt (entget ent)
     p1 (cdr (assoc 10 tt))
     p2 (cdr (assoc 11 tt))
   )
   (list p1 p2)
 )
 (setq
   ssbac (ssget '((0 . "LINE")))
   hbac (getdist "\nChieu cao bac")
   lstent (ss2ent ssbac)
   ttbac (mapcar 'l2bac lstent)
   index 0.0
 )
 (command ".3dmesh")
 (command (* 2 (length lstent)) 2)
 (foreach pp ttbac    
   (setq
     caoht (* index hbac)
     index (+ index 1.0)
     p1 (car pp)
  p2 (cadr pp)
  x1 (car p1)
  y1 (cadr p1)
  x2 (car p2)
  y2 (cadr p2)
  za caoht
  zb (+ caoht hbac)
     p1a (list x1 y1 za)
     p1b (list x1 y1 zb)
     p2a (list x2 y2 za)
     p2b (list x2 y2 zb)      
   )
   (command p1a p2a p1b p2b)
 )
)

 

Đầu tiên là mặt bằng của bạn:

Thang01.gif

 

bạn đổi viewport để xem dạng phối cảnh:

thang02.gif

 

dùng lệnh tinhthang để vẽ 3d của bậc thang:

thang03.gif

 

dùng lệnh shade để xem thang dạng có diện:

thang04.gif

 

Xoay để lấy mặt đứng biên:

thang05.gif

 

Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

 

không vẽ được như ý muốn !

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Command: tinhthang

 

Select objects: Specify opposite corner: 4 found

 

Select objects:

Chieu cao bac150

; error: no function definition: SS2ENT

 

Command:

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Command: tinhthang

 

Select objects: Specify opposite corner: 4 found

 

Select objects:

Chieu cao bac150

; error: no function definition: SS2ENT

 

Command:

Hãy đọc kỹ lại bài viết bổ sung của bác Hoành bạn ơi.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

 

Hì, tớ hồi âm đây :

phải tính trước chiều cao bậc thì chưa hay lắm vì phải nhẩm trước, bác sửa thành chiếu cao tầng có lẽ hay hơn.

Phần thang thẳng, khi qua chiếu nghỉ ( đoạn giữa) chiếu nghỉ thành hình tam giác bác ạ

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

chà chà e tính dùng nhưng xem ra thấy còn chưa hoàn chỉnh lắm nên hi vọng bác sớm hoàn thiện để chia sẻ cho anh em một bản hoàn chỉnh nhất

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bác Hoành làm như thế là cố gắng với anh em lắm rồi. Mình nghĩ những chỗ như chiếu nghỉ thì chúng ta chịu khó tách ra thành 2 thang, sau đó ghép chúng lại.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Sao mình đã tải file lisp mới về nhưng appload vào Cad ( cả 2 Cad 2005 và 2008) nhưng đều không sữ dụng được, khi nhập command: tinhthang - enter thì Cad báo là too many arguments, bạn nào đã dùng rồi thì chỉ cho mình với, mình thao tác có điểm nào sai o? Mình nghĩ vấn đề là ở chổ file lisp đó, có cần chỉnh sữa lại gì trước khi load vào Cad o? Thanks in advance

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
không vẽ được như ý muốn !

 

-Lệnh này rất hay,mình cũng làm nhập lung tung 1 hồi thi có cũng hiện nhập chiều cao bậc.

-Nhưng lúc chọn góc thì hơi khó , nên lúc đã hoàn thành thang thì thang lại nằm 1 chổ khác.

-Bác Nguyen Hoanh xem lại dùm nha. Lệnh như thế thì cũng ok.

Nghĩa là:

B1: Command: TINHTHANG

B2: Select objects: f

B3: Select objects

B4: Nhập chiều cao bậc => ok

Như vậy thì tốt quá.

 

 

Đây là lệnh mình làm.

 

Command: TINHTHANG

 

Select objects: f

 

Specify first fence point:

Specify next fence point or [undo]:

Specify next fence point or [undo]:

................................................

Specify next fence point or [undo]:

Specify next fence point or [undo]:

Specify next fence point or [undo]: 17 found

 

Select objects: 150

Specify opposite corner:

 

Invalid window specification.

Specify opposite corner: Specify opposite corner: 0

0 found

Select objects: 150

Specify opposite corner:

 

Invalid window specification.

Specify opposite corner: Specify opposite corner:

 

Invalid window specification.

Specify opposite corner: Specify opposite corner: 150

0 found

Select objects:

 

Chieu cao bac150

.3dmesh

Enter size of mesh in M direction: 34

Enter size of mesh in N direction: 2

Specify location for vertex (0, 0):

Specify location for vertex (0, 1):

Specify location for vertex (1, 0):

Specify location for vertex (1, 1):

Specify location for vertex (2, 0):

Specify location for vertex (2, 1):

Specify location for vertex (3, 0):

Specify location for vertex (3, 1):

Specify location for vertex (4, 0):

Specify location for vertex (4, 1):

Specify location for vertex (5, 0):

Specify location for vertex (5, 1):

Specify location for vertex (6, 0):

Specify location for vertex (6, 1):

Specify location for vertex (7, 0):

Specify location for vertex (7, 1):

Specify location for vertex (8, 0):

Specify location for vertex (8, 1):

Specify location for vertex (9, 0):

Specify location for vertex (9, 1):

Specify location for vertex (10, 0):

Specify location for vertex (10, 1):

Specify location for vertex (11, 0):

Specify location for vertex (11, 1):

Specify location for vertex (12, 0):

Specify location for vertex (12, 1):

Specify location for vertex (13, 0):

Specify location for vertex (13, 1):

Specify location for vertex (14, 0):

Specify location for vertex (14, 1):

Specify location for vertex (15, 0):

Specify location for vertex (15, 1):

Specify location for vertex (16, 0):

Specify location for vertex (16, 1):

Specify location for vertex (17, 0):

Specify location for vertex (17, 1):

Specify location for vertex (18, 0):

Specify location for vertex (18, 1):

Specify location for vertex (19, 0):

Specify location for vertex (19, 1):

Specify location for vertex (20, 0):

Specify location for vertex (20, 1):

Specify location for vertex (21, 0):

Specify location for vertex (21, 1):

Specify location for vertex (22, 0):

Specify location for vertex (22, 1):

Specify location for vertex (23, 0):

Specify location for vertex (23, 1):

Specify location for vertex (24, 0):

Specify location for vertex (24, 1):

Specify location for vertex (25, 0):

Specify location for vertex (25, 1):

Specify location for vertex (26, 0):

Specify location for vertex (26, 1):

Specify location for vertex (27, 0):

Specify location for vertex (27, 1):

Specify location for vertex (28, 0):

Specify location for vertex (28, 1):

Specify location for vertex (29, 0):

Specify location for vertex (29, 1):

Specify location for vertex (30, 0):

Specify location for vertex (30, 1):

Specify location for vertex (31, 0):

Specify location for vertex (31, 1):

Specify location for vertex (32, 0):

Specify location for vertex (32, 1):

Specify location for vertex (33, 0):

Specify location for vertex (33, 1):

Command: nil

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

(defun c:tinhthang()
(defun l2bac(ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
)
(list p1 p2)
)
(setq
ssbac (ssget '((0 . "LINE")))
hbac (getdist "\nChieu cao bac")
lstent (ss2ent ssbac)
ttbac (mapcar 'l2bac lstent)
index 0.0
)
(command ".3dmesh")
(command (* 2 (length lstent)) 2)
(foreach pp ttbac
(setq
caoht (* index hbac)
index (+ index 1.0)
p1 (car pp)
p2 (cadr pp)
x1 (car p1)
y1 (cadr p1)
x2 (car p2)
y2 (cadr p2)
za caoht
zb (+ caoht hbac)
p1a (list x1 y1 za)
p1b (list x1 y1 zb)
p2a (list x2 y2 za)
p2b (list x2 y2 zb)
)
(command p1a p2a p1b p2b)
)
)
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)

 

Đầu tiên là mặt bằng của bạn:

Thang01.gif

 

bạn đổi viewport để xem dạng phối cảnh:

thang02.gif

 

dùng lệnh tinhthang để vẽ 3d của bậc thang:

thang03.gif

 

dùng lệnh shade để xem thang dạng có diện:

thang04.gif

 

Xoay để lấy mặt đứng biên:

thang05.gif

 

Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

DOWNLOAD VỀ SỬ DỤNG ĐƯỢC ĐÚNG MỘT LẦN, CÒN CÁC LẦN SAU VÀO LỆNH NHƯ VẬY NÓ RA HÌNH CHI CHI ẤY. CÓ BÁC NÀO GẶP PHẢI LỖI NHƯ TÔI CHƯA, CHIA SẺ VỚI :)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

(defun c:tinhthang()
(defun l2bac(ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
)
(list p1 p2)
)
(setq
ssbac (ssget '((0 . "LINE")))
hbac (getdist "\nChieu cao bac")
lstent (ss2ent ssbac)
ttbac (mapcar 'l2bac lstent)
index 0.0
)
(command ".3dmesh")
(command (* 2 (length lstent)) 2)
(foreach pp ttbac
(setq
caoht (* index hbac)
index (+ index 1.0)
p1 (car pp)
p2 (cadr pp)
x1 (car p1)
y1 (cadr p1)
x2 (car p2)
y2 (cadr p2)
za caoht
zb (+ caoht hbac)
p1a (list x1 y1 za)
p1b (list x1 y1 zb)
p2a (list x2 y2 za)
p2b (list x2 y2 zb)
)
(command p1a p2a p1b p2b)
)
)
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)

 

Đầu tiên là mặt bằng của bạn:

Thang01.gif

 

bạn đổi viewport để xem dạng phối cảnh:

thang02.gif

 

dùng lệnh tinhthang để vẽ 3d của bậc thang:

thang03.gif

 

dùng lệnh shade để xem thang dạng có diện:

thang04.gif

 

Xoay để lấy mặt đứng biên:

thang05.gif

 

Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

Có ai giúp mình không, sao mình vẽ hoài mà vẫn cứ bị như vậy. Đang rất cần. Cám ơn các huynh trước nha.

http://www.cadviet.com/upfiles/3/thang_luon_17_bac_ko.dwg

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

nếu bác Hoành có thời gian tạo luôn cái tiện ích vẽ thang cài trực tiếp vào máy tính kiểu như speedCAD thì hay quá.mỗi khi cần thi cài vào dùng luôn.nên kết hợp luôn 1 số tiện ích vào trong đó luôn thì tuyệt cú mèo.

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

(defun c:tinhthang()
(defun l2bac(ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
)
(list p1 p2)
)
(setq
ssbac (ssget '((0 . "LINE")))
hbac (getdist "\nChieu cao bac")
lstent (ss2ent ssbac)
ttbac (mapcar 'l2bac lstent)
index 0.0
)
(command ".3dmesh")
(command (* 2 (length lstent)) 2)
(foreach pp ttbac
(setq
caoht (* index hbac)
index (+ index 1.0)
p1 (car pp)
p2 (cadr pp)
x1 (car p1)
y1 (cadr p1)
x2 (car p2)
y2 (cadr p2)
za caoht
zb (+ caoht hbac)
p1a (list x1 y1 za)
p1b (list x1 y1 zb)
p2a (list x2 y2 za)
p2b (list x2 y2 zb)
)
(command p1a p2a p1b p2b)
)
)
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)

 

Đầu tiên là mặt bằng của bạn:

Thang01.gif

 

bạn đổi viewport để xem dạng phối cảnh:

thang02.gif

 

dùng lệnh tinhthang để vẽ 3d của bậc thang:

thang03.gif

 

dùng lệnh shade để xem thang dạng có diện:

thang04.gif

 

Xoay để lấy mặt đứng biên:

thang05.gif

 

Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

Anh Hoanh ơi , Autolisp của Anh hay lắm nhưng mà Em vẽ nó cú dính nhau ấy , Anh chỉ Em với ? hic

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Bạn mệt mỏi khi phải dóng để vẽ mặt đứng thang phức tạp?

 

Hãy để lisp tính thang của CADViet giúp bạn phần nào. Bạn copy đoạn code dưới đây vào file một file lisp rồi appload lên và dùng lệnh tinhthang.

 

(defun c:tinhthang()
(defun l2bac(ent)
(setq
tt (entget ent)
p1 (cdr (assoc 10 tt))
p2 (cdr (assoc 11 tt))
)
(list p1 p2)
)
(setq
ssbac (ssget '((0 . "LINE")))
hbac (getdist "\nChieu cao bac")
lstent (ss2ent ssbac)
ttbac (mapcar 'l2bac lstent)
index 0.0
)
(command ".3dmesh")
(command (* 2 (length lstent)) 2)
(foreach pp ttbac
(setq
caoht (* index hbac)
index (+ index 1.0)
p1 (car pp)
p2 (cadr pp)
x1 (car p1)
y1 (cadr p1)
x2 (car p2)
y2 (cadr p2)
za caoht
zb (+ caoht hbac)
p1a (list x1 y1 za)
p1b (list x1 y1 zb)
p2a (list x2 y2 za)
p2b (list x2 y2 zb)
)
(command p1a p2a p1b p2b)
)
)
(defun ss2ent(ss / sodt index lstent)
(setq
sodt (if ss (sslength ss) 0)
index 0
)
(repeat sodt
(setq ent (ssname ss index)
index (1+ index)
lstent (cons ent lstent)
)
)
(reverse lstent)
)

 

Đầu tiên là mặt bằng của bạn:

Thang01.gif

 

bạn đổi viewport để xem dạng phối cảnh:

thang02.gif

 

dùng lệnh tinhthang để vẽ 3d của bậc thang:

thang03.gif

 

dùng lệnh shade để xem thang dạng có diện:

thang04.gif

 

Xoay để lấy mặt đứng biên:

thang05.gif

 

Lệnh tính thang không thể vẽ kỹ được thang cho bạn, nhưng chắc chắn nó sẽ giúp bạn làm những thao tác cơ bản để có được những nét phôi của thang. Từ đó bạn sẽ thêm nét để trở thành mặt chiếu hay phối cảnh của thang.

 

Rất mong có được sự hồi âm sau khi sử dụng Lisp.

minh hỏi sao đây trơi /không biết sao luôn

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

sao mình vẽ tới cuối lệnh cad báo lỗi này : error : no function definition : SETQSODT 

Bác Hoành chỉ giúp em với !

Em mới tập dùng list , bác thông cảm ! thanks bác !

; error: no function definition: SETQSODT
 
; error: no function definition: SETQSODT
 
; error: no function definition: SETQSODT

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

mình cũng bị lỗi này: "error : no function definition : SETQSODT"

nên ko dùng dc lisp!

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay


×