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

thanhduan2407

Nhà quảng cáo
  • Số lượng nội dung

    1.161
  • Đã tham gia

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

  • Ngày trúng

    26

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


  1. Các bác cho em hỏi chút ạ!

    Khi bắt đầu thời từ lúc vẽ cho đến khi kết thúc em có 1 nhóm các đối tượng (Group1), sau đó em move nhóm đối tượng đó ra một vị trí khác (lúc đó nhóm đối tượng đó sẽ là Group2) để tạo thành một Wblock. Em muốn tóm được thằng Group2. Thao tác này được lặp đi lặp lại rất nhiều (nhiều Wblock với nhiều Group khác nhau) và em làm thao tác như này nhưng thấy càng về sau tốc độ chạy càng chậm (rồi nó đơ….chạy ngầm) nhưng vẫn ra kết quả. Em muốn nâng cấp để tăng tốc độ chương trình nên nhờ các bác chỉ giáo về cách thức.

     

     
    (setq lstAll (list))
      (setq Elast (entlast))
      (while (< i n)
        (progn
          (setq P11 (vlax-curve-getPointAtParam Ob i)
       P22 (vlax-curve-getPointAtParam Ob (+ i 1))
          )
    
          (setq P_Goc (list (car P11) (cadr P22)))
          (TML1 P11 P22 Tleebd)
          (while
    (setq Elast (entnext Elast))
    (setq lstAll (reverse (cons Elast lstAll)))
          )
          (setq Elast2 (entlast))
          (ppn:vla-move-ss (CV:List-to-ss lstAll) P_Goc '(0 0 0))
          (while
    (setq Elast2 (entnext Elast2))
    (setq lstAll2 (reverse (cons Elast2 lstAll2)))
          )
          (command "-WBLOCK"
          (strcat "C:\\WBLOCK\\" "BV" (rtos (+ iii 1) 2 0) ".dwg")
          ""
          '(0 0 0)
          (CV:List-to-ss lstAll2)
          ""
          )
        )
        (setq iii (1+ iii))
        (setq i (+ i 2))
      )
    

  2. Em xin góp ý ạ!

    Video trên là của em viết. Đây là một bài toán nghịch trong Trắc Địa (nghề của em), nếu ai dùng lisp này để bịa số liệu thì tội của em to lắm! Chính vì thế em ko cho ai chương trình này. Còn việc thương mại hóa chủ yếu là nói để hạn chế người sử dụng, nếu ai nói đúng lý do (không tiêu cực) thì em sẵn sàng cho.


  3. Em là người xui tận mạng! Nhưng nhờ sự xui xẻo của em mà có thể nhiều người hưởng lợi. Theo 1 chú đã từng làm cho autodesk tiết lộ thì hãng này thú nhận là chúng nó cũng không sửa được (???). Hay là do chúng ta sử dụng phần mềm lậu nên chúng nó chơi đểu. Đó là lỗi của hàm list.

    Ví dụ:

    Command: (cons 219 (list 1.0 2.0 3.0)) => (219 1.0 2.0 3.0)

    Command: (cons 220 (list 1.0 2.0 3.0)) => (220 1.0 2.0 3.0)

    Application ERROR: Bad argument type

    Trời ơi! Không có cách khắc phục hả bác?

    Em viết một list đơn giản mà không được ạ?

    Em tạo một danh sách Red, Green, Blue

    Ds1: Red = 0, Green tăng từ 0 đến 255 theo bước nhảy iColor cố định, Blue = 255

    Ds2: Red = 0, Green =255, Blue giảm 255 về 0 hoặc gần về 0 (theo bước nhảy iColor cố định)

    Ds3: Red tăng từ 0 đến 255 theo bước nhảy iColor cố định, Green = 255, Blue = 0

    Ds4: Red =255, Green giảm 255 về 0 hoặc gần về 0 (theo bước nhảy iColor cố định), Blue = 0.

    Sau đó gộp 4 danh sách với nhau.


  4. Chào các bác!

    Em tạo 4 danh sách sau đó gộp lại thành một, nhưng khi test nó lại báo

    Application ERROR: Bad argument type

    Em test từng cụm thì thấy LtsRGB3 ảnh hưởng nhưng em không phát hiện ra lỗi sai. Nhờ các bác tư vấn dùm em. Em cảm ơn nhiều!

    
    ;;;test (GetListRGB 10)
    
    (defun GetListRGB (iColor / BI GI GII Ri)
      (setq LtsRGB (list))
      (setq LtsRGB1 (list))
      (setq LtsRGB2 (list))
      (setq LtsRGB3 (list))
      (setq LtsRGB4 (list))
      
      (setq Gi 0)
      (while
        (< Gi (- 255 iColor))
         (setq Gi (+ Gi iColor))
         (setq LtsRGB1 (append LtsRGB1 (list (list 0 Gi 255))))
      )
    
      (setq Bi 255)
      (while
        (> Bi iColor)
         (setq Bi (- Bi iColor))
         (setq LtsRGB2 (append LtsRGB2 (list (list 0 255 Bi))))
      )
    
      (setq Ri 0)
      (while
        (< Ri (- 255 iColor))
        (setq Ri (+ Ri iColor))
        (setq LtsRGB3 (append LtsRGB3 (list (list Ri 255 0))))
      )
    
      (setq Gii 255)
      (while
        (> Gii iColor)
         (setq Gii (- Gii iColor))
         (setq LtsRGB4 (append LtsRGB4 (list (list 255 Gii 0))))
      )
      (setq LtsRGB (append LtsRGB1 LtsRGB2 LtsRGB3 LtsRGB4))
      LtsRGB
    )
    
    

  5. Chào bác Hạ!

    Đêm qua em mới check qua nhưng chưa thực hành.

    Em muốn gán màu sắc cho đối tượng theo TrueColor như hình vẽ. Như vậy có nhiều màu sắc hơn để gán màu cho đối tượng. Em gán màu sắc cho đường đồng mức ạ. Lại làm phiền bác Hạ và các bác rồi.

    Thôi chết. Dc bác Hạ gợi ý lại quên béng mất. Em tìm trong Lee-Mac có rồi. Hii. Em ko biết cách xóa bài nên Edit ạ!

    36665_se.jpg


  6. Chú Lee Mac có 1 loạt các hàm convert. VD từ RGB->ACI:

     

    (defun LM:RGB->ACI ( r g b / cObj aci ) (vl-load-com)
      (if
        (and
          (setq cObj
            (vla-getInterfaceObject (vlax-get-acad-object)
              (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2))
            )
          )
          (not
            (vl-catch-all-error-p
              (vl-catch-all-apply 'vla-SetRGB (list cObj r g b))
            )
          )
        )
        (setq aci (vla-get-ColorIndex cObj))
      )
      (if cObj (vlax-release-object cObj))
      aci
    )
     
    

    Em cảm ơn bác Doan Van Ha nhiều. Hiii.

    Chú Lee Mac có 1 loạt các hàm convert. VD từ RGB->ACI:

     

    (defun LM:RGB->ACI ( r g b / cObj aci ) (vl-load-com)
      (if
        (and
          (setq cObj
            (vla-getInterfaceObject (vlax-get-acad-object)
              (strcat "AutoCAD.AcCmColor." (substr (getvar 'ACADVER) 1 2))
            )
          )
          (not
            (vl-catch-all-error-p
              (vl-catch-all-apply 'vla-SetRGB (list cObj r g b))
            )
          )
        )
        (setq aci (vla-get-ColorIndex cObj))
      )
      (if cObj (vlax-release-object cObj))
      aci
    )
     
    

  7. Chào các bác!

    Em đang tìm hiểu tính năng import ảnh vào trong Autocad đúng tọa độ nhưng chưa làm được.

    Trong phần mềm đồ họa MicroStation thì có tính năng này nhưng cứ phải qua nó mới xuất sang được sang Autocad. Vậy em hỏi xem các bác có cách nào đưa ảnh (TIF, TIFF) vào trong Autocad đúng tọa độ không ạ?

    Đây là video nói lên mục đích của em.

    https://www.youtube.com/watch?v=x9ltUdXiHAE&feature=youtu.be

    Cảm ơn các bác nhiều!


  8. Nhờ các bác tư vấn em với ạ!

    Em có một đường Pline khép kín và em muốn sử dụng lisp Etrim (lệnh Extrim) để cắt bỏ các đối tượng cùng một Layer bên ngoài Polyline thì nên làm như nào vậy ạ? Liệu có phải Lock các layer lại, chỉ để lại Layer cần cắt rồi sau đó lại Unlock?

    Em cảm ơn các bác nhiều!


  9. Chương trình của bạn nội suy 3 số lẽ. bạn chỉnh giúp 2 số lẽ thôi.

     

    Các điểm cấy vào quá hoàn hảo : nằm ngay trên mp của tam giác thì khó mà qua mắt người có kinh nghiệm

     

    Hề hề hề,

    file .vlx thì chịu rồi, chả thể nhòm ngó hay phê phán điều gì ?????

    Hì hì. Em viết chơi ấy mà. Nó phục vụ cho chuyên ngành của em tương đối tốt. 

    • Vote tăng 1

  10. Sao bạn không làm hàm con tính ra tọa độ từ điểm cơ sở từ , hàng ngang, hàng dọc, khoảng cách cho nó khỏe bạn. Hay mình hiểu sai ý.

     Như thế mất rất nhiều thời gian và phải lập công thức. Em đã làm đc rồi ạ! Tuy nhiên hơi mất công đoạn trải mảng block xong lấy ra tọa độ rồi lại xóa đi.

    Chương trình của em đây!

    • Vote tăng 1

  11. Em chào các bác!

    Em đang tìm phương thức để lấy được danh sách tọa độ của điểm chèn (list Coordinates ..) khi mình thực hiện ArrayRectang khi có điểm Pick, có khoảng cách hàng, cột…. mà em chưa biết để tìm ra cách. Cái khó của em là em chỉ cần lấy tọa độ của các điểm dạng ArrayRectang mà không phải chèn bLock. Nếu chèn rồi lại mất công xóa đi thì mất thời gian quá.

    (vlax-invoke

        Object  'ArrayRectangular KCH KCC….)

    Em nhờ các bác tư vấn cho em với ạ!

    Em xin chân thành cảm ơn nhiều!

    Ps: Đã Modify.

    Em đã tóm được các điểm chèn rùi. Nhưng phải thêm công đoạn xóa Block đi. 

×