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

Danh Cong

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

    1387
  • Đã tham gia

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

  • Ngày trúng

    117

Bài đăng được đăng bởi Danh Cong


  1. 1 giờ} trướ}c, khanh10 cho biết:

    BẠN CÓ THỂ NÓI Ý NGHĨA CỦA ĐOẠN NÀY KHÔNG: (strcat "canopy" (rtos (getvar 'date))  (itoa  (getvar 'millisecs)))! MÌNH MỚI TÌM HIỂU LISP NÊN GÀ LẮM! ^^

    Bạn có biết viết hoa là bất lịch sự không !

    Bạn muốn hiểu ý nghĩa thì hãy hiểu cách sử dụng từng câu lệnh: "Strcat", "rtos" "getvar", "itoa" là gì. Chứ giải thích mất thời gian lắm ! Khuyến khích tự tìm hiểu.


  2. Bác #VoHoan:        Thuật toán gì ở đây nhỉ: ^^:

    Ý tưởng sẽ nảy sinh như thế này: Trong chuỗi 123~456.. ---> Tìm xem ký tự "~" nằm ở vị trí nào trong chuỗi.   ---> Lọc ra các ký tự bên phải , bên trái của "~".   ----> Ghép lại là xong ^^.

    Nếu bác từng viết lisp rồi thì hiểu mà :) Nếu bác chưa viết bao giờ thì mọi người sẽ viết code cho @@

     


  3. + Trường hợp này của bạn thì sử dụng tính năng: Layer Filter Group có sẵn trong lệnh layer. Mình nhớ là đã có bài viết về vấn đề này rồi, nhưng không nhớ là của bác nào, cũng không tìm lại được. Nên đành lọ mọ trả lời bạn vậy.

    + Gõ lệnh "Layer" :

    B1: Tạo 1 nhóm layer mới

    B2 +3:: Phải chuột vào nhóm mới tạo: Add layer vào nhóm ( Chọn toàn bộ đối tượng trong bản vẽ trong không gian model của bạn).       

    B4. Click đúp chuột vào nhóm bạn tạo ra (để cad nhận nhóm group của bạn ) rồi tắt bảng layer đi. Trở lại màn hình model, nhấn chuột vào thanh công cụ menu layer đổ xuống sẽ có thứ bạn cần. Nói vậy chắc là bạn biết cách làm rồi. ^^

     

     

    Layer.png

    • Like 1

  4. Ặc, bạn làm thế là biến lợn lành thành lợn què rồi. 1 bản đồ / bình đồ... hoặc  cái khỉ gì liên quan đến tọa độ, thì hạn chế tất cả các thể loại Di chuyển (move) , xoay (rotate) , phóng to thu nhỏ (scale)-AL các kiểu. Không biết mà nghịch dại là hỏng luôn bản đồ.

    Vậy nên mới thấy tiện dụng của lệnh đổi trục UCS:

    B1: Vẽ 1 point vào  gốc tọa độ (0, 0, 0): 

    B2: Gõ ucs: Pick vào điểm point (0, 0 , 0), Chọn điểm thứ nhất xác định trục X( như hình của bạn thì hướng lên trời ). Chọn điểm thứ 2 hướng theo trục Y (hướng nằm ngang)


  5. ^^ Chết thật, cháu sai thứ tự. Do trên cad cháu kiểm tra với mỗi 1 hình nên không nhận ra. Cháu sửa có 2 lỗi. Vậy lỗi thứ 3 là lỗi nào nhỉ, bác #Ha gợi ý nốt giùm cháu với ạ. :)

    (setq tv (+ tv (* (getvar "PERIMETER") ae.tyle))))

    (setq tv (+ tv (* (getvar "AREA") ae.tyle ae.tyle)))

     

    • Like 1

  6. Code cho bạn:

    < Bài của bạn không có ai trả lời vì mọi người đã phải trả  lời rất nhiều bài viết tương tự như thế này rồi, vậy nên nếu có thời gian thì bạn học lisp 1 tí, không khó mà lại khá hay )

    (DEFUN C:AE 
      ( / ss la rv i tv op en)
      (or ae.tyle (setq ae.tyle 100))
      (setq ae.tyle (cond ((getreal (strcat "\nNhap ty le ban ve: 1/< " (rtos ae.tyle 2 0) " >:")))(ae.tyle)))
       (while (not ss) 
              (princ "\nPick object on the required layers") 
              (setq ss (ssget)))
           
        (initget "Length Area")
             (setq rv (getkword "\nWould you like to measure L/<A> : ")) 
          
       (and (not rv) 
            (setq rv "Area")) 
            
        (setq la (cdr (assoc 8 (entget (ssname ss 0)))) 
             i (sslength ss)
             tv 0 
             op 0) 
       (while (not (minusp (setq i (1- i)))) 
              (setq en (ssname ss i)) 
              (command "_.AREA" "_E" en) 
              (cond ((= rv "Length") 
                     (setq tv (+ tv (* (getvar "PERIMETER") ae.tyle ))))
             (T 
                     (setq tv (+ tv (* (getvar "AREA") ae.tyle ae.tyle))) 
                     (if (/= (logand (cdr (assoc 70 (entget en))) 1) 1) 
                         (setq op (1+ op)))))) 

       (princ (strcat "\nTotal " rv "  = " (rtos tv 2 3) 
                      " in " (itoa (sslength ss)) " polylines\n" 
                      (if (/= rv "Length") 
                          (strcat (itoa op) " with open polylines") ""))) 
    (SETVAR "CMDECHO" 0)
      (princ (strcat "\nGia tri " rv " tinh duoc : " (rtos tv)))
    (terpri)
       (setq s1 (entget (car (entsel "Chon Text ghi gia tri : "))))
       (setq otext (assoc 1 s1))
       (setq ot (cdr otext))
       (setq ot (read ot))
       (setq nt (cons 1 (strcat (rtos tv 2 2))))
       (entmod (subst nt otext s1))
    (command "luprec" "2")
    (setq s1 (ssget))
    (command"chprop" "p" "" "c" 6 "")
    (prin1))

    • Like 1

  7. + Bản vẽ tôi kiểm tra thấy... Bình thường. Vậy chắc trên máy bạn có vấn đề về font style.

    Thử kiểm tra font style trong Dimention là font gì: Chọn 1 dimension --> font style đang dùng là "dim".

    Kiểm tra font "dim" là cái gì: Gõ "ST" hoặc "STYLE" . Tìm vô font "dim" xem nó có bị lỗi gì không. Thấy chấm than thì thiếu font, lên mạng mà tải về cài. Cách cài thì tìm trên diễn đàn.


  8. + Yêu cầu chủ bài  bình luận gì thì viết vào "Trả lời chủ đề này...", nó nằm dưới bài viết.

    Chứ không phải vào thông tin cá nhân rồi điền vô mục"Báo cáo"... mệt chết người. Xóa đi xóa lại 4,5 lần rồi mà không nhận ra. :((((((.

    + Muốn người khác giúp thì đưa hẳn bản vẽ cad lên: Làm thầy bói thì không thể chữa bệnh được !

    + Kiểm tra font: Thì gõ lệnh "St". Xem cái font chữ đang dùng có bị lỗi không. Muốn biết chữ kích thước đang dùng font gì thì chọn 1 đường kích thước rồi ngó lên thông tin font chữ.

    • Like 1

  9. Tìm bài cho bạn, bạn nên tìm kiếm trên diễn đàn trước khi hỏi: http://www.cadviet.com/forum/topic/30513-không-cắt-được-đường-kích-thước/?do=findComment&comment=123514on

    + Viết bài với cỡ chữ bình thường, không cần "phóng to" chữ viết nếu bạn không muốn bị xóa bài viết hoặc xóa tài khoản diễn đàn.

×