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

Doan Van Ha

Moderator
  • Số lượng nội dung

    6.220
  • Đã tham gia

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

  • Ngày trúng

    446

Bài đăng được đăng bởi Doan Van Ha


  1. 15 phút trước, limfx đã nói:

    Em tạo line:
     (entmakex (list (cons 0 "LINE")
                     (cons 10 p1)
                     (cons 11 p2)))

    (setq ent (entlast)) ; <Entity name: 1e24df02d20> 

    Nhưng em muốn ent theo kiểu chọn đối tượng  entsel : (<Entity name: 1e24df02d20> (11.7598 10.777 0.0)) 

    Thì chuyển đổi ra sao Anh?

     

    (setq ent (entmakex (list (cons 0 "LINE") (cons 10 p1) (cons 11 p2))))

     


  2. 30 phút trước, pdhuyxn2 đã nói:

    Nhờ các Bác viết cho 1 lisp di chuyển các đối tượng Block được chọn trên 1 Polyline hoặc line thằng hàng sang đường gấp khúc

    + Khi chọn toàn bộ các Block cần di chuyển nằm trên 1 đường polynie hoặc line thẳng hàng.

    + Chọn vào đường gấp khúc.

    + Các Block tự động di chuyển sang đường gấp khúc. khoảng cách giữa các block trên đường Polilynie và line thẳng bằng và trùng với khoảng cách các block trên đường gấp khúc.

    Cám ơn Các Bác Ạ! 

    File cad đây ạ.

    Di chuyen Block.dwg

    Đề sai: chiều dài 2 đường bị khác nhau

    • Like 1

  3. 54 phút trước, nghia7x đã nói:

    cho mình hỏi là tại sao máy mình khi xuất PDF là bị đen wipeout , mà mình preview trước khi xuất thì bình thường. Ví dụ như hình 
    làm cách nào để khắc phục đây ạ. mình cảm ơn.

    Bạn post 5 bài cũng chủ đề. Bị xóa.
    Sau đó bạn post 3 bài cùng chủ đề. Bị xóa tiếp.
    Rồi bạn post tiếp 2 bài cùng chủ đề, cách nhau nhiều phút. Bạn đang nghĩ gì về forum vậy?


  4. Vào lúc 1/4/2023 tại 09:47, pdhuyxn2 đã nói:

    Kính Nhờ Các Bác chỉnh sửa giúp em lệnh IPL sao cho chèn Block song song với đường dẫn line , Polyline (trong khung nhìn 3D) sao điểm chèn đầu hoặc cuối  từ ngoài vào trong line hoặc Polyline Như VD sau:

    Cám Ơn Các Bác

    Chen Block song song.dwg

    Cái này thì tôi đã viết và đăng youtube, khá đồ sộ và là soft thương mại cho KS thiết kế đường dây điện
    https://youtu.be/nK29WEKm4XQ

    • Like 1

  5. Nàng Lê Thị Mác có lisp lấy điểm dày/thưa theo độ cong.

    ;;----------------=={ Entity to Point List }==----------------;;
    ;;  Returns a list of points describing or approximating the supplied entity, else nil if the entity is not supported. ;;
    ;;  Author: Lee Mac, Copyright © 2011 - www.lee-mac.com       ;;
    ;;  Arguments:                                                ;;
    ;;  ent - Entity for which to return Point List.              ;;
    ;;  Returns:  List of Points describing/approximating entity  ;;
    (defun LM:Entity->PointList(ent / der di1 di2 di3 elst fun inc lst par rad)
     (setq elst (entget ent))
     (cond
      ((member (cdr (assoc 0 elst)) '("CIRCLE" "ARC"))
       (setq di1 0.0 di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent)) inc (/ di2 (1+ (fix (* 35.0 (/ di2 (cdr (assoc 40 elst)) (+ pi pi)))))) fun (if (vlax-curve-isclosed ent) < <=))
       (while (fun di1 di2) (setq lst (cons (vlax-curve-getpointatdist ent di1) lst) di1 (+ di1 inc)))
        lst)
      ((eq (cdr (assoc 0 elst)) "ELLIPSE")
       (setq di1 (vlax-curve-getdistatparam ent (vlax-curve-getstartparam ent)) di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam   ent)) di3 (* di2 (/ (+ pi pi) (abs (- (vlax-curve-getendparam ent) (vlax-curve-getstartparam ent))))))
       (while (< di1 di2) (setq lst (cons (vlax-curve-getpointatdist ent di1) lst) der (distance '(0.0 0.0) (vlax-curve-getsecondderiv ent (vlax-curve-getparamatdist ent di1))) di1 (+ di1 (/ di3 (1+ (fix (/ 35.0 (/ di3 der (+ pi pi)))))))))
       (if (vlax-curve-isclosed ent) lst (cons (vlax-curve-getendpoint ent) lst)))
      ((or (eq (cdr (assoc 0 elst)) "LWPOLYLINE") (and (eq (cdr (assoc 0 elst)) "POLYLINE") (zerop (logand (cdr (assoc 70 elst)) 80))))
       (setq par 0)
       (repeat (fix (1+ (vlax-curve-getendparam ent)))
        (if (setq der (vlax-curve-getsecondderiv ent par))
         (if (equal der '(0.0 0.0 0.0) 1e-8)
          (setq lst (cons (vlax-curve-getpointatparam ent par) lst))
          (if (setq rad (distance '(0.0 0.0) (vlax-curve-getfirstderiv ent par)) di1 (vlax-curve-getdistatparam ent par) di2 (vlax-curve-getdistatparam ent (1+ par)))
           (progn
            (setq inc (/ (- di2 di1) (1+ (fix (* 35.0 (/ (- di2 di1) rad (+ pi pi)))))))
            (while (< di1 di2) (setq lst (cons (vlax-curve-getpointatdist ent di1) lst) di1 (+ di1 inc)))))))
        (setq par (1+ par)))
       (if (or (vlax-curve-isclosed ent) (equal '(0.0 0.0 0.0) der 1e-8)) lst (cons (vlax-curve-getendpoint ent) lst)))
      ((eq (cdr (assoc 0 elst)) "SPLINE") ; phô thuéc ®é cong
       (setq di1 (vlax-curve-getdistatparam ent (vlax-curve-getstartparam ent)) di2 (vlax-curve-getdistatparam ent (vlax-curve-getendparam ent)) inc (/ di2 25.0))
       (while (< di1 di2)
        (setq lst (cons (vlax-curve-getpointatdist ent di1) lst) der (/ (distance '(0.0 0.0) (vlax-curve-getsecondderiv ent (vlax-curve-getparamatdist ent di1))) inc)
                    di1 (+ di1 (if (equal 0.0 der 1e-10) inc (min inc (/ 1.0 der (* 10. inc)))))))        ; chia theo ®é cong lín nhá (®é cong cµng lín ®iÓm chia cµng dµy).
                ; di1 (+ di1 inc)))                                                            ; chia theo kho¶ng c¸ch b»ng nhau.
      (if (vlax-curve-isclosed ent) lst (cons (vlax-curve-getendpoint ent) lst)))))
    

    • Vote tăng 1

  6. Có 1 điều bạn nên giải thích rõ (vì soft của bạn có trà sữa), đó là tính ưu việt của nó so với rất nhiều lisp IN mà bạn đã kể, để họ dễ tiếp cận.
    Và đặc biệt hơn nữa: đây là bài đầu tiên bạn post cho CadViet với lời kêu gọi vì sự phát triển của CadViet nhưng đã có mùi sữa rồi.

    • Like 4

  7. 5 phút trước, Supber Meo Beos đã nói:

    số thứ tự không vẫn sắp xếp kiểu đó, em nghi là do lisp đánh số thứ tự

     

    Theo nguyên tắc sắp xếp thứ tự thì Cad hay Excel đều đã sắp như vậy là đúng, vì nó sắp theo thứ tự STRING chứ không phải NUMBER. Bạn muốn sắp theo number thì phải có lisp tách nó ra thành 2 phần "PL-" và "Num", sau đó chuyển từ "Num" dạng string sang Num dạng số rồi mới sắp xếp.

    • Like 1

  8. 10 phút trước, tranducanh18 đã nói:

    tim hatch chong.dwg
    Chào cả nhà. Trong công việc thỉnh thoảng có những hatch bị chồng nhau kiến cho việc tính toán diện tích bị sai mà rất khó phát hiện. Em sử dụng lệnh overkill để xóa chồng cũng không được. 
    Nhờ các bác có kinh nghiệm chỉ giáo xem mình có thể dùng lệnh gì để phát hiện ra lớp hatch bị chồng hoặc có lisp nào cho em xin ạ. Em tìm trên diễn đàn hiện không thấy. 
    Em xin cảm ơn ạ!

    Bạn đang post 1 chủ đề trong 5 bài liên tiếp cách nhau 2-3 phút? Vì sao thế bạn?

×