Chuyển đến nội dung
Diễn đàn CADViet
Đăng nhập để thực hiện theo  
HALUMGLASS@GMAIL.COM

Nhờ viết Lisp tạo Dim theo tỷ lệ khung bản vẽ

Các bài được khuyến nghị

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)
)

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
11 giờ trước, HALUMGLASS@GMAIL.COM đã nói:

Thanks huunhantvxdts rất nhiều

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

 

Tặng bạn cần câu cá, còn câu được con cá nào hay không thì tùy bạn sử dụng :) :)

+ Setvar thông số Dim.

 

;  *****Tab Lines
        (setvar "DIMCLRD" 8)                ; Mau sac duong giong ngang duoi Text
        (setvar "DIMLTYPE" "continuous")        ; Kieu LineStyle duong giong ngang duoi Text
        (setvar "DIMLWD" -2)                ; Lineweight duong giong ngang duoi text = Block
         (setvar "DIMDLE" 0)                ; Khoang cach keo dai duong giong ngang duoi Text =0
         (setvar "DIMDLI" 4)                ; Khoang cach giua cac Dim khi do Base Line-Spacing

         (setvar "DIMCLRE" 8)                ; Mau sac duong giong vuong goc
        (setvar "DIMLTEX1" "continuous")        ; Kieu LineStyle duong giong vuong goc 1
         (setvar "DIMLTEX2" "continuous")        ; Kieu LineStyle duong giong vuong goc 2
         (setvar "DIMEXE" 0.5)            ; Khoang cach keo dai duong thang vuot qua Dim
         (setvar "DIMEXO" 3.0)            ; Khoang cach tu chan Dim toi diem bat dau ve duong giong
        (setvar "DIMFXLON" 0)            ; Bat, tat che do "Fix length Extension line"
        (setvar "DIMFXL" 6)                ; Gia tri Fix cua "Fix length Extension line"

         (setvar "dimdec" 0)                ; Extend beyond Stick
     ;  *****Tab Symbol and Arrow
        (setvar "DIMASZ" 1.5)            ; Kich thuoc mui ten
        (setvar "DIMBLK1" "")            ; Kieu mui ten
        (setvar "DIMBLK2" "")
        ;(setvar "DIMLDRBLK" "")        
         (setvar "DIMARCSYM" 2)            ; Thiet lap dau ky hieu khi do chieu dai duong cong = None
     ;  *****Tab Text
          (if (= (tblsearch "STYLE" ".VnarialH") nil) (command  "-style" ".VnarialH"     ".VnarialH"     "" "1.0" "0" "n" "n"))
          (setvar "DIMTXSTY" ".VnarialH")        ; Thiet lap Dim Text Style
          (setvar "DIMCLRT" 3)                ; Thiet lau mau sac cho Text Green = 3
          (setvar "DIMTXT" 1.5)            ; Chieu cao Text
          (setvar "DIMTAD" 1)                ; Text Placement ___Vartical = Above
          (setvar "DIMJUST" 0)                ; Text Placement ___Horizontal = Center
          (setvar "DIMGAP" 0.6)            ; Khoang cach Text --> Duong giong ngang chan Dim
     ;  *****Tab Fit
          (setvar "DIMFIT" 5)                ; Fit = Always keep text betwen lines
          (setvar "DIMTMOVE" 2)                   ; Thiet lap dinh dang Text khi keo Text ra khoi vi tri mac dinh
          (setvar "DIMTOFL" 1)                ; Ve them duong line tu cung tron toi tam cung tron ( nhu la ban kinh )
     ;  *****Mot vai dieu khac
          (setvar "DIMTIX" 1)                ; Thiet lap Dim ban kinh Arc la Auto hay Pick tay.
          (setvar "DIMTOH" 0)                ; Not Know
          (setvar "DIMTIH" 0)                ; Not Know
 

 

  • Like 1
  • Vote tăng 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

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)

  • Vote giảm 1

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác
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

Chia sẻ bài đăng này


Liên kết tới bài đăng
Chia sẻ trên các trang web khác

Tạo một tài khoản hoặc đăng nhập để nhận xét

Bạn cần phải là một thành viên để lại một bình luận

Tạo tài khoản

Đăng ký một tài khoản mới trong cộng đồng của chúng tôi. Điều đó dễ mà.

Đăng ký tài khoản mới

Đăng nhập

Bạn có sẵn sàng để tạo một tài khoản ? Đăng nhập tại đây.

Đăng nhập ngay
Đăng nhập để thực hiện theo  

×