Đến nội dung


Hình ảnh
- - - - -

[Yêu cầu] lisp vẽ mặt cắt dầm


  • Please log in to reply
13 replies to this topic

#1 tandai1102

tandai1102

    biết zoom

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

Đã gửi 23 July 2011 - 10:56 AM

em tìm trên diễn đàn thấy có rất nhiều lisp viết vẽ mặt cắt dầm nhưng thấy không vừa ý,
em nhờ mấy anh viết dùm em cái lisp mặt cắt dầm như chú thích trong hình, rất mong các anh giúp đỡ.

Hình đã gửi

Trong đó:
+Có thể thay đổi tỷ lệ vẽ
+Dimstyle = dimstyle hiện hành.
+Thường vẽ mặt cắt dầm là tỷ lệ 1:20 (có 2 loại text : text height = 2.5*20 =50, text cao là =5*20=100)
+nếu là tỷ lệ 1:50 (có 2 loại text : text height = 2.5*50 =125, text cao là =5*50=250)
tương tự cho các tỷ lệ còn lại
+hay text height = text trong dimstyle hiện hành xplode ra, 1 cái bằng, 1 cái scale 2 lần lên.
+Các đường dim theo kích thước của dầm, nghĩa là lúc nhập sao thì dim ra như vậy( vd: nhập tiết diện dầm 200x400 thì dim ra như vậy )
khoảng cách dim tới dầm là = baseline. Dimstyle = dimstyle hiện hành.
+Coss cao độ có thể thay đổi được lúc nhập.
Chi tiết cosst cao độ như ghi chú.
các ghi chú thép có thể thay đổi lúc nhập
các thanh thép trên mặt cắt thay đổi lúc nhập

layer:

thép đai: rbar
thép: steel
bao dầm: beam
dim: dim
leader: dim
text 25: text 25
text 50: text 50



em xin chân thành cảm ơn và chúc cho diễn đàn phát triển ngày càng vững mạnh!

do chưa đọc thông báo quy định về lập topic yêu cầu. em sửa lại cho đúng quy định diễn đàn.

  • 0

#2 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 25 July 2011 - 04:40 PM

em tìm trên diễn đàn thấy có rất nhiều lisp viết vẽ mặt cắt dầm nhưng thấy không vừa ý,
em nhờ mấy anh viết dùm em cái lisp mặt cắt dầm như chú thích trong hình, rất mong các anh giúp đỡ.

Hình đã gửi

Trong đó:
+Có thể thay đổi tỷ lệ vẽ
+Dimstyle = dimstyle hiện hành.
+Thường vẽ mặt cắt dầm là tỷ lệ 1:20 (có 2 loại text : text height = 2.5*20 =50, text cao là =5*20=100)
+nếu là tỷ lệ 1:50 (có 2 loại text : text height = 2.5*50 =125, text cao là =5*50=250)
tương tự cho các tỷ lệ còn lại
+hay text height = text trong dimstyle hiện hành xplode ra, 1 cái bằng, 1 cái scale 2 lần lên.
+Các đường dim theo kích thước của dầm, nghĩa là lúc nhập sao thì dim ra như vậy( vd: nhập tiết diện dầm 200x400 thì dim ra như vậy )
khoảng cách dim tới dầm là = baseline. Dimstyle = dimstyle hiện hành.
+Coss cao độ có thể thay đổi được lúc nhập.
Chi tiết cosst cao độ như ghi chú.
các ghi chú thép có thể thay đổi lúc nhập
các thanh thép trên mặt cắt thay đổi lúc nhập

layer:

thép đai: rbar
thép: steel
bao dầm: beam
dim: dim
leader: dim
text 25: text 25
text 50: text 50



em xin chân thành cảm ơn và chúc cho diễn đàn phát triển ngày càng vững mạnh!

do chưa đọc thông báo quy định về lập topic yêu cầu. em sửa lại cho đúng quy định diễn đàn.

thú thật, dù mình ko phải lisper pro. nhưng mình thấy lisp bạn yêu cầu ko khó nhưng nhiều dữ liệu wá. vì vậy bạn phải kiên nhẫn nha. muốn viết thì tốn khá nhiều thời gian mà ko lo làm việc mà cứ coding là... ặc.
:)
  • 0
Hình đã gửi

#3 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 25 July 2011 - 04:46 PM

Dù k phải người viết lisp nhưng mình thấy, chi tiết cos có thể thay đổi lúc nhập, thép thay đổi lúc nhập, số dim thay đổi lúc nhập, ghi chú thay đổi lúc nhập....Vậy thì thà bạn làm cái Block thuộc tính động hoặc cóp hẳn sang mà stretch, edit còn nhàn hơn, lisp liếc làm j nữa ^^
  • 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


#4 tandai1102

tandai1102

    biết zoom

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

Đã gửi 25 July 2011 - 05:02 PM

Dù k phải người viết lisp nhưng mình thấy, chi tiết cos có thể thay đổi lúc nhập, thép thay đổi lúc nhập, số dim thay đổi lúc nhập, ghi chú thay đổi lúc nhập....Vậy thì thà bạn làm cái Block thuộc tính động hoặc cóp hẳn sang mà stretch, edit còn nhàn hơn, lisp liếc làm j nữa ^^


cái lisp này mà có thì thời gian vẽ 1 cái dầm sẽ rất là nhanh, khi qua máy tính khác làm chỉ việc copy cái lisp sang mà không cần phải copy quá nhiều thứ.
thời gian thao tác trên block, hay copy và stretch và sửa text so với cái lisp thì lisp nhanh hơn nhiều.
hồi giờ toàn làm vậy, thấy hơi chậm và bất tiện nên nhờ mấy anh giúp dùm. rất mong các anh dành chút thời gian rảnh giúp đỡ!
em xin cảm ơn!
  • 0

#5 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 27 July 2011 - 04:31 PM

cái lisp này mà có thì thời gian vẽ 1 cái dầm sẽ rất là nhanh, khi qua máy tính khác làm chỉ việc copy cái lisp sang mà không cần phải copy quá nhiều thứ.
thời gian thao tác trên block, hay copy và stretch và sửa text so với cái lisp thì lisp nhanh hơn nhiều.
hồi giờ toàn làm vậy, thấy hơi chậm và bất tiện nên nhờ mấy anh giúp dùm. rất mong các anh dành chút thời gian rảnh giúp đỡ!
em xin cảm ơn!

sau mấy ngày cặm cụi mình viết theo ý bạn đây:

(defun c:mc(/ ten p1 p2 y1 x1 cd rd nt nd pit pig pid cao tl bl tzo tt td lt lst l20t tzo olds pp ptl olay)
(setq p1 (getpoint "\nchon diem 1: ")
olds (getvar "osmode")
cd (getdist "\nchieu cao dam: ")
rd (getdist "\nchieu rong dam: ")
nt (getint "\nso luong thep tren: ")
pit (getstring "\nnhap duong kinh thep tren: ")
nd (getint "\nso luong thep duoi: ")
pid (getstring "\nnhap duong kinh thep duoi: ")
pig (getstring "\nnhap duong kinh thep dai: ")
cao (getstring "\nnhap cao do dam: ")
tl (getint "\nnhap ty le 1: ")
ten (getstring "\nnhap ten mat cat: ")
x1 (car p1)
y1 (cadr p1)
bl (getvar "dimdli")
tzo (getvar "textsize")
olay (getvar "clayer")
)
(setvar "osmode" 0)
(setq p2 (list (+ x1 rd) (+ y1 cd))
)
(command "layer" "n" "beam" "c" "2" "beam" "l" "continuous" "beam" "s" "beam" "")
(command "rectang" p1 p2)
(command "layer" "n" "rbar" "c" "7" "rbar" "l" "continuous" "rbar" "s" "rbar" "")
(command "offset" "20" (entlast) (list (+ x1 20) (+ y1 20)) "")
(command "fillet" "r" "10")
(command "fillet" "p" "l")
(command "change" "l" "" "p" "LA" "rbar" "")
(command "line" (list (+ x1 37.0711) (- (+ y1 cd) 22.9289)) "@40<-45" "")
(command "offset" "20" (entlast) p1 "")
(command "layer" "n" "steel" "c" "2" "steel" "l" "continuous" "steel" "s" "steel" "")
(command "donut" "0" "20" (list (+ x1 30) (-(+ y1 cd) 30)) "")
(setq tt (entlast))
(command "copy" tt "" p1 (strcat"@0," (rtos (- 60 cd)))"")
(setq td (entlast))
(command "array" tt "" "r" "1" nt (/ (- rd 60) (- nt 1)))
(command "array" td "" "r" "1" nd (/ (- rd 60) (- nd 1)))
(command "layer" "n" "dim" "c" "7" "dim" "l" "continuous" "dim" "s" "dim" "")
(command "dimlinear" p1 (list x1 (cadr p2)) (strcat"@-" (rtos(* bl tl))",0"))
(command "dimlinear" p2 (list x1 (cadr p2)) (strcat"@0," (rtos(* bl tl))))
(command "solid" (list (- x1 (* 6 tl)) (cadr p2)) (list (- x1 (* 3.5 tl)) (+(cadr p2) (* tl 2.5))) (list (- x1 (* 8.5 tl)) (+(cadr p2) (* tl 2.5))) "" "")
(setvar "textsize" (* tl 2.5))
(command "layer" "n" "text 2.5" "c" "2" "text 2.5" "l" "continuous" "text 2.5" "s" "text 2.5" "")
(command "text" (list (- x1 (* 10.5 tl)) (+(cadr p2) (* tl 3))) "" "" cao)
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (-(cadr p2)30)) (strcat "@0," (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nt 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nt 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(command "layer" "s" "text 2.5" "")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nt) "%%c" pit))
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (+ y1 30)) (strcat "@0,-" (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nd 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nd 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nd) "%%c" pid))
(command "layer" "s" "dim" "")
(command "qleader" (list (-(car p2)20) (/(+ y1 (cadr p2)) 2)) (list (cadr l20t) (/(+ y1 (cadr p2))2)) nil)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (/(+ y1 (cadr p2))2)) "" "" (strcat "%%c" pig))
(setq pp (list (/(+ x1 (car p2))2) (- y1 (* 14 tl))))
(setq ptl (list (car pp) (-(cadr pp)(* 3.5 tl))))
(setvar "clayer" "text 2.5")
(command "text" "j" "C" ptl "" "" (strcat "TL: " (rtos tl)))
(command "layer" "n" "text 5.0" "c" "1" "text 5.0" "l" "continuous" "text 5.0" "s" "text 5.0" "")
(setvar "textsize" (* tl 5))
(command "text" "j" "BC" pp "" "" (strcat "%%uMC " ten))
(setvar "osmode" olds)
(setvar "textsize" tzo)
(setvar "clayer" olay)
(princ)
)
bạn chú ý là lúc nhập tỷ lệ VD tl là 1/20 bạn chỉ nhập 20 thôi
còn text là theo ý bạn mình cho text có chiều cao là 2.5 và 5
màu layer là mình tạo theo mẫu của bạn.
khi bạn muốn thể hiện mc ở tl nào thì bạn phải chuyển dim sang tl tương ứng trước cũng như bạn phải chọn text stlye hiện hành. và trong dim phải có Baseline (như ban đầu bạn yêu cầu)
  • 2
Hình đã gửi

#6 tandai1102

tandai1102

    biết zoom

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

Đã gửi 28 July 2011 - 08:52 AM

sau mấy ngày cặm cụi mình viết theo ý bạn đây:


(defun c:mc(/ ten p1 p2 y1 x1 cd rd nt nd pit pig pid cao tl bl tzo tt td lt lst l20t tzo olds pp ptl olay)
(setq p1 (getpoint "\nchon diem 1: ")
olds (getvar "osmode")
cd (getdist "\nchieu cao dam: ")
rd (getdist "\nchieu rong dam: ")
nt (getint "\nso luong thep tren: ")
pit (getstring "\nnhap duong kinh thep tren: ")
nd (getint "\nso luong thep duoi: ")
pid (getstring "\nnhap duong kinh thep duoi: ")
pig (getstring "\nnhap duong kinh thep dai: ")
cao (getstring "\nnhap cao do dam: ")
tl (getint "\nnhap ty le 1: ")
ten (getstring "\nnhap ten mat cat: ")
x1 (car p1)
y1 (cadr p1)
bl (getvar "dimdli")
tzo (getvar "textsize")
olay (getvar "clayer")
)
(setvar "osmode" 0)
(setq p2 (list (+ x1 rd) (+ y1 cd))
)
(command "layer" "n" "beam" "c" "2" "beam" "l" "continuous" "beam" "s" "beam" "")
(command "rectang" p1 p2)
(command "layer" "n" "rbar" "c" "7" "rbar" "l" "continuous" "rbar" "s" "rbar" "")
(command "offset" "20" (entlast) (list (+ x1 20) (+ y1 20)) "")
(command "fillet" "r" "10")
(command "fillet" "p" "l")
(command "change" "l" "" "p" "LA" "rbar" "")
(command "line" (list (+ x1 37.0711) (- (+ y1 cd) 22.9289)) "@40<-45" "")
(command "offset" "20" (entlast) p1 "")
(command "layer" "n" "steel" "c" "2" "steel" "l" "continuous" "steel" "s" "steel" "")
(command "donut" "0" "20" (list (+ x1 30) (-(+ y1 cd) 30)) "")
(setq tt (entlast))
(command "copy" tt "" p1 (strcat"@0," (rtos (- 60 cd)))"")
(setq td (entlast))
(command "array" tt "" "r" "1" nt (/ (- rd 60) (- nt 1)))
(command "array" td "" "r" "1" nd (/ (- rd 60) (- nd 1)))
(command "layer" "n" "dim" "c" "7" "dim" "l" "continuous" "dim" "s" "dim" "")
(command "dimlinear" p1 (list x1 (cadr p2)) (strcat"@-" (rtos(* bl tl))",0"))
(command "dimlinear" p2 (list x1 (cadr p2)) (strcat"@0," (rtos(* bl tl))))
(command "solid" (list (- x1 (* 6 tl)) (cadr p2)) (list (- x1 (* 3.5 tl)) (+(cadr p2) (* tl 2.5))) (list (- x1 (* 8.5 tl)) (+(cadr p2) (* tl 2.5))) "" "")
(setvar "textsize" (* tl 2.5))
(command "layer" "n" "text 2.5" "c" "2" "text 2.5" "l" "continuous" "text 2.5" "s" "text 2.5" "")
(command "text" (list (- x1 (* 10.5 tl)) (+(cadr p2) (* tl 3))) "" "" cao)
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (-(cadr p2)30)) (strcat "@0," (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nt 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nt 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(command "layer" "s" "text 2.5" "")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nt) "%%c" pit))
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (+ y1 30)) (strcat "@0,-" (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nd 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nd 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nd) "%%c" pid))
(command "layer" "s" "dim" "")
(command "qleader" (list (-(car p2)20) (/(+ y1 (cadr p2)) 2)) (list (cadr l20t) (/(+ y1 (cadr p2))2)) nil)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (/(+ y1 (cadr p2))2)) "" "" (strcat "%%c" pig))
(setq pp (list (/(+ x1 (car p2))2) (- y1 (* 14 tl))))
(setq ptl (list (car pp) (-(cadr pp)(* 3.5 tl))))
(setvar "clayer" "text 2.5")
(command "text" "j" "C" ptl "" "" (strcat "TL: " (rtos tl)))
(command "layer" "n" "text 5.0" "c" "1" "text 5.0" "l" "continuous" "text 5.0" "s" "text 5.0" "")
(setvar "textsize" (* tl 5))
(command "text" "j" "BC" pp "" "" (strcat "%%uMC " ten))
(setvar "osmode" olds)
(setvar "textsize" tzo)
(setvar "clayer" olay)
(princ)
)
bạn chú ý là lúc nhập tỷ lệ VD tl là 1/20 bạn chỉ nhập 20 thôi
còn text là theo ý bạn mình cho text có chiều cao là 2.5 và 5
màu layer là mình tạo theo mẫu của bạn.
khi bạn muốn thể hiện mc ở tl nào thì bạn phải chuyển dim sang tl tương ứng trước cũng như bạn phải chọn text stlye hiện hành. và trong dim phải có Baseline (như ban đầu bạn yêu cầu)




cảm ơn anh lp_hai nhiều lắm!

cái lisp vẫn còn chỗ này khi ghi chú bị sai. anh xem rồi sửa lại dùm em chút nha!

Hình đã gửi
  • 0

#7 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 28 July 2011 - 09:34 AM

cảm ơn anh lp_hai nhiều lắm!

cái lisp vẫn còn chỗ này khi ghi chú bị sai. anh xem rồi sửa lại dùm em chút nha!

đã sửa rồi đó bạn

(defun c:mc(/ dz ten p1 p2 y1 x1 cd rd nt nd pit pig pid cao tl bl tzo tt td lt lst l20t tzo olds pp ptl olay)
(setq p1 (getpoint "\nchon diem 1: ")
olds (getvar "osmode")
cd (getdist "\nchieu cao dam: ")
rd (getdist "\nchieu rong dam: ")
nt (getint "\nso luong thep tren: ")
pit (getstring "\nnhap duong kinh thep tren: ")
nd (getint "\nso luong thep duoi: ")
pid (getstring "\nnhap duong kinh thep duoi: ")
pig (getstring "\nnhap duong kinh thep dai: ")
cao (getstring "\nnhap cao do dam: ")
tl (getint "\nnhap ty le 1: ")
ten (getstring "\nnhap ten mat cat: ")
x1 (car p1)
y1 (cadr p1)
bl (getvar "dimdli")
tzo (getvar "textsize")
olay (getvar "clayer")
dz (getvar "dimzin")
)
(setvar "dimzin" 8)
(setvar "osmode" 0)
(setq p2 (list (+ x1 rd) (+ y1 cd))
)
(command "layer" "n" "beam" "c" "2" "beam" "l" "continuous" "beam" "s" "beam" "")
(command "rectang" p1 p2)
(command "layer" "n" "rbar" "c" "7" "rbar" "l" "continuous" "rbar" "s" "rbar" "")
(command "offset" "20" (entlast) (list (+ x1 20) (+ y1 20)) "")
(command "fillet" "r" "10")
(command "fillet" "p" "l")
(command "change" "l" "" "p" "LA" "rbar" "")
(command "line" (list (+ x1 37.0711) (- (+ y1 cd) 22.9289)) "@40<-45" "")
(command "offset" "20" (entlast) p1 "")
(command "layer" "n" "steel" "c" "2" "steel" "l" "continuous" "steel" "s" "steel" "")
(command "donut" "0" "20" (list (+ x1 30) (-(+ y1 cd) 30)) "")
(setq tt (entlast))
(command "copy" tt "" p1 (strcat"@0," (rtos (- 60 cd)))"")
(setq td (entlast))
(command "array" tt "" "r" "1" nt (/ (- rd 60) (- nt 1)))
(command "array" td "" "r" "1" nd (/ (- rd 60) (- nd 1)))
(command "layer" "n" "dim" "c" "7" "dim" "l" "continuous" "dim" "s" "dim" "")
(command "dimlinear" p1 (list x1 (cadr p2)) (strcat"@-" (rtos(* bl tl))",0"))
(command "dimlinear" p2 (list x1 (cadr p2)) (strcat"@0," (rtos(* bl tl))))
(command "solid" (list (- x1 (* bl tl)) (cadr p2)) (list (- x1 (* (- bl 2.5) tl)) (+(cadr p2) (* tl 2.5))) (list (- x1 (* (+ bl 2.5) tl)) (+(cadr p2) (* tl 2.5))) "" "")
(setvar "textsize" (* tl 2.5))
(command "layer" "n" "text 2.5" "c" "2" "text 2.5" "l" "continuous" "text 2.5" "s" "text 2.5" "")
(command "text" (list (- x1 (* (+ bl 4.5) tl)) (+(cadr p2) (* tl 3))) "" "" cao)
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (-(cadr p2)30)) (strcat "@0," (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nt 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nt 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(command "layer" "s" "text 2.5" "")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nt) "%%c" pit))
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (+ y1 30)) (strcat "@0,-" (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nd 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nd 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nd) "%%c" pid))
(command "layer" "s" "dim" "")
(command "qleader" (list (-(car p2)20) (/(+ y1 (cadr p2)) 2)) (list (cadr l20t) (/(+ y1 (cadr p2))2)) nil)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (/(+ y1 (cadr p2))2)) "" "" (strcat "%%c" pig))
(setq pp (list (/(+ x1 (car p2))2) (- y1 (* 14 tl))))
(setq ptl (list (car pp) (-(cadr pp)(* 3.5 tl))))
(setvar "clayer" "text 2.5")
(command "text" "j" "C" ptl "" "" (strcat "TL 1:" (rtos tl)))
(command "layer" "n" "text 5.0" "c" "1" "text 5.0" "l" "continuous" "text 5.0" "s" "text 5.0" "")
(setvar "textsize" (* tl 5))
(command "text" "j" "BC" pp "" "" (strcat "%%uMC " ten))
(setvar "osmode" olds)
(setvar "textsize" tzo)
(setvar "clayer" olay)
(setvar "dimzin" dz)
(princ)
)

  • 0
Hình đã gửi

#8 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 28 July 2011 - 09:44 AM

sorry bạn!
mới sửa lại chỗ TL 1:20 xong!
^-^
  • 0
Hình đã gửi

#9 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 July 2011 - 10:11 AM

Sao bạn tandai1102 không post hẳn file để giúp người viết dễ dàng hơn nhỉ :huh:
  • 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


#10 tandai1102

tandai1102

    biết zoom

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

Đã gửi 28 July 2011 - 10:22 AM

hihi! được voi đòi tiên.
em muốn các anh phát triển cái lisp này lên 1 bậc, yêu cầu chắc là khó hơn, nhờ các anh em giúp. chắc là có thể dựa trên cái lisp cũ viết lại được.

Hình đã gửi


trong đó:
- tất cả như cũ
- có thể khai báo thêm 2 lớp thép, có thể ở lớp trên hoặc ở lớp dưới hoặc cùng lúc 2 lớp.
- có thể thêm cây cốt giá có thể thay đổi đường kinh được lúc nhập giống thanh thép khác


em xin cảm ơn các anh rất nhiều!
  • 0

#11 ketxu

ketxu

    Copier - Paster - Editor

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

Đã gửi 28 July 2011 - 10:30 AM

Không hỏi nữa, nhắc nhở bạn tandai1102 hãy post file lên :angry:
  • 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 lp_hai

lp_hai

    biết lệnh measure

  • Members
  • PipPipPipPipPipPip
  • 456 Bài viết
Điểm đánh giá: 202 (khá)

Đã gửi 28 July 2011 - 10:47 AM

Không hỏi nữa, nhắc nhở bạn tandai1102 hãy post file lên :angry:

bác Ketxu bớt nóng tính cái nà. :rolleyes:
@tandai1102 mình thấy yêu cầu của bạn nên nhờ mấy pác tạo block dynamic tiện hơn.
còn nếu sửa lại lisp này thì mình e là phức tạp vã lại vì yêu cầu ban đầu của bạn đơn giản nên mình đặt biến hơi tùm lum. sợ mấy pác ko kiểm soát dc mà sửa cho bạn! ^^
  • 0
Hình đã gửi

#13 tandai1102

tandai1102

    biết zoom

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

Đã gửi 28 July 2011 - 10:56 AM

Hình đã gửi

đây là link file:
MC DAM

yêu cầu sau này hơi khó, nếu không được cũng k sao, có cái lisp kia vẽ ra rồi copy sửa lại cũng được.
em xin cảm ơn các anh nhiều lắm!

hihi! anh ketxu nóng tính quá!
  • 0

#14 tiennguyenxd22

tiennguyenxd22

    Chưa sử dụng CAD

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

Đã gửi 12 September 2012 - 10:57 AM

đã sửa rồi đó bạn


(defun c:mc(/ dz ten p1 p2 y1 x1 cd rd nt nd pit pig pid cao tl bl tzo tt td lt lst l20t tzo olds pp ptl olay)
(setq p1 (getpoint "\nchon diem 1: ")
olds (getvar "osmode")
cd (getdist "\nchieu cao dam: ")
rd (getdist "\nchieu rong dam: ")
nt (getint "\nso luong thep tren: ")
pit (getstring "\nnhap duong kinh thep tren: ")
nd (getint "\nso luong thep duoi: ")
pid (getstring "\nnhap duong kinh thep duoi: ")
pig (getstring "\nnhap duong kinh thep dai: ")
cao (getstring "\nnhap cao do dam: ")
tl (getint "\nnhap ty le 1: ")
ten (getstring "\nnhap ten mat cat: ")
x1 (car p1)
y1 (cadr p1)
bl (getvar "dimdli")
tzo (getvar "textsize")
olay (getvar "clayer")
dz (getvar "dimzin")
)
(setvar "dimzin" 8)
(setvar "osmode" 0)
(setq p2 (list (+ x1 rd) (+ y1 cd))
)
(command "layer" "n" "beam" "c" "2" "beam" "l" "continuous" "beam" "s" "beam" "")
(command "rectang" p1 p2)
(command "layer" "n" "rbar" "c" "7" "rbar" "l" "continuous" "rbar" "s" "rbar" "")
(command "offset" "20" (entlast) (list (+ x1 20) (+ y1 20)) "")
(command "fillet" "r" "10")
(command "fillet" "p" "l")
(command "change" "l" "" "p" "LA" "rbar" "")
(command "line" (list (+ x1 37.0711) (- (+ y1 cd) 22.9289)) "@40<-45" "")
(command "offset" "20" (entlast) p1 "")
(command "layer" "n" "steel" "c" "2" "steel" "l" "continuous" "steel" "s" "steel" "")
(command "donut" "0" "20" (list (+ x1 30) (-(+ y1 cd) 30)) "")
(setq tt (entlast))
(command "copy" tt "" p1 (strcat"@0," (rtos (- 60 cd)))"")
(setq td (entlast))
(command "array" tt "" "r" "1" nt (/ (- rd 60) (- nt 1)))
(command "array" td "" "r" "1" nd (/ (- rd 60) (- nd 1)))
(command "layer" "n" "dim" "c" "7" "dim" "l" "continuous" "dim" "s" "dim" "")
(command "dimlinear" p1 (list x1 (cadr p2)) (strcat"@-" (rtos(* bl tl))",0"))
(command "dimlinear" p2 (list x1 (cadr p2)) (strcat"@0," (rtos(* bl tl))))
(command "solid" (list (- x1 (* bl tl)) (cadr p2)) (list (- x1 (* (- bl 2.5) tl)) (+(cadr p2) (* tl 2.5))) (list (- x1 (* (+ bl 2.5) tl)) (+(cadr p2) (* tl 2.5))) "" "")
(setvar "textsize" (* tl 2.5))
(command "layer" "n" "text 2.5" "c" "2" "text 2.5" "l" "continuous" "text 2.5" "s" "text 2.5" "")
(command "text" (list (- x1 (* (+ bl 4.5) tl)) (+(cadr p2) (* tl 3))) "" "" cao)
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (-(cadr p2)30)) (strcat "@0," (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nt 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nt 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(command "layer" "s" "text 2.5" "")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nt) "%%c" pit))
(command "layer" "s" "dim" "")
(command "qleader" (list (+ x1 30) (+ y1 30)) (strcat "@0,-" (rtos (* 4 tl))) (strcat "@" (rtos (+ rd (* 6 tl))) ",0") nil)
(setq lt (entlast)
l20t (nth 20(entget lt))
)
(repeat (- nd 1)
(command "copy" lt "" p1 (strcat "@" (rtos (/ (- rd 60) (- nd 1))) ",0") "")
(setq lt (entlast)
lst (entget lt))
(setq lst (subst l20t (nth 20 lst) lst))
(entmod lst)
)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (caddr l20t) (cadddr l20t)) "" "" (strcat (rtos nd) "%%c" pid))
(command "layer" "s" "dim" "")
(command "qleader" (list (-(car p2)20) (/(+ y1 (cadr p2)) 2)) (list (cadr l20t) (/(+ y1 (cadr p2))2)) nil)
(setvar "clayer" "text 2.5")
(command "text" "j" "ML" (list (+ (cadr l20t)(* 1.25 tl)) (/(+ y1 (cadr p2))2)) "" "" (strcat "%%c" pig))
(setq pp (list (/(+ x1 (car p2))2) (- y1 (* 14 tl))))
(setq ptl (list (car pp) (-(cadr pp)(* 3.5 tl))))
(setvar "clayer" "text 2.5")
(command "text" "j" "C" ptl "" "" (strcat "TL 1:" (rtos tl)))
(command "layer" "n" "text 5.0" "c" "1" "text 5.0" "l" "continuous" "text 5.0" "s" "text 5.0" "")
(setvar "textsize" (* tl 5))
(command "text" "j" "BC" pp "" "" (strcat "%%uMC " ten))
(setvar "osmode" olds)
(setvar "textsize" tzo)
(setvar "clayer" olay)
(setvar "dimzin" dz)
(princ)
)

anh giúp em chuyển cái mặt cắt này sang màu như của em giúp em vơi anh lp_Hai các thông số vẫn để như cũ, cảm ơn anh nhiều, mong sớm hồi âm của anh. Em thấy lisp này hay lắm nhưng màu thì em chưa ưng ý mà ko biết làm sao chuyển cho tiện. Mong anh giúp đỡ em mới tham gia diễn đàn lần đầu mong anh chỉ bảo thêm. Cảm ơn anh
http://www.cadviet.c...nh_lp_hai_1.dwg
  • 0