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

huunhantvxdts

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

    857
  • Đã tham gia

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

  • Ngày trúng

    40

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


  1. 1 giờ} trướ}c, NAMPDU88 đã nói:

    Em chào các bác. em thường xuyên phải kiểm tra tổng của các dữ kiện bằng mắt theo cột tổng với các dữ liệu con. kiểm tra bằng mắt một ít thì ko sai nhưng khi ktr khoảng vài nghìn dòng thì hoa cả mắt. các bác có cách nào xuất ra file excel hoặc lisp quét kiểm tra cột tổng với tổng số lượng các cột con không ạ. cột tổng lúc nào cũng tên như vậy cột tổng lúc nào cũng = tổng các cột còn lại giới hạn bởi cột note. em cảm ơn ạ. 153803498_SD.thumb.png.ec352f6f36b6eec3ae602fb6f570ee27.pngscreenshot_1606889803.thumb.png.7ad65dd2348bacfca008da57b4c8664d.png

    Cái này bạn tìm lisp c2e trên diễn đàn để xuất ra excell nhé


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

    Cảm ơn bạn, mình có xem qua lisp của  Ketxu rồi nhưng thấy không phù hợp, của Ketxu là những đường line, pline đơn lẻ, liền nhau, còn của mình là những ngã 3, ngã 4 giao thông , không liền nhau và không liên tiếp

    Mong mọi người giúp đỡ.

    Mình nghĩ bạn trên trim tại các điểm giao rồi dùng lisp của bạn Ketxu còn không thì bạn chờ thôi (mà điều này nếu free chắc sẽ vô vọng)


  3. 2 giờ trước, buivansu đã nói:

    Chào cả nhà. Mình là kỹ sư quy hoạch giao thông, hay phải dùng lệnh chamfer và fillet các tuyến đường, công việc lặp đi lặp lại rất nhiều lần, mong mọi người giúp đỡ viết giúp 1 lisp để thực hiện công việc nhanh hơn và hiệu quả hơn. Mô tả lệnh như sau:

    Lệnh Chamfer: Lệnh chh. Đánh lệnh chh: quét qua ngã ba hoặc ngã tư, kết thúc lệnh
    (Có thể thay đổi chiều dài vát góc bằng cách đánh d rồi nhập vào khoảng cách mong muốn trước khi tiếp tục thực hiện lệnh, ghi nhớ giá trị nhập cho lần tiếp theo).

    Lệnh Fillet: Lệnh cff: Đánh lệnh cff: quét qua ngã ba hoặc ngã tư, kết thúc lệnh
    (Có thể thay đổi bán kính bằng cách đánh r rồi nhập vào bán kính mong muốn trước khi tiếp tục thực hiện lệnh, ghi nhớ giá trị nhập cho lần tiếp theo).

    Có bản vẽ mô tả lệnh và cách thực hiện đính kèm bên dưới.

    Trân trọng cảm ơn và hậu tạ!

     

     

     

    Fillet va Chamfer.dwg

    vào đây xem của bạn ketxu nhé: https://lispcad.vn/san-pham

    tìm ở mục Free thấy có 2 lisp như bạn yêu cầu

     


  4. 18 giờ trước, HALUMGLASS@GMAIL.COM đã nói:

    Sửa như này Pick diem thu 2Unknown command "Y".  Press F1 for help. (NHỜ CHỈNH SỬA) => (command "dimstyle" "s" tendim "y")--->(command "dimstyle" "s" tendim )

    Chạy thử dòng này không có tác dụng  (alert (strcat "Dim " tendim " da co")) ) Bạn nào giúp lại giúp với.

    - Chỉnh chỉ số Offset from dim line về 1.0 ( không biết setvar của nó là gì)  tìm hiểu hóa ra nó là (setvar   "dimgap"  0.625)

    - Gõ lệnh SYSVDLG ra 1 đống biến hệ thống thanks Danh Cong (cần câu đúng nghĩa)

    Cái này Pick diem thu 2Unknown command "Y".  Press F1 for help. nó báo vậy nhưng đã tạo được DIM nhé bỏ "Y" để nó không báo nữa.

    (alert (strcat "Dim " tendim " da co")) ): Dòng này có tác dụng là thông báo DIM trên bản vẽ đã có rồi không tạo lại nữa nhé

    • Like 1

  5. 1 giờ} trướ}c, TrungOji đã nói:

    Vâng. Trước em có từng tạo kiểu đường rồi. Nhưng yêu cầu đối tượng phải là các line riêng lẻ, ko có liên kết cơ các bác ạ.

     

    Cái này chắc phải nhờ các cao thủ viết lisp thôi, với mình chắc làm được line và pl còn các đường khác thì chịu thôi


  6. 17 giờ trước, HALUMGLASS@GMAIL.COM đã nói:

    Thanks huunhantvxdts rất nhiều

    Mình đã chạy thử có 1 số vấn đề như sau

    - (setvar   "dimlfac" 1) ; scale factor (Thêm dòng này vì có lúc bản vẽ setvar dimlfac không phải là 1

    - (command "style" "romanc" "Vnsimple.shx" 0 0.75 "" "" "" "") lỗi font nên mình vẫn đề thế này (command  "style"   "romanc"  "romanc"  "0"       ""        ""        ""        ""        "")

    -    (setq kc (distance p1 p2))
       (setq hesocale (/ kc 420 3))  cỡ chữ hơi nhỏ so với khổ giấy A3 nên mình để    (setq hesocale (/ kc 420 2))

    - Chỉnh chỉ số Offset from dim line về 1.0 ( không biết setvar của nó là gì) (Xem giúp mình chỗ này với)

    - Styles dim tạo ra các style overrides rất khó chịu (NHỜ CHỈNH SỬA)

    - Command:  TAODIM
    Pick diem thu 1
    Pick diem thu 2Unknown command "Y".  Press F1 for help. (NHỜ CHỈNH SỬA)

    - Nhờ setvar toàn bộ thông số các biến dim

    Về setq biến như bạn @Danh Cong đã up ở trên chắc bạn biết để sử dụng rồi.

    Còn các vấn đề bạn nêu mình cũng chưa hiểu biết hết

    - Styles dim tạo ra các style overrides rất khó chịu (NHỜ CHỈNH SỬA) => Là như thế nào

    Pick diem thu 2Unknown command "Y".  Press F1 for help. (NHỜ CHỈNH SỬA) => (command "dimstyle" "s" tendim "y")--->(command "dimstyle" "s" tendim )

    • Like 1

  7. 15 giờ trước, HALUMGLASS@GMAIL.COM đã nói:

    Nhờ các anh tạo code lệnh theo mong muốn của em như sau:

    - Gõ lệnh TAODIM

    - Lấy chiều cạnh dài khung bản vẽ  (BẰNG CÁCH PICK ĐIỂM ĐẦU ĐIỂM CUỐI) Được kích thước L = A mm.

    - Lấy A mm/420mm = B mm

    - Lấy B mm/3 = C mm (lấy giá trị C thành giá trị Dimscale trong biến hệ thống) 

    - Cuối cùng sẽ tạo được dimstyle là Ha-D-C (C chính là giá trị được tạo ra ở trên)

    Trân thành cảm ơn!

    (defun       c:had1()
       (setvar   "cmdecho" 0)
       (command  "layer"       "m"    "Dims"           "c"     "2"     "")
       (setvar   "dimasz"  3); arrow size
       (setvar   "dimclrd" 9); mau duong giong 
       (setvar   "dimclrt" 2); mau text kich thuoc
       (setvar   "dimclre" 9); mau duong giong ngang
       (setvar   "dimexe"  1); extend beyond dim lines
       (setvar   "dimexo"  3); offset from origin
       (setvar   "dimtad"  1)
       (setvar   "dimtih"  0)
       (setvar   "dimtofl" 1); Chon draw dim line between ext lines
       (setvar   "dimtix"  1); chon always keep text between ext lines
       (setvar   "dimtxt"  3); Text height
       (setvar   "dimdli"  10); Baseline spacing
       (setvar   "dimscale"  1); use overall scale of        
       (setvar   "dimfxlon"  1)    ; chon fixed length extension lines    
       (setvar   "dimfxl"  6); gia tri fixed length bang 6

       (command  "layer"   "s"       "dims"       "")
       (command  "style"   "romanc"  "romanc"  "0"       ""        ""        ""        ""        "")
       (command  "style"   "romans"  "romans"  "0"       ""        ""        ""        ""        "")
       (setvar     "DIMTXSTY" "romanc"); chon kieu text style
       (setvar   "dimblk"  "dotsmall")
       (setvar   "dimblk1"  ".")
       (setvar   "dimblk2"  ".")
       (command "dimstyle" "save" "Ha-D1" )

       (princ)
    )

    Bạn xem thế này đã được chưa nhé

    (defun c:had1(/ p1 p2 kc hesocale tendim oldos)
       (setq cur_lay (getvar "clayer" ))
       (setq oldos (getvar "osmode"))
       (setvar "osmode" 15359)
       (setq p1 (getpoint "\nPick diem thu 1"))
       (setq p2 (getpoint p1 "\nPick diem thu 2"))
       (setq kc (distance p1 p2))
       (setq hesocale (/ kc 420 3))
       (setvar   "cmdecho" 0)
       ;(command  "layer" "m" "Dims" "c" "2" "")
       (if (not (tblsearch "layer" "Dims")) 
    (command "-layer" "new" "Dims" "color" "1" "Dims" "")
    )
       (setvar   "dimasz"  3); arrow size
       (setvar   "dimclrd" 9); mau duong giong 
       (setvar   "dimclrt" 2); mau text kich thuoc
       (setvar   "dimclre" 9); mau duong giong ngang
       (setvar   "dimexe"  1); extend beyond dim lines
       (setvar   "dimexo"  3); offset from origin
       (setvar   "dimtad"  1)
       (setvar   "dimtih"  0)
       (setvar   "dimtofl" 1); Chon draw dim line between ext lines
       (setvar   "dimtix"  1); chon always keep text between ext lines
       (setvar   "dimtxt"  3); Text height
       (setvar   "dimdli"  10); Baseline spacing
       (setvar   "dimscale"  hesocale); use overall scale of        
       (setvar   "dimfxlon"  1)    ; chon fixed length extension lines    
       (setvar   "dimfxl"  6); gia tri fixed length bang 6
       (command  "layer" "s" "dims" "")
       (command "style" "romanc" "Vnsimple.shx" 0 0.75 "" "" "" "")
       ;(command  "style"   "romanc"  "romanc"  "0"       ""        ""        ""        ""        "")
       ;(command  "style"   "romans"  "romans"  "0"       ""        ""        ""        ""        "")
       (setvar   "DIMTXSTY" "romanc"); chon kieu text style
       (setvar   "dimblk"  "dotsmall")
       (setvar   "dimblk1"  ".")
       (setvar   "dimblk2"  ".")
       (setq tendim (strcat "HA-D-" (rtos hesocale 2 2)))
       (if (not (tblsearch "dimstyle" tendim)) 
    	(command "dimstyle" "s" tendim "y")
    	(alert (strcat "Dim " tendim " da co"))
    	)
       ;(command "dimstyle" "s" tendim "y")
       
    	(setvar "osmode" oldos)
    	(setvar "CMDECHO" 1)
    	(setvar "clayer" cur_lay)
       (princ)
       
    )

     

    • Like 1
    • Vote tăng 1

  8. 4 giờ trước, sg0nline đã nói:

     

     

     

    thank bác tham gia giúp mình chỉ cần đơn gian thôi bác kích chọn 1 loại ống rồi đánh lệnh là ra khối lượng tổng của loại ống đó giống tương tự lệnh đo chiều dài tl ( thay vì đo line thì mình đo chiều dài block)

     

     

    thử làm cái tổng hợp và thông kê luôn không biết có đúng ý chủ thớt ko nữa

    Capture.PNG

    Thong ke Ong (TKON).rar


  9. 59 phút trước, sg0nline đã nói:

     

     

     

    thank bác tham gia giúp mình chỉ cần đơn gian thôi bác kích chọn 1 loại ống rồi đánh lệnh là ra khối lượng tổng của loại ống đó giống tương tự lệnh đo chiều dài tl ( thay vì đo line thì mình đo chiều dài block)

     

     

    Bạn làm như ai cũng biết lệnh tl vậy??


  10. 1 giờ} trướ}c, caohan239 đã nói:

    Em đang cần một lisp có thể tính 1 text trừ đi một giá trị cố định để gán vào text còn lại để có thể tính cao độ của đáy hố ga tại các vị trí trên bình đồ. AI có thể giúp em với ạ. Em cảm ơn!!!

    Ảnh minh họa ạ

    Capture.JPG

    Cái này bạn tìm trên diễn đàn thiếu gì??


  11. 2 phút trước, tranhieu.kisuxaydung đã nói:

    mình vẽ đồ thị cần gióng nhanh các điểm trên đồ thị xuống trục hoành hoặc trục tung. có lisp này pic điểm 1 phát nó dóng xuống luôn không cần lệnh ray nữa

    Cái này cần dữ liệu đầu vào nó như thế nào??nếu dữ liệu là file text thì lúc vẽ đồ thị nó vẽ luôn chứ???


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

    Trong thực tế gặp trường hợp này khi nào bạn có thể nói ra được ko?

    Chào nhé!

    Cái này là cháu có gặp trong trường hợp mấy người thi công hầm đo tạo mặt cắt đào nhưng cắm mia không được thẳng mặt cắt. nhưng họ đã dùng phần mềm hs để đưa về được mặt cắt (chỉ đưa tọa độ còn cao độ giữ nguyên).


  13. Vào lúc 2/11/2020 tại 10:50, sg0nline đã nói:

    pipe.dwg Em chào các bậc tiền bối cao nhân trong nhóm ạ, Hiện tại e đang cần các bác giúp e một lisp cad saumình có block động có các loại kính thước ống muốn nhờ các bác viết giùm list tính chiều dài riêng cho từng loại ống trong block cụ thể như file đính kèm ! thank

     

    image.png

    Rãnh làm cái thử xem

    Capture.PNG

    Thong ke ong (TKON).rar


  14. 8 giờ trước, thien316 đã nói:

    Cảm ơn bác đã hướng dẫn nhưng em vẫn chưa đánh được thứ tự được như ý. Em muốn lựa chọn thuộc tính "TENHGA" để đánh số thứ tự nhưng lisp chỉ đánh số thứ tự vào thuộc tính "CDOTK". Bác xem điều chỉnh giúp.

    Untitled.png

    Cái này giống như trong ứng dụng thoát nước dọc mình viết nhỉ?? nếu bạn sử dụng tiện ích đó thì có lệnh để đặt tên thứ tự cho hố ga rồi mà

    • Like 1

  15. 2 giờ trước, TASHI đã nói:

    mình có 1 lisp nó xuất được toạ độ của chữ text nhưng nó ra toạ độ có sau dấu phẩy có 2 số, mình xin các pro sửa giúp mình toạ độ lấy sau dấy phẩy 3 số

    58881_text_cad_sang_excel_ttx.lsp

    sửa lại cho bạn

    (defun c:ttx  (/ ss ss1 y xlApp xlCells row col i iPt)
      (vl-load-com)
      (if (setq ss (ssget '((0 . "*TEXT"))))
        (progn
          (setq xlApp   (vlax-get-or-create-object "Excel.Application")
                xlCells (vlax-get-property
                          (vlax-get-property
                            (vlax-get-property
                              (vlax-invoke-method
                                (vlax-get-property xlApp "Workbooks")
                                "Add") "Sheets") "Item" 1) "Cells") row 0 col 1)
          (vla-put-visible xlApp :vlax-true)
          
          (setq ss (mapcar '(lambda (x) (list (vlax-get (vlax-ename->vla-object x) 'InsertionPoint)
    					  (vlax-ename->vla-object x)))		  
    		       (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))	   
          (while ss
    	(setq  ss (vl-sort ss '(lambda (x y) (< (cadr (car x)) (cadr (car y)))))
    	       ss1 (vl-remove-if-not '(lambda (x) (equal (cadr (caar ss)) (cadr (car x)) 0.3)) ss)
    	       ss1 (vl-sort ss1 '(lambda (x y) (< (caar x) (caar y))))
    	       ss (vl-remove-if '(lambda (x) (member x ss1)) ss)
    	)
    	(foreach z ss1
              (setq iPt (car z)
    		y (list (vla-get-TextString (last z))  (rtos (car iPt) 2 3)  (rtos (cadr iPt) 2 3) (rtos (caddr iPt) 2 3))
    	  ) 
              (if (> row 65536) (setq col 5))
              (setq i -1 row (1+ row))
              (mapcar '(lambda (x) (vlax-put-property xlCells "Item" row  (+ col (setq i (1+ i))) x)) y)
    	)
          )
        )
      )
      (mapcar 'vlax-release-object (list xlApp xlCells))
      (princ)
    )

     

    • Like 2

  16. 9 phút trước, minhmani đã nói:

    Chào mọi người, mong mn viết giúp mình 1 lisp với yêu cầu như sau:

    - Dùng lệnh "spy"

      Giả sử mình gọi A là khoảng cách theo phương đứng giữa 2 đường polyline   (Trong đó có 1 đường Polyline đã có Text cao độ chuẩn)

    - Chọn tỉ lệ đứng 1/X  (nếu X=1000 thì A=Chiều dài đường dim; nếu X=100 thì A= (Chiều dài đường dim) / 10; nếu X=200 thì A= (Chiều dài đường dim) / 5 .............)

      Coi như mình chọn X=100  (tức tỉ lệ đứng là 1/100   --> Vậy A= (Chiều dài đường dim) / 10  )

    - Chọn vị trí làm mốc (Trên đường Polyline có cao độ chuẩn)

    - Chọn Text cao độ ứng với vị trí mốc

     

    --> Sau đó phần mềm sẽ hỏi:  "Bạn muốn sửa Text (1)  hay muốn sửa chênh cao (2)

     

    *Trường hợp 1: Nếu chọn sửa theo Text (1)

    - Chọn đường Polyline có cao độ chuẩn

    - Quét những Text có cao độ chuẩn  (cái này nếu các bác thấy không cần thiết có thể bỏ đi)

    - Chọn đường Polyline đang có cao độ Text bị sai

    - Quét những Text cần sửa

    --> Kết quả là các Text ghi sai cao độ đã được sửa thành cao độ chuẩn.

     

    *Trường hợp 2: Nếu chọn sửa chênh cao (2)

    - Chọn đường Polyline có cao độ chuẩn

    - Quét những Text có cao độ chuẩn  (cái này nếu các bác thấy không cần thiết có thể bỏ đi)

    - Chọn đường Polyline đang có cao độ Text bị sai

    - Quét các Text cần sửa chênh cao     ( A= (Chiều dài đường dim) / 10 )

    --> Kết quả là các Text ghi sai chênh cao đã được sửa thành chênh cao chuẩn

     

    Cám ơn mọi người trước :D

    TD mau.dwg

    Theo mình là chạy luôn 1 thể xóa luôn cao độ và chênh cao cũ đi điền vào cao độ và chênh cao mới luôn cho nó nhanh chứ hỏi chi trường hợp 1 với trường hợp 2 nữa

    ib nếu mời coffe

×