Đến nội dung


Hình ảnh

nhờ viết giúp lips vẽ ống


  • Please log in to reply
9 replies to this topic

#1 lehongvinh

lehongvinh

    Chưa sử dụng CAD

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

Đã gửi 14 September 2014 - 02:36 PM

chào mọi người !

 

mình muốn vẽ một đường ống, ví dụ : gõ lệnh "pipe" chọn điểm đầu điểm cuối nhập size ống để vẽ đường ống, mình cũng dùng lệnh mline nhưng chỉ muốn gọn hơn xíu nữa.

sau khi vẽ đường ống và gõ lệnh ghi kích thước, vi dụ : gõ lệnh "ghi_kt" thì sẽ cho mình chọn tâm của đường tâm ống và gi kích thước "L=??" theo chìu của ống.

 

mong được sự giúp đỡ từ các anh chị em.

 


  • 0

#2 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 14 September 2014 - 05:31 PM

_ ^^, vế sau nhoc ko hỉu chọn tâm ống làm gì, và bạn mún ghi kt thước = text hay dim

- nhoc quỡn viết đại đc vậy thui ^^

(defun c:dkk (/ w pt1 pt2)
(setvar "cmdecho" 0)
(setq w (getreal "\ndo rong ong:"))
(setq pt1 (getpoint "\nchon diem dau ong:") pt2 (getpoint pt1 "\nchon diem cuoi ong:"))
(princ "\n")
(command ".Mline" "s" w pt1 pt2 "")
(princ)
(setvar "cmdecho" 1)
)

  • 2
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#3 haanh

haanh

    biết lệnh adcenter

  • Members
  • PipPipPipPipPipPipPip
  • 2875 Bài viết
Điểm đánh giá: 1554 (rất tốt)

Đã gửi 14 September 2014 - 06:15 PM

Anh Nhoc thử lang bạt làm cái lisp vẽ đường ống Ba đê đê ! :) :) :)

 

Em đang vẽ một số hình trong 3D, nhưng gặp khá nhiều khó khăn vì em biết ít lệnh trong môi trường này quá. Vì thế khi có vấn đề là em đè ra viết lisp để rút ngắn thời gian.
Em gửi mấy cái lisp mà em viết lên đây, chúng dùng để thực hiện những thao tác mà em cần, nhưng có thể trong CAD đã có những lệnh để thực hiện chúng, nên em mong mọi người ghóp ý cho em, ví dụ như: lisp này có thể thay bằng lệnh abc gì đó của CAD, hoặc đoạn trong lisp này có thể thay đổi lại như sau… vv.
Em cảm ơn cả nhà rất nhiều!
Sau đây, em xin đi vào chi tiết:
1. Đo khoảng cách 2 điểm và hiện ra thông báo như sau:
3-9.jpg
Lisp:

;; Do khoang cach 2 diem trong 3D, dua ra do chenh toa do trong he toa do hien hanh
;; By pdle
(defun c:dis(/ pt1 pt2 dx dy dz u)
    (setq
        pt1 (getpoint "\nDiem thu nhat: ")
        pt2 (getpoint "\nDiem thu hai: ")
        dx (- (nth 0 pt2) (nth 0 pt1))
        dy (- (nth 1 pt2) (nth 1 pt1))
        dz (- (nth 2 pt2) (nth 2 pt1))
        u (distance pt1 pt2)
    )
    (alert (strcat "dx= " (rtos dx) " dy= " (rtos dy) " dz= " (rtos dz) " Do dai= " (rtos u)))
)
2. Vẽ một ống hình trụ, điều kiện cho trước là trục ống, bán kính ngoài và bán kính trong của ống:
1-16.jpg
Lisp:
;;; Ve ong hinh tru co truc cho truoc
;;; By pdle
(defun c:otr (/ ent pt1 pt2 ent1 ent2 Routerpre Rinnerpre)
    ;; Tat che do bat diem
    (setq OldOS (getvar "osmode"))
    (setvar "osmode" 0)
    ;; Nhap truc cua ong
    (setq ent (car (entsel "\nTruc cua ong: ")))
    (setq pt1 (acet-dxf 10 (entget ent)) pt2 (acet-dxf 11 (entget ent)))
    ;; Nhap ban kinh ngoai
    (if (= Router nil) (setq Routerpre 0.04) (setq Routerpre Router))
        (setq Router (getreal (strcat "\nBan kinh ngoai < " (rtos Routerpre) " > : ")))
        (if (= Router nil) (setq Router Routerpre))
    ;; Nhap ban kinh trong
    (if (= Rinner nil) (setq Rinnerpre 0.03) (setq Rinnerpre Rinner))
        (setq Rinner (getreal (strcat "\nBan kinh trong < " (rtos Rinnerpre) " > : ")))
        (if (= Rinner nil) (setq Rinner Rinnerpre))
    ;; Ve hinh tru va thuc hien lenh subtract
    (command "cylinder" pt1 Router "a" pt2)
    ;; Neu ban kinh trong khac 0, thi thuc hien ve hinh tru voi ban kinh trong va subtract
    (if (/= Rinner 0)
    (progn
        (setq ent1 (entlast))
        (command "cylinder" pt1 Rinner "a" pt2)
        (setq ent2 (entlast))
        (command "subtract" ent1 "" ent2 "")
    ))
    ;; Tra lai che do bat diem
    (setvar "osmode" OldOS)
)3. Vẽ một ống tiết diện vuông, điều kiện cho trước là trục ống, kích thước ngoài của ống và độ dày thành ống:
2-12.jpg
Lisp:
;; Ve ong hinh vuong co truc cho truoc, co canh vuong go voi 1 trong 3 truc toa do cua WCS
;; By pdle
(defun c:ovu(/ pt1 pt2 pt3 ct con1 con2 i j k ent ent1 ent2 pt2new OldOS Dimepre Thickpre Orenpre X1 Y1 Z1 X2 Y2 Z2 Outer Inner)
    ;; Tat che do bat diem
    (setq OldOS (getvar "osmode"))
    (setvar "osmode" 0)
    ;; Dua he truc toa do ve WCS
    (command "ucs" "w")
    ;; Nhap truc cua ong
    (setq ent (car (entsel "\nTruc cua ong: "))
        pt1 (acet-dxf 10 (entget ent))
        pt2 (acet-dxf 11 (entget ent))
        X1 (nth 0 pt1) Y1 (nth 1 pt1) Z1 (nth 2 pt1)
        X2 (nth 0 pt2) Y2 (nth 1 pt2) Z2 (nth 2 pt2)
    )
    ;; Kich thuoc ngoai cua ong vuong
    (if (= Dime nil) (setq Dimepre 0.1) (setq Dimepre Dime))
        (setq Dime (getreal (strcat "\nKich thuoc ngoai cua ong < " (rtos Dimepre) " > : ")))
        (if (= Dime nil) (setq Dime Dimepre))
    ;; Do day thanh ong
    (if (= Thick nil) (setq Thickpre 0.006) (setq Thickpre Thick))
        (setq Thick (getreal (strcat "\nDo day cua ong < " (rtos Thickpre) " > : ")))
        (if (= Thick nil) (setq Thick Thickpre))
    ;; Tinh toan kich thuoc mat ngoai va mat trong ong
    (setq Outer (* 0.5 Dime) Inner (- Outer Thick))
    ;; Xac dinh truc dinh huong cua ong
    (if (= Oren nil) (setq Orenpre "Z") (setq Orenpre Oren))
        (setq Oren (strcase (getstring (strcat "\nTruc dinh huong (X,Y,Z) < " Orenpre " >: "))))
        (if (= Oren "") (setq Oren Orenpre))
    (setq
        i (cond ((= Oren "X") 1) ((= Oren "Y") 0) ((= Oren "Z") 0))
        j (cond ((= Oren "X") 0) ((= Oren "Y") 1) ((= Oren "Z") 0))
        k (cond ((= Oren "X") 0) ((= Oren "Y") 0) ((= Oren "Z") 1))
        pt3 ( list (+ X1 (* k(- Y2 Y1)) (* j (- Z2 Z1))) (+ Y1 (* i(- Z2 Z1)) (* k (- X2 X1))) (+ Z1 (* i(- Y2 Y1)) (* j (- X2 X1))))
    )
    ;; Dua ho truc toa do ve truc cua ong
    (command "ucs" "3" pt1 pt2 pt3)
    (setq
        pt2new (trans pt2 0 1)
        ct (list (* 0.5 (nth 0 pt2new)) (* 0.5 (nth 1 pt2new)) (* 0.5 (nth 2 pt2new)))
        con1 (list 0 Outer Outer)
        con2 (list 0 Inner Inner)
    )
    ;; Ve 2 hinh hop va dung lenh subtract de tao ong
    (command "box" "c" ct con1) (setq ent1 (entlast))
    (command "box" "c" ct con2) (setq ent2 (entlast))
    (command "subtract" ent1 "" ent2 "")
    ;; Dua he truc toa do ve WCS va tra lai che do bat diem hien hanh
    (command "ucs" "w")
    (setvar "osmode" OldOS)
)

Nguồn: http://www.cadviet.c...o-tac-trong-3d/


  • 1

“Sống trong đời sống cần có một tấm lòng / Để làm gì em biết không ? / Để gió cuốn đi, để gió cuốn đi...”


#4 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 14 September 2014 - 06:28 PM

@@ , chị Hà anh pit nhoc chỉ làm việc trên 2d thui, mà 2d còn chưa thông hết lấy gì qua 3d ^^, nhìn acc nhoc thì pit mà mới li lv5 :), ghẹo nhoc hoài ^^ 


  • 1
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#5 Doan Van Ha

Doan Van Ha

    biết lệnh adcenter

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

Đã gửi 14 September 2014 - 06:35 PM

3D thì độ khó chỉ gấp 1.5 lần 2D thôi nhoc ơi!  :lol:  :lol:  :lol:


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


#6 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 15 September 2014 - 08:52 AM

gấp 0.5 lần nhoc còn chưa với đc huống chi 1.5 lần ^^


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#7 lehongvinh

lehongvinh

    Chưa sử dụng CAD

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

Đã gửi 15 September 2014 - 11:10 AM

cảm ơn các anh chị đã giúp.

 

nhưng mình chỉ cần gọn như thế này thôi.

vd : gõ lệnh "pipe" nhập size ống, chon điểm đầu chọn điểm cuối để vẽ ống.


  • 0

#8 nhoclangbat

nhoclangbat

    Edu level: li10

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

Đã gửi 15 September 2014 - 11:49 AM

nhưng mình chỉ cần gọn như thế này thôi.

vd : gõ lệnh "pipe" nhập size ống, chon điểm đầu chọn điểm cuối để vẽ ống.

- Đau lòng quá ^^, bạn tải lại lsp #2 dùng chơi :)


  • 0
"...................][)e\/i][_ /\/\@Y CrY....................."

(defun THỔ_DÂN_HỌC_CAD (xxxx) ...) ^_^








#9 vnbkt

vnbkt

    Chưa sử dụng CAD

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

Đã gửi 12 March 2015 - 04:39 PM

của bạn đây:

 

 (defun       c:PIPE()
   (graphscr)
   (setting)
   (prompt "\n Steel Pipe two line dwg**")
   (if (= ssize nil) (setq ssize 80))
   (setq def_size ssize)
   (initget  "15 20 25 32 40 50 65 80 100 125 150 200 250 300 350 400 450 500  550 600 650 700 750 800  850 900 950  1000 1050")
   (setq ssize (getint (strcat "\n Please enter the pipe diameter steel pipe<"(rtos ssize 2 0)">:")))
   (setq ps(entsel"\n Please select the centerline ( Press the ENTER when there is no center line)?:"))
   (if (= ps nil)
         (progn
              (setq fir(getpoint "\nspecify insert first point:"))
              (setq sec(getpoint fir "\nspecify insert second point:"))
         )
         (progn
              (setq ps1(car ps))
              (setq ps2(entget ps1))
              (setq fir(cdr (assoc 10 ps2)))
              (setq sec(cdr (assoc 11 ps2)))
         )
    )
;-------------------------------------------------------------------------------
   (if (= ssize nil) (setq ssize def_size))
   (if (= ssize 15) (setq dia "21.7"))
   (if (= ssize 20) (setq dia "27.2"))
   (if (= ssize 25) (setq dia "34.0"))
   (if (= ssize 32) (setq dia "42.7"))
   (if (= ssize 40) (setq dia "48.6"))
   (if (= ssize 50) (setq dia "60.5"))
   (if (= ssize 65) (setq dia "76.3"))
   (if (= ssize 80) (setq dia "89.1"))
   (if (= ssize 100) (setq dia "114.3"))
   (if (= ssize 125) (setq dia "139.8"))
   (if (= ssize 150) (setq dia "165.2"))
   (if (= ssize 200) (setq dia "216.3"))
   (if (= ssize 250) (setq dia "267.4"))
   (if (= ssize 300) (setq dia "318.5"))
   (if (= ssize 350) (setq dia "355.6"))
   (if (= ssize 400) (setq dia "406.4"))
   (if (= ssize 450) (setq dia "457.2"))
   (if (= ssize 500) (setq dia "508.0"))
   (if (= ssize 550) (setq dia "558.8"))
   (if (= ssize 600) (setq dia "609.6"))
   (if (= ssize 650) (setq dia "660.4"))
   (if (= ssize 700) (setq dia "711.2"))
   (if (= ssize 750) (setq dia "762"))
   (if (= ssize 800) (setq dia "812.8"))
   (if (= ssize 850) (setq dia "863.6"))
   (if (= ssize 900) (setq dia "814.4"))
   (if (= ssize 950) (setq dia "965.2"))
   (if (= ssize 1000) (setq dia "1016"))
   (if (= ssize 1050) (setq dia "1067"))
;-------------------------------------------------------------------------------
   (setq ang(angle fir sec))
   (setq d(atof dia))
   (setq rad(/ d 2))
   (setq fir1(polar fir (+ ang (dtr 90)) rad))
   (setq fir2(polar fir (- ang (dtr 90)) rad))
   (setq sec1(polar sec (+ ang (dtr 90)) rad))
   (setq sec2(polar sec (- ang (dtr 90)) rad))
;------------------------------------------------------------------------
;   (if (tblsearch "layer" "pipe") nil
;   (COMMAND "LAYER" "M" "PIPE" "LT" "CONTINUOUS" "" "CO" "4" "" "S" "PIPE" ""))
   (entmake(list (cons 0 "line") (list 10 (car fir1) (cadr fir1) (caddr fir1))
           (list 11 (car sec1) (cadr sec1) (caddr sec1))))
   (entmake(list (cons 0 "line") (list 10 (car fir2) (cadr fir2) (caddr fir2))
           (list 11 (car sec2) (cadr sec2) (caddr sec2))))
   (command "change" ps "" "p" "c" "1" "lt" "c1" "")
   (r-setting)
   (princ)
)
;----------------------------------------------------------------------------

 

còn đây là bộ lisp hỗ trợ đầy đủ để vẽ ống nước ống gió.

lin download:

 

http://www.4shared.c...ba/HVAC154.html

 

http://www.4shared.c...yV5Kce/abc.html

 


  • 0

#10 thanhlamct

thanhlamct

    biết lệnh offset

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

Đã gửi 08 May 2015 - 10:30 AM

Hình như Lisp này của PAM phải không vnbkt?


  • 0