Chuyển đến nội dung
Diễn đàn CADViet

tuan_thietkedien

Thành viên
  • Số lượng nội dung

    152
  • Đã tham gia

  • Lần ghé thăm cuối

Bài đăng được đăng bởi tuan_thietkedien


  1. Mình muốn chọn tất cả đối tượng màu đỏ , rồi thực hiện một lệnh tiếp theo, giống như lệnh Filter vậy, nhưng sao cái lisp dưới chọn đối tượng xong là nó thoát luôn???

     

    (defun c:1 ()

    (command "select" (ssget "x" (list

    (cons 0 "LINE,ARC,SPLINE,LWPOLYLINE,POLYLINE,CIRCLE,ELLIPSE,TEXT,MTEXT")

    (cons 62 1)

    ))"")

    (princ)

    )


  2. xin lỗi nhưng mình cũng chẳng thấy nó hỏi chọn đường thẳng để mà xoá nữa , gọi lệnh xong nó chạy ra cái dòng này :

    Command: er2l

    Free lisp from www.cadviet.comRegenerating model.

    Break objects touching selected objects.

    Select object(s) to break & press enter:

    too many arguments

     

    nghĩa là gì nhỉ :tongue2:

     

    Bạn đừng nhấn vào Download lisp file,bạn copy nội dung lisp rồi dán vào Notepad,sao lưu dưới định dạng er2l.lsp


  3. Chào bác SONCAD

    Hì hì, Tue_NV nghĩ rằng tiêu đề topic bác nên đổi thành : Gặp mặt Anh Chị em Cadviet! thì hay hơn và đương nhiên là Danh sách anh em tham gia phải được đổi thành Danh sách anh Chị em tham gia. :tongue2: vì chắc rằng danh sách thành viên sẽ có mem nữ tham gia đó mà :D

     

    Chúc các bạn có một buổi gặp mặt thật vui vẻ :D

     

    Hi bác Tue_NV

    Lâu lắm gùi mới gặp lại bác (trên diễn đàn), lúc trước được bác giúp đỡ nhiều thứ mà chưa có dịp gặp mẹc giao lưu,hay sẵn dịp này bác ngao du miền Nam 1 chuyến như bác Tuannguyen,anh em cadviet giao lưu thêm xôm tụ. Sẵn dịp nhờ bác viết hộ cho anh em cái lisp nào gõ 1 phát là gom hết cá trong ao luôn nhỉ. :D

    Chúc bác luôn vui vẻ.

    • Vote tăng 2

  4. Lâu quá rồi các anh em Cadviet Miền Nam chúng ta chưa giao lưu gặp gỡ các bác nhỉ!

    Chủ nhật tuần này (ngày 1/11 đẹp lun) các anh em liên lạc tại TP HCM đã hội ý và đồng thuận tổ chức buổi họp mặt thân mật Cafe và câu cá sinh thái tự nhiên tại Thủ Đức!

    Các anh em Cadviet miền Nam sắp xếp được thời gian chúng ta tổ chức họp mặt để thắt chặt tinh thần đoàn kết nhé...

    Địa điểm :

    Hẻm 520 Quốc Lộ 13. Khu phố 6. Phường Hiệp Bình Phước. Thủ Đức.(Sát cây xăng Huệ Thiên 2 trước hẻm có quán cafe)

    Thời gian :

    Tập trung lúc 2h chiều để chuẩn bị mồi, cần câu cá và lai rai cafe!

    Sau đó câu chú cá nào xong tập trung lại 5h chiều "xử" cùng 1 lúc.

    * Danh sách anh em tham gia :

    1. PhamThanh Binh

    2. SONCAD (0918 144003)

    3. Vanduong (0937 025526)

    4. Happyfeet

    5. Vbao

    6. Manhhungxda

    7. Miennuitomo_3d

    8. Leolas

    9. Cadviet244

    10.Nemo2004

    11.Uct0978333594

    12.............

    *Sơ đồ đường đi :

    (Vị trí ngôi sao màu đỏ : Hẻm Đường số 6 nằm sát Cây Xăng Huệ Thiên 2 trên Quốc Lộ 13)

    hem520ql13a.jpg

     

    Lâu lâu anh em họp mặt vui quá, đăng ký 1 vé ngay.

    Câu được con nào em mang về nuôi nhớ bác Sơn :tongue2:

     

    * Danh sách anh em tham gia :

    1. PhamThanh Binh

    2. SONCAD (0918 144003)

    3. Vanduong (0937 025526)

    4. Happyfeet

    5. Vbao

    6. Manhhungxda

    7. Miennuitomo_3d

    8. Leolas

    9. Cadviet244

    10.Nemo2004

    11.Uct0978333594

    12.Tuannguyen314169 (0919650499)

    13. vndesperados

    14.tn20159

    15.tuan_thietkedien

    • Vote tăng 1

  5. Lâu quá anh em CADViet - TP.HCM không gặp nhau.

    Nhớ quá :s_big:

    ..................

    Chủ nhật tới 8h30 (20/09/09) gặp mặt - uống cafe không các bác ???

     

    A lốố - có ai không ?

     

    Điểm danh nào :

    1. Vanduong

    2.

     

    Dẹo nì công việc nhiều quá ít ghé thăm cadviet được nhưng họp mặt thì ok liền. hehe

    Đăng ký 1 vé.

    • Vote tăng 1

  6. Chào bạn Tuanthietkedien

    Code trên sẽ được Tue_NV viết lại như sau :

    (defun c:taotext ( / ent )
    (setq diemtext (getpoint))
    (command ".style" "original" "extfont2.shx" "0" "0.8" "0" "n" "n" "n")
    (command "text" "bc" diemtext 200 0 "abc")
    (setq chu (entlast))
    (chuyen chu)
    )
    ;
    (defun chuyen (dt / ent )
    (command "chprop" dt "" "c" 1 "" "")
    )

     

    @PhamthanhBinh : Theo Tue_NV hiểu là bạn Tuan định nghĩa hàm chuyen với tham biến là chu đấy

    Vậy Cú pháp khi gọi chương trình con là (chuyen chu) và lúc này (chuyen chu) là 1 function phải không bạn?

     

    Chào bạn Tue_NV, bạn Phamthanhbinh

    Mình thấy các bác hay dùng kiểu (function biến) để ghép vào 1 lệnh khác mà mình chưa hiểu rõ cách dùng thế nào nên muốn học.

    Ý của mình là bất kỳ các lisp nào mà mình muốn chuyển màu chữ thì mình không cần dùng lại lệnh CHPROP nữa mà chỉ cần gọi hàm chuyen mà thôi.

    Cho mình hỏi là

    1. Nếu chỉ muốn chuyển màu chữ thì làm sao gọi hàm chuyển được?

    2. Có phải hàm (defun chuyen (dt / ent ) (command "chprop" dt "" "c" 1 "" "") , chỉ cần khai báo 1 lần là có thể ghép vào tất cả các hàm khác không , hay phải khai báo lại?


  7. Nhờ mọi người chỉ giúp cách ghép 1 lệnh vào 1 lệnh khác. Ví dụ Lísp1 dùng để chuyển tẽxt sang màu đỏ. Lísp 2 dùng tạo tẽxt, sau đó kết hợp Lísp 1 để chuyển sang màu đỏ luôn. 2 ví dụ dưới mục đích để tìm hiểu cách sử dụng 1 lệnh trong 1 lệnh khác.

     

    Lísp1 :

    (defun c:chuyen ( / ent )

    (setq dt (car(entsel)))

    (command "chprop" dt "" "c" 1 "" "")

    )

     

    Lísp2 :

    (defun c:taotext ( / ent )

    (setq diemtext (getpoint))

    (command ".style" "original" "extfont2.shx" "0" "0.8" "0" "n" "n" "n")

    (command "text" "bc" diemtext 200 0 "abc")

    (setq chu (entlast))

    (chuyen chu)

    )


  8. Chào bạn Tuan_thietkedien,

    Theo mình hiểu thì việc page setup chỉ có tác dụng đối với việc in ấn thôi mà, do vậy việc bạn mở một bản vẽ mới mà page setup trước có vẻ không hợp lý lắm và mình cũng chưa hiểu vì sao phải như vậy.

    Có phải bạn muốn như vậy để tiện cho bạn chọn tỷ lệ khi vẽ hay không??? Theo thiển ý của mình thì không nên và bạn nên vẽ với tỷ lệ 1:1 là tốt nhất, sau đó tùy theo yêu cầu cụ thể để bạn xuất sang layout và thực hiện các bản in tại đây là tốt hơn bạn ạ. Như vậy ki bạn cần chỉnh sửa gì trên thiết kế cũng sẽ thuận lợi hơn nhiều.

    Cũng theo mình biết thì yêu cầu của bạn hơi khó thực hiện trong cad vì Cad đã cố tình tách riêng các tab Model và layout để người thiết kế tiện sử dụng rồi bạn ạ.

    Không biết các bác khác có mánh gì hay hơn không, hãy chỉ giùm bạn Tuan_thie6tked9ie6n và cho mình mót với

    Chúc bạn thành công.

     

    Chào bạn phamthanhbinh

    Giả sử khi mình cần in 100 bản vẽ mà các bản vẽ đó chưa cài pagesetup thì rất khổ cho người in, mình muốn mặc định pagesetup trước khi vẽ rồi sau đó mình dùng Publish để in hàng loạt bản vẽ mà không mất thời gian chình từng bản vẽ một.

    Phần Layout mình có nghe nói mà chưa dùng thử bao giờ, nếu có chỗ không hiểu nhờ bạn chỉ giúp nha.

    Chúc bạn luôn vui vẻ.


  9. Xin giới thiệu phần mềm dùng để làm trắc dọc thoát nước từ bình đồ và trắc dọc tuyến.

    Thêm một số công cụ nhỏ.

    với Qplot có thể in nhanh, in nhiều file một lúc. và in theo đúng số trang bản vẻ chỉ định....

    Mọi nguời sử dụng và góp ý.

    Link download chương trình:

    http://www.upload.coo.vn/download.php?file...0b7e4a1308465c1

     

    Để nắm rõ xin xem file hướng dẫn kèm theo trong chương trình.

    Một số đoạn video hướng dẫn sử dụng:

    2.Cai dat:

    http://www.upload.coo.vn/download.php?file...9d82b7d2ccd468b

     

    3. Cau hinh:

    http://www.upload.coo.vn/download.php?file...3b417b277404014

     

    4. Dung_Qplot _in_nhieu_file:

    http://www.upload.coo.vn/download.php?file...02f1362b1c84b4e

     

    5. Dung_Qplot _in_theo_so_trang:

    http://www.upload.coo.vn/download.php?file...e9debc8644656a2

     

    6. Dung_Qplot _lam_muc_luc_ban_ve:

    http://www.upload.coo.vn/download.php?file...d3c05d6831cd71e

     

    7. Sap_xep_ban_ve_sang_layout:

    http://www.upload.coo.vn/download.php?file...1618f43b7bcafb6

     

    8. Thiet lap banve dung voi Qplot:

    http://www.upload.coo.vn/download.php?file...ef254b676080f7e

     

    9. Trac_doc_cong:

    http://www.upload.coo.vn/download.php?file...edf960538c69078

     

    Sau khi mình cài Cs Líp xong, chạy thử thì báo là chương trình dùng thử, yêu cầu nhập mã đăng ký.

    Bạn có key không cho mình xin.


  10. Chào tuan_thietkedien

    Dos chỉ hiểu tên file & folder 8 kí tự.

    Truờng hợp tên file(folder) dài hơn 8, DOS sẽ tự động cắt phần sau từ kí tự thứ 7 rồi thêm "~1" hoặc "~2" phía sau 6 kí tự phía đầu.

    VD : Program Files -> Progra~1

    AutoCAD 2004 -> Autoca~1

    do đó bạn thử sửa file bat nhu sau :

     

    @echo off

    copy d:\test.lsp C:\Progra~1\AutoCA~1\Support

     

    Chúc thành công.

     

    Hihi, cám ơn bác gia bach nhiều lắm.

    Em làm được rồi.


  11. Bạn dùng hàm vl-file-copy hay hơn.

     

    (vl-load-com)

    (vl-file-copy "d:/test.lsp" "C:/Program Files/AutoCAD 2004/Support/test.lsp")

     

    Mình làm được rồi.

    Cám ơn bác q288 nhiều nha.

    Nếu bác biết về cách tạo file.bat thì cho mình hỏi thêm 1 chút.

    Mình cũng thử copy bằng kiểu tạo file.bat dưới đây nhưng không được, không biết làm sai chỗ nào.

     

    @echo off

    copy d:\test.lsp C:\Program Files\AutoCAD 2004\Support

     

    Nếu mình copy vào thưc mục khác C:\Program Files thì vẫn copy được.


  12. Bạn Gia_Bach có nhiều ct hay thiệt, giải quyết cả arc, circle, spline, pline. Nhờ ct của bạn mà mình mới hiểu hàm vlax-curve-getFirstDeriv làm cái công việc gì.

    thanks.

     

    Em cũng công nhận bác Gia bach có nhiều Lisp hay lắm. :mellow:

    Không biết đến chừng nào nội công của em mới thâm hậu như các bác cao thủ trên diễn đàn nữa. :mellow:


  13. Chào bác Tue_NV,

    Bác có thể giải thích giùm mình cái hàm này (- (vlax-curve-getEndParam e) 1)) không ạ?

    Theo mình hiểu là ý bác muốn lấy cái parameter của đỉnh kề với điểm cuôi của polyline. Có đúng không bác? Nếu như vậy thì hàm (vlax-curve-getendparam e) sẽ trả về số thứ tự của đỉnh cuối cùng của polyline ạ?

    Mình chưa hiểu rõ cái parameter của polyline lắm nhờ bác giải thích giùm một chút bác nhé.

    Thank bác nhiều.

     

    Bạn Bình hỏi câu cũng đúng y như mình định hỏi bạn Tue vậy.

    Hihi..Đúng là chiến hữu, chiến hữu.

    Mình cũng tra thử trong Help nhưng không hiểu lắm, hình như lấy điểm của đường cong gì đấy, rồi có đọan trừ 1 là sao vậy hả bạn Tue.

    Mấy hàm vlax này tiện dụng quá mà lại không hiểu nhiều. Trong Help tòan tiếng Anh không nhìn là chóang rồi.

    Nhờ bạn giải thích hộ mình và bạn Bình nha.


  14. Đoạn Lisp bạn viết ra thì block mũi tên bao giờ cũng được chèn theo phương điểm đầu và điểm cuối của Pline mà thôi.

    Ví dụ nhé : Pline của bạn có 2 phân đoạn tương ứng với các đỉnh là ABC => Vậy đoạn Lisp của bạn viết ra thì mũi tên của bạn chỉ chèn theo phương AC (điểm đầu và điểm cuối). Nhưng mục đích của bạn là chèn theo phương BC.

    Không biết Tue_NV nói như vậy có đúng ý của bạn hay không?

     

    Đúng đó bạn Tue.

    Mình đang thử gợi ý bạn Bình như thế nào. Bạn có cách nào góp ý mình với.


  15. Lisp thì có thể hiểu được Nếu Polyline có 1 đầu tiếp xúc với 1 hình khác

    "và chỉ chèn block vào phía đầu Polyline chưa tiếp xúc,"

     

    đầu Pline chưa tiếp xúc có thể là điểm đầu và điểm cuối. Nếu hiểu thì Lisp sẽ hiểu cả điểm đầu và điểm cuối đều không tiếp xúc đấy bạn Tuanthietkedien à. Bạn muốn chèn vào đầu nào. Bạn hãy nói rõ ý

     

    Ví dụ trong file mình đã gởi thì đầu tiếp xúc là đầu Polyline tiếp xúc với hình tròn, đầu còn lại chưa tiếp xúc với hình nào khác mình sẽ gắn mũi tên vào.

     

    Mình đã thử làm cái Lisp này.

     

    Do chưa biết cách để Lisp hiểu được Nếu Polyline có 1 đầu tiếp xúc với 1 hình khác nên

    khi mình vẽ Polyline, mình luôn qui ước điểm đầu Polyline là điểm gắn với hình tròn,

    điểm cuối Polyline là điểm Lisp sẽ gắn mũi tên vào.

     

    Như vậy vấn đề điểm chèn mũi tên đã được giải quyết, vấn đề tìm góc Polyline.

    Trong file dwg dưới đây có 2 Polyline góc 45 độ và 315 độ mình chưa biết cách giải quyết được.

    Bạn tham khảo rồi giúp mình nha.

     

    (defun c:test ( / osold ss i e dd dc goc )
    (vl-load-com)
    (setq osold (getvar "osmode"))
    (setvar "osmode" 0)
    
    (setq ss (ssget '((0 . "LINE,LWPOLYLINE")))
    i 0)
    (while (< i (sslength ss))
    (setq e (ssname ss i))
    (setq dd (vlax-curve-getStartPoint e))
    (setq dc (vlax-curve-getEndPoint e))
    (setq goc (angle dd dc))
    (setq goc (fix(/ (* 180 goc) pi)))
    (command ".insert" "mui ten" dc "" "" goc)
    (setq i (1+ i))
    )
    
    (setvar "osmode" osold)
    (princ)
    )

     

    http://www.cadviet.com/upfiles/Drawing2_21.dwg


  16. Cái này đơn giản mà bạn. Học hồi phổ thông. Hình học giải tích

    Cho 1 đoạn thẳng AB .

    Điểm A có tọa độ A(xa,ya)

    Điểm B có tọa độ B(xb,yb)

    Vậy thì góc AB sẽ là :

    tan a = |(yb-ya)|/|(xb-xa)|

     

    Bạn sử dụng Code theo ý mình xây dựng thử xem

    Chú ý : Lisp không có hàm tan . Bạn sử dụng hàm sin và cos => tan = sin/cos

     

    Hoặc nhanh hơn bạn sử dụng hàm

    (angle pt1 pt2)

     

    Bạn Tue cho mình hỏi thêm tí nha.

    Mình đang muốn giải quyết vấn đề chèn block mũi tên vào 1 Polyline. Mình dùng lệnh Insert.

    Lisp sẽ quét vào Polyline và tìm được góc Polyline đó.

    Nếu Polyline có 1 đầu tiếp xúc với 1 hình khác vậy có cách nào làm lisp hiểu và chỉ chèn block vào phía đầu Polyline chưa tiếp xúc với hình nào hay không?

     

    http://www.cadviet.com/upfiles/Drawing2_20.dwg

     

    Vấn đề tìm góc mình sẽ tìm hiểu về hàm sin và cos, vì mấy lệnh này mình chưa bao giờ dùng cả. :mellow:

     

     

    http://www.cadviet.com/upfiles/Drawing2_20.

×