Đến nội dung


Hình ảnh
- - - - -

Nhờ Chỉnh Lisp Cắt Thép Dầm Momen


  • Please log in to reply
78 replies to this topic

#61 790312

790312

    biết lệnh fillet

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

Đã gửi 14 May 2016 - 12:12 PM

(defun c:tt  (/ Make-Line ang bv cdi hbv hcd len msp pd3 po1 po2 po3 po4 pt1 pt2 pt3 pt4 tlv p11 p33)
;;;ve pline 
(defun Make_pline  (listpoint Layer / Lst)
  (setq lst (list '(0 . "LWPOLYLINE")
                  '(100 . "AcDbEntity")
                  '(100 . "AcDbPolyline")
                  (cons 8 layer)
                  (cons 90 (length listpoint))
                  (cons 70 0)))
  (foreach p listpoint (setq lst (append lst (list (cons 10 p)))))
  (entmakex lst))
;;;;ham ve pline 
(defun Make-Line  (p1 p2 lay)
  (entmakex (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2) (cons 8 lay))))
 (vl-load-com)
 (setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
       cdi (* (getvar "DIMTXT") (getvar "DIMSCALE")))
 (if (and (setq pt1 (getpoint "\nDiem p1: "))
          (setq pt2 (getpoint "\nDiem p2: "))
          (setq pt3 (getpoint "\nDiem p3: "))
          (setq pt4 (getpoint "\nDiem p4: "))
          (setq hcd (getdist "\nChieu cao dam: "))
          (setq hbv (getdist "\nChieu day bt bao ve: "))
          (setq tlv (getreal "\nTi le ve <Nhap 20 de co ty le 1/20>:")))
  (progn (setq po1 (polar (polar pt3 (* pi 1.0) (* hcd (/ 100 tlv))) (* pi 0.5) (* hbv (/ 100 tlv)))
               po2 (polar po1 (* pi (/ 30 180.0)) 70)
               po3 (polar (polar pt4 (* pi 0.0) (* hcd (/ 100 tlv))) (* pi 0.5) (* hbv (/ 100 tlv)))
               po4 (polar po3 (* pi (/ 150 180.0)) 70)
               ang (angle pt1 pt2)
               pd3 (polar pt1 (+ ang (* pi 1.5)) (* cdi 4)))
       (Make_pline (list po2 po1 po3 po4) "CAT-THEP")
        ; (Make-Line po1 po2 "CAT-THEP")
        ; (Make-Line po3 po4 "CAT-THEP")

         (setq p11 (inters pt1 pt2 po1 (polar po1 (* pi 1.5) hcd))
               p33 (inters pt1 pt2 po3 (polar po3 (* pi 1.5) hcd)))
         (mapcar (function (lambda (x y z) (vla-adddimaligned msp x y z)))
                 (mapcar 'vlax-3d-point (list pt1 pt2 p11))
                 (mapcar 'vlax-3d-point (list p11 p33 p33))
                 (mapcar 'vlax-3d-point (list pd3 pd3 pd3)))))
 (princ))

Hỗ trợ bác quốc mạnh để bác tập trung giúp em lisp số 3. Bạn thử xem dc chưa

 

Bác có thể chỉnh giúp khi yêu cầu nhập lớp bảo vê giá trị mặc định là 0 để vẽ móc ngay lớp thép thứ 1. Khi cần vẽ lớp 2 thì mới nhập giá trị cần. Cảm ơn bác.


  • -1

#62 traitimgio

traitimgio

    biết zoom

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

Đã gửi 14 May 2016 - 03:52 PM

Bác có thể chỉnh giúp khi yêu cầu nhập lớp bảo vê giá trị mặc định là 0 để vẽ móc ngay lớp thép thứ 1. Khi cần vẽ lớp 2 thì mới nhập giá trị cần. Cảm ơn bác.

Bác nhờ chỉnh hay yêu cầu nên làm hình vẽ, diễn giải chỉnh từ đầu đến cuối chứ mỗi lần 1 chút này người viết ngại lắm


  • 0

#63 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 14 May 2016 - 04:26 PM

Bác có thể chỉnh giúp khi yêu cầu nhập lớp bảo vê giá trị mặc định là 0 để vẽ móc ngay lớp thép thứ 1. Khi cần vẽ lớp 2 thì mới nhập giá trị cần. Cảm ơn bác.

(defun c:tt  (/ Make-Line ang bv cdi hbv hcd len msp pd3 po1 po2 po3 po4 pt1 pt2 pt3 pt4 tlv p11 p33)
;;;ve pline 
(defun Make_pline  (listpoint Layer / Lst)
  (setq lst (list '(0 . "LWPOLYLINE")
                  '(100 . "AcDbEntity")
                  '(100 . "AcDbPolyline")
                  (cons 8 layer)
                  (cons 90 (length listpoint))
                  (cons 70 0)))
  (foreach p listpoint (setq lst (append lst (list (cons 10 p)))))
  (entmakex lst))
;;;;ham ve pline 
(defun Make-Line  (p1 p2 lay)
  (entmakex (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2) (cons 8 lay))))
 (vl-load-com)
 (setq msp (vla-get-modelspace (vla-get-activedocument (vlax-get-acad-object)))
       cdi (* (getvar "DIMTXT") (getvar "DIMSCALE")))
 (if (and (setq pt1 (getpoint "\nDiem p1: "))
          (setq pt2 (getpoint "\nDiem p2: "))
          (setq pt3 (getpoint "\nDiem p3: "))
          (setq pt4 (getpoint "\nDiem p4: "))
          (setq hcd (getdist "\nChieu cao dam: "))
(or	hbv  (setq hbv 0))
(setq hbv (cond ((getdist (strcat "\nChieu day lop BT bao ve <" (rtos hbv 2 2) ">: "))) (hbv)))
          (setq tlv (getreal "\nTi le ve <Nhap 20 de co ty le 1/20>:")))
  (progn (setq po1 (polar (polar pt3 (* pi 1.0) (* hcd (/ 100 tlv))) (* pi 0.5) (* hbv (/ 100 tlv)))
               po2 (polar po1 (* pi (/ 30 180.0)) 70)
               po3 (polar (polar pt4 (* pi 0.0) (* hcd (/ 100 tlv))) (* pi 0.5) (* hbv (/ 100 tlv)))
               po4 (polar po3 (* pi (/ 150 180.0)) 70)
               ang (angle pt1 pt2)
               pd3 (polar pt1 (+ ang (* pi 1.5)) (* cdi 4)))
       (Make_pline (list po2 po1 po3 po4) "CAT-THEP")
        ; (Make-Line po1 po2 "CAT-THEP")
        ; (Make-Line po3 po4 "CAT-THEP")

         (setq p11 (inters pt1 pt2 po1 (polar po1 (* pi 1.5) hcd))
               p33 (inters pt1 pt2 po3 (polar po3 (* pi 1.5) hcd)))
         (mapcar (function (lambda (x y z) (vla-adddimaligned msp x y z)))
                 (mapcar 'vlax-3d-point (list pt1 pt2 p11))
                 (mapcar 'vlax-3d-point (list p11 p33 p33))
                 (mapcar 'vlax-3d-point (list pd3 pd3 pd3)))))
 (princ))

  • 1

#64 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 14 May 2016 - 04:37 PM


Hỗ trợ bác quốc mạnh để bác tập trung giúp em lisp số 3. Bạn thử xem dc chưa

 

Lisp 3 thì đơn giản mấy dòng thôi, nếu bạn quyết tâm mình sẽ hướng dẫn từng bước để tạo ra nó tại Topic này.


  • 1

#65 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 14 May 2016 - 05:45 PM

Lisp 3 thì đơn giản mấy dòng thôi, nếu bạn quyết tâm mình sẽ hướng dẫn từng bước để tạo ra nó tại Topic này.

Bác viết dùm em đi. 


  • -1

#66 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 14 May 2016 - 05:50 PM

- Chỉ mấy dòng, bạn sẽ viết được.

- Bạn đưa cái file block thống kê lên đây mình sẽ viết phần sau khi gán giá trị vào số lượng thanh thì tổng số lượng, tổng chiều dài và tổng trọng lượng sẽ được cập nhật.


  • 0

#67 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 14 May 2016 - 06:03 PM

Chỉ mấy dòng, bạn viết được.

thế bác hướng dẫn em :)
  • 0

#68 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 14 May 2016 - 07:06 PM

thế bác hướng dẫn em :)

đây là thống kê thép bằng ứng dụng Hcad. Mình chỉ cần ghi giá trị vào đó, rồi nhấn lệnh tính toán lại là khối lượng cập nhật.

http://www.mediafire...ong_ke_thep.dwg

Giá trị ghi vào có thể  số lượng, số trong phần quy cách hay bất kỳ chỗ nào trong block giống như lệnh http://www.lee-mac.com/copytext.htmlcủa lee mac này. cập nhật thống kê chắc dùng field đúng k bác


  • 0

#69 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 14 May 2016 - 08:29 PM

Bạn test thử nhé! Lệnh TKD.

https://drive.google...iew?usp=sharing


  • 1

#70 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 14 May 2016 - 09:37 PM

Bạn test thử nhé! Lệnh TKD.

https://drive.google...iew?usp=sharing

lisp này số đai chỉ ghi vào att SL của block. Mình muốn nó ghi vào att nào mà mình pick cơ, có thể ATT L1, L2, Lneo....Giống như lisp này http://www.lee-mac.com/copytext.html  Vì mình muốn tự lập vài lisp nữa để ghi thông số chiều dài thanh.... vào bằng lệnh này.

CopyText.gif


  • 0

#71 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 14 May 2016 - 09:56 PM

Sao bạn không test??? Pick vào chỗ nào cũng được, miễn là attblk của bạn.


  • 0

#72 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 14 May 2016 - 10:37 PM

Sao bạn không test??? Pick vào chỗ nào cũng được, miễn là attblk của bạn.

  em test kỹ rồi mà anh. pick vào đâu cũng dc nhưng nó chỉ nhảy giá trị att SL của block. nếu block ko có ATT tag là SL nó k nhảy. anh xem giúp em lisp của lee mac. Vi dụ 1 block có 4 ATT: L1, L2, Lneo, SL. khi ta pick vào block ở vị trí L1 thì giá trị ghi vào L1, pick vào block nhưng ở vị trí L2 thì giá trị L2 nhảy. Ảnh minh họa anh ơi

CopyText.gif


  • 0

#73 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 14 May 2016 - 11:06 PM

- Uh, đúng rồi, lisp trên là để thống kê thép đai theo cách ghi dim ở lsp trước (theo yêu cầu lisp3 - Hình vẽ bài #49). => Bổ sung thêm: khi có giá trị cho SL thì LA và KL cũng được cập nhật luôn.

- Theo nhu cầu ở trên của bạn thì sao không dùng lsp của LM luôn? (Cái này khác với lisp3-#49 nhé).


  • 0

#74 traitimgio

traitimgio

    biết zoom

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

Đã gửi 15 May 2016 - 12:51 AM

- Uh, đúng rồi, lisp trên là để thống kê thép đai theo cách ghi dim ở lsp trước (theo yêu cầu lisp3 - Hình vẽ bài #49). => Bổ sung thêm: khi có giá trị cho SL thì LA và KL cũng được cập nhật luôn.

- Theo nhu cầu ở trên của bạn thì sao không dùng lsp của LM luôn? (Cái này khác với lisp3-#49 nhé).

chắc #49 em diễn đạt chưa hết ý. :D. Lisp của LM thì chỉ copy từ text. như vậy mình chi có thể cộng số đai-->pcik ra text-->dùng lệnh Lm để copy vào block.

Em muốn pick vào block luôn để bớt đi công đoạn, mà k bik làm :(


  • 0

#75 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 15 May 2016 - 12:54 AM

chắc #49 em diễn đạt chưa hết ý. :D. Lisp của LM thì chỉ copy từ text. như vậy mình chi có thể cộng số đai-->pcik ra text-->dùng lệnh Lm để copy vào block.

Em muốn pick vào block luôn để bớt đi công đoạn, mà k bik làm :( có thể pick lấy thông số chiều dài thanh- pick vào ghi chiều dài....


  • 0

#76 quocmanh04tt

quocmanh04tt

    biết lệnh imageclip

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

Đã gửi 15 May 2016 - 01:10 AM

- Vậy bạn chỉ cần dùng hàm này: (vla-put-textstring (vlax-ename->vla-object (car (nentsel "\nPick vào att cần thay giá trị: "))) giatri).

- giatri là string, xử trước đó thế nào là việc của bạn.


  • 1

#77 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 15 May 2016 - 04:28 AM

Vâng. Anh gui cho em xin file .lsp lệnh ktd
  • 0

#78 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 15 May 2016 - 02:18 PM

Vâng. Anh gui cho em xin file .lsp lệnh ktd

anh cho em xin code file ktd với. để em học hỏi, hiệu chỉnh.


  • 0

#79 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 2016 - 10:54 AM

được voi đòi 2 bà trưng, Lisp số 2, hiển thị số đai trong dim dạng <>\X5∅8a150, phần text bị cố định. Bác có cách nào ghi bằng text đối tượng field?, khi phần dim co kéo số lượng đai tự nhảy theo k? tính năng Altemate units của dim style có tính năng này nhưng k cộng thêm 1 đai :D


  • 0