Đến nội dung


Hình ảnh
- - - - -

Vẽ thang bằng lisp


  • Please log in to reply
25 replies to this topic

#21 ttbinh54

ttbinh54

    biết pan

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

Đã gửi 12 August 2011 - 01:08 PM

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:
Hình đã gửi

bạn đổi viewport để xem dạng phối cảnh:
Hình đã gửi

dùng lệnh tinhthang để vẽ 3d của bậc thang:
Hình đã gửi

dùng lệnh shade để xem thang dạng có diện:
Hình đã gửi

Xoay để lấy mặt đứng biên:
Hình đã gửi

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

#22 ttbinh54

ttbinh54

    biết pan

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

Đã gửi 12 August 2011 - 01:15 PM

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:
Hình đã gửi

bạn đổi viewport để xem dạng phối cảnh:
Hình đã gửi

dùng lệnh tinhthang để vẽ 3d của bậc thang:
Hình đã gửi

dùng lệnh shade để xem thang dạng có diện:
Hình đã gửi

Xoay để lấy mặt đứng biên:
Hình đã gửi

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

#23 tranquocbaoxd191

tranquocbaoxd191

    Chưa sử dụng CAD

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

Đã gửi 31 May 2013 - 08:57 AM

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 laugh.gif

bạn ơi chỉ giúp mình cách vẽ mặt cắt thang bằng lisp vt với! cảm ơn bn nhiều.


  • 0

#24 quytran.arc

quytran.arc

    Chưa sử dụng CAD

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

Đã gửi 06 August 2013 - 10:11 AM

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

  • 0

#25 sumi

sumi

    biết lệnh array

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

Đã gửi 06 August 2013 - 12:35 PM

mình cũng bị lỗi này: "error : no function definition : SETQSODT"
nên ko dùng dc lisp!
  • 0
"Xin chào bạn. Đây là tổng đài tin nhắn. Ấn phím 1 để có 1 lời khen. Phím 2 cho một lời chúc tốt đẹp. Phím 3 cho 1 nụ hôn. Phím 4 cho 1 cuộc hẹn. Nếu muốn tất cả hãy bấm số của tôi"

#26 tai8820

tai8820

    Edu level: ao10

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

Đã gửi 08 November 2014 - 07:25 PM

chào mọi người,mình cũng đang test lisp này,

Làm theo các buớc như hướng dẫn đến bước nhập chiều cao bậc thì mình nhập vào nhưng enter xong thì không có gì cả.

Mình đã chuyển sang góc view như hướng dẫn, cũng đã tắt chế độ bắt điểm nhưng vẫn không làm được,

Mong mọi người giúp đỡ


  • 0