Đến nội dung


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

[yêu cầu &thảo luận] lisp vẽ mặt bằng kết cấu


  • Please log in to reply
118 replies to this topic

#21 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 12:23 PM

lisp vetuong_vt_vc.lsp của phan ngoc tu kts bi loi rồi. Tải về nó hỏng hết dấu xuống dòng nên cad ko hiểu. Cadviet nhiều lisp bị lỗi như thế.:(


  • 0

#22 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 12:28 PM

lisp của anh ha ngon rồi nhưng mà khi có trục dầm phụ thì bị lỗi chút xíu :D. Anh sửa giúp em nhé.21028_untitled_1.jpg


  • 0

#23 Tue_NV

Tue_NV

    KS Võ Quang Tuệ

  • Moderator
  • PipPipPipPipPipPipPip
  • 4296 Bài viết
Điểm đánh giá: 3804 (đỉnh cao)

Đã gửi 18 May 2013 - 02:50 PM

Gửi bạn phongtran86 dùng tạm

Bạn dùng lệnh NETLOAD trỏ đến file MBKC1.dll sau đó dùng lệnh MBKC1 và thực hiện như video (Phiên bản chạy trên AutoCAD 2013 và 2014)

Link : http://www.cadviet.c...06039_mbkc1.rar

 

PS : Ai thấy vẽ bằng Mline nhanh hơn thì cứ vẽ xin đừng chém :D

 

[media][\media]

 

Khá hay đó bạn :)

Bạn có thể up đoạn video vẽ dầm trên mặt bằng kết cấu được không?

Cảm ơn bạn 


  • 0

#24 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 03:15 PM

Bạn tuệ có thể sửa giúp mình lisp của phan ngọc tú ko? Líp lâu rồi nên h bị lỗi @Tue_NV


  • 0

#25 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 04:44 PM

líp HA cua anh ha sao vẽ trên file mới tinh thi đc. vẽ trên 1 số file có rồi thi bị lỗi ko thấy có hình offset đâu. ko hiểu luôn


  • 0

#26 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 May 2013 - 04:56 PM

líp HA cua anh ha sao vẽ trên file mới tinh thi đc. vẽ trên 1 số file có rồi thi bị lỗi ko thấy có hình offset đâu. ko hiểu luôn

1). Có thể do nó chọn nhầm thêm các đối tượng khác ngoài hệ trục chăng?

2). Cách sửa lỗi lisp down về nhưng chỉ có 1 dòng: xem link này.

http://www.cadviet.c...p-editor/page-2

3). Dầm phụ, dầm xiên, dầm cong, dầm méo... ư? Bạn y/c cho trường hợp nào thì tôi mần cho trường hợp đó thôi. Viết xong mới biết có lisp của PNT.KTS >> bạn nên dùng của PNT.KTS chắc sẽ tổng quát hơn.


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


#27 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 05:08 PM

cảm ơn hà nhé. lỗi 1 là do file cad. không hiểu vì sao hinh chữ nhật mặt bằng nó chạy ra 1 đoạn khá xa so với trục. File này mình copy bản vẽ khác sang nó cung bị thế. point kích cách xa hình bản vẽ sang. ko biết vì sao :D


  • 0

#28 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 07:21 PM

http://www.cadviet.c...ong_vt_vc_1.lsp Đây là file lisp của phan ngoc tu kts :D  Mình đã chỉnh được rồi nhưng có cái bất tiện chút là các đường trục phải giao nhau tại endpoint của nó, ko thi nó sẽ dài ra. :D với lại đường dim nó, bác bỏ nó đi họ em dc không :) Cảm ơn HA nhiều nhiều


  • 0

#29 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 May 2013 - 07:42 PM

Srr bạn. Tình cờ đọc được bên ấy nên tôi kéo link qua để giới thiệu cho bạn. Ai ngờ, test thì thấy đúng là không ổn. Nếu lisp không có những dòng ghi chú thì còn hy vọng.


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


#30 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 07:56 PM

ANh Hà với Anh Tue_NV vào giúp nào :)


  • 0

#31 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 May 2013 - 07:59 PM

Giúp cái gì? Bản vẽ nào? Hay giúp sửa "lisp 1 dòng"?


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


#32 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 08:12 PM

Lisp của Pham ngoctu KTS em đã dung vlisp chạy rồi, nhung có chut bất tiện là các đường trục phải giao nhau tại enpoint. nếu không sẽ có đoạn thừa bên ngoài. Với lại lisp này có cả dim với trục định vị nữa ( co lệnh vẽ đường tròn ở cuối rồi nhập bán kính). anh chỉnh sửa và bỏ đi phần dim và vẽ trục định vị này) giúp em. phần tường vẽ ra anh để ở layer hiện thời cho em. ( ở đây tạo layer tường) :D Lisp em up link trên đấy

http://www.cadviet.c...c_1.lsp&w=7125421028_hve.png


  • 0

#33 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 May 2013 - 08:25 PM

1). Cách loại DIM ra khỏi lisp:

Thay:

(dimtuong)

Bằng:

;(dimtuong)

2). Loại bỏ phần tường thừa 4 phía:

Không sửa được, bởi bản chất lisp này là thế. Sửa nó chẳng khác nào viết mới, mà viết cho trường hợp tổng quát thì oải lắm.

 

(dimtuong)
Bằng:
;  (dimtuong)
2). Loại bỏ phần tường thừa bên ngoài:
Không sửa được, vì cách viết này bản chất nó là thế. Sửa nó chẳng khác nào viết mới hoàn toàn. Mà viết cho trường hợp tổng quát thì oải lắm.

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


#34 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 08:55 PM

Bác cố giúp em đi :( Hu hu


  • 0

#35 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 18 May 2013 - 10:27 PM

Đừng huhu nữa! Bạn dùng lisp bán tự động này để vẽ, tuy có hơi lâu tí, nhưng nó lành!

 

;Doan Van Ha - CADViet.com - Ngay 18/05/2013
;Chuc nang: ve luoi tuong theo he truc, kieu ban tu dong.
(defun C:HA1( / lstpt lstpt1 ent)
 (vl-load-com)
 (command "undo" "be")
 (or kc (setq kc 110))
 (setq kc (cond ((getdist (strcat "\nBe day tuong <" (rtos kc 2 2) ">:"))) (kc)))
 (while (setq pt (getpoint "\nPick vao giua tung o kin [enter de ket thuc]: "))
  (command "boundary" pt "")
  (setq lstpt (mapcar 'cdr (vl-remove-if-not '(lambda(x) (= (car x) 10)) (entget (setq ent (entlast))))))
  (setq lstpt1 (append lstpt lstpt1))
  (HA:hcn (car lstpt) (caddr lstpt) kc)
  (command "erase" ent ""))
 (setq lstpt1 (vl-sort lstpt1 '(lambda(p1 p2) (if (equal (car p1) (car p2) 1E-8) (< (cadr p1) (cadr p2)) (< (car p1) (car p2))))))
 (HA:hcn (car lstpt1) (last lstpt1) (- kc))
 (command "undo" "e")
 (princ))
;----- Ve HCN
(defun HA:hcn(p1 p3 kc / p1x p3x)
 (setq p1x (list (+ (min (car p1) (car p3)) kc) (+ (min (cadr p1) (cadr p3)) kc))
       p3x (list (- (max (car p1) (car p3)) kc) (- (max (cadr p1) (cadr p3)) kc)))
 (command "rectang" "non" p1x "non" p3x))

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


#36 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 18 May 2013 - 10:54 PM

hi hì. hàm này bán tự động thật :D. Vẫn mong chờ. hì hì


  • 0

#37 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 19 May 2013 - 10:31 AM

:) Up lên nào


  • 0

#38 phongtran86

phongtran86

    biết lệnh offset

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

Đã gửi 19 May 2013 - 04:34 PM

sếp Tue_NV ơi! Vào giúp đi nào :D


  • 0

#39 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 20 May 2013 - 09:54 AM

Khó! Phức tạp! Nhất là tìm cho ra thuật toán để giải 1 bài toán tưởng chừng như đơn giản!

Lisp này vẽ lưới tường theo hệ các line trục đã có. Yêu cầu: các ô phải là hình chữ nhật.

(bạn phongtran86 chắc phải 10 like mới xứng  :lol:)

67029_untitled_9.png

 

;Doan Van Ha - CADViet.com - Ngay 20/05/2013
;Chuc nang: ve luoi tuong theo he truc // truc X va // truc Y, luoi break bat ky nhung cac o phai la HCN.
(defun C:HA(/ lst giao x y ss lstg1 lstg ent ptx pty kcm)
 (vl-load-com) (command "undo" "be") (setq cmd (getvar "cmdecho") hpb (getvar "hpbound")) (setvar "cmdecho" 0) (setvar "hpbound" 1)
 (or kc (setq kc 110))
 (setq kc (cond ((getdist (strcat "\nBe day tuong <" (rtos kc 2 2) ">:"))) (kc)))
 (princ "\nChon cac Line duong truc...")
 (setq lst (vl-remove-if 'listp (mapcar 'cadr (ssnamex (ssget '((0 . "LINE")))))))
 (foreach ent1 lst
  (setq lstg1 nil)
  (foreach ent2 lst
   (if (setq giao (car (HA:Giao (vlax-ename->vla-object ent1) (vlax-ename->vla-object ent2) acExtendNone)))
    (setq lstg1 (cons giao lstg1))))
  (if lstg1 (setq lstg (append lstg1 lstg))))
 (setq lstg (vl-sort lstg '(lambda(p1 p2) (if (equal (car p1) (car p2) 1E-8) (< (cadr p1) (cadr p2)) (< (car p1) (car p2))))))
 (setq lstg (LM:UniqueFuzz lstg 1E-8))
 (HA:hcn (car lstg) (last lstg) (/ kc -2.))
 (setq kcm (* 0.9 (KcMin lstg)))
 (setq ss (ssadd) ptx (polar (car lstg) 0 kcm))
 (while (< (car ptx) (car (last lstg)))
  (setq pty (polar ptx (/ pi 2) kcm))
  (while (< (cadr pty) (cadr (last lstg)))
   (setq ent (entlast))
   (command "boundary" pty "")
   (if (setq ent (entnext ent)) (setq ss (ssadd ent ss)))
   (setq pty (polar pty (/ pi 2) kcm)))
  (setq ptx (polar ptx 0 kcm)))
 (load "overkillsup.lsp")
 (acet-overkill2 (list ss 1E-8 nil "N" "N" "N"))
 (setq ss (ssget "w" (polar (car lstg) (* 1.25 pi) 1) (polar (last lstg) (* 0.25 pi) 1) '((0 . "LWPOLYLINE"))))
 (foreach ent (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))
  (setq lst (mapcar 'cdr (vl-remove-if-not '(lambda(x) (= (car x) 10)) (entget ent))))
  (setq lst (vl-sort lst '(lambda(p1 p2) (if (equal (car p1) (car p2) 1E-8) (< (cadr p1) (cadr p2)) (< (car p1) (car p2))))))
  (HA:hcn (car lst) (last lst) (/ kc 2.))
  (entdel ent))
 (setq ss (ssget "w" (polar (car lstg) (* 1.25 pi) 1) (polar (last lstg) (* 0.25 pi) 1) '((0 . "LWPOLYLINE"))))
 (acet-overkill2 (list ss 1E-8 nil "N" "N" "N"))
 (setvar "cmdecho" cmd) (setvar "hpbound" hpb) (command "undo" "e") (princ))
(defun HA:Giao(obj1 obj2 mode / l r)
 (setq l (vlax-invoke obj1 'intersectwith obj2 mode))
 (repeat (/ (length l) 3)
  (setq r (cons (list (car l) (cadr l) (caddr l)) r) l (cdddr l)))
 r)
(defun HA:hcn(p1 p3 kc / p1x p3x)
 (setq p1x (list (+ (min (car p1) (car p3)) kc) (+ (min (cadr p1) (cadr p3)) kc))
       p3x (list (- (max (car p1) (car p3)) kc) (- (max (cadr p1) (cadr p3)) kc)))
 (command "rectang" "non" p1x "non" p3x))
(defun LM:RemoveOnce(x l)
 (if l
  (if (equal x (car l))
   (cdr l)
   (cons (car l) (LM:RemoveOnce x (cdr l))))))
(defun KcMin(lst / lst1)
 (foreach pt lst
  (setq lst1 (append (mapcar '(lambda(x) (distance pt x)) (LM:RemoveOnce pt lst)) lst1)))
 (apply 'min lst1))
(defun LM:UniqueFuzz(l fz)
 (if l 
  (cons (car l) (LM:UniqueFuzz (vl-remove-if '(lambda(x) (equal x (car l) fz)) (cdr l)) fz))))

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


#40 gia_bach

gia_bach

    biết lệnh adcenter

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

Đã gửi 20 May 2013 - 11:14 AM

@Ha : tôi không sử dụng Lisp này nhưng thông thường chiều rộng dầm theo 2 phương (ngang dọc) là khác nhau.

nên nhiều khả năng là sẽ có yêu cầu này ? Hà chuẩn bị trước nhé!


  • 0