Đến nội dung


Hình ảnh

Nhờ các bác giúp đổi tên dimension style!


  • Please log in to reply
3 replies to this topic

#1 aries.1482

aries.1482

    Chưa sử dụng CAD

  • Members
  • Pip
  • 1 Bài viết
Điểm đánh giá: 0 (bình thường)

Đã gửi 20 June 2013 - 08:55 AM

Mình có một số bản vẽ cad, trong mỗi bản vẽ này đều sử dụng 1 dimension style có tên giống nhau (đều đặt tên là abc chẳng hạn cho tất cả các file) nhưng có thuộc tính "fit->overall scale" khác nhau. Do yêu cầu công việc, mình muốn gộp tất cả vào thành 1 file bằng cách mở 1 file số 1, sau đó mở file số 2, dùng Ctrl+C và Ctrl+V cop từ file 2 dán sang file 1, cứ như vậy cho n file. Nhưng xảy ra hiện tượng các kích thước bị nhảy thành tỉ lệ theo file số 1 (do tên của dimesion style giống nhau). Mình giải quyết bằng cách đổi tên hết các dimension style cho từng file thành các tên khác nhau rồi cop thì đc. Nhưng vấn đề là số lượng file lớn, nếu đổi theo cách thủ công như trên thì rất mất thời gian mà mình lại k rành về lisp hay VBA. AE xem có cách nào giải quyết giúp mình k?
Cám ơn mọi người quan tâm!

Cái này mình đã hỏi bên Meslab nhưng chưa có câu trả lời, hi vọng là các cao thủ giúp mình.


  • 0

#2 vbtxd06

vbtxd06

    biết vẽ ellipse

  • Members
  • PipPip
  • 53 Bài viết
Điểm đánh giá: 16 (tàm tạm)

Đã gửi 20 June 2013 - 09:16 AM

Mình có một số bản vẽ cad, trong mỗi bản vẽ này đều sử dụng 1 dimension style có tên giống nhau (đều đặt tên là abc chẳng hạn cho tất cả các file) nhưng có thuộc tính "fit->overall scale" khác nhau. Do yêu cầu công việc, mình muốn gộp tất cả vào thành 1 file bằng cách mở 1 file số 1, sau đó mở file số 2, dùng Ctrl+C và Ctrl+V cop từ file 2 dán sang file 1, cứ như vậy cho n file. Nhưng xảy ra hiện tượng các kích thước bị nhảy thành tỉ lệ theo file số 1 (do tên của dimesion style giống nhau). Mình giải quyết bằng cách đổi tên hết các dimension style cho từng file thành các tên khác nhau rồi cop thì đc. Nhưng vấn đề là số lượng file lớn, nếu đổi theo cách thủ công như trên thì rất mất thời gian mà mình lại k rành về lisp hay VBA. AE xem có cách nào giải quyết giúp mình k?
Cám ơn mọi người quan tâm!

Cái này mình đã hỏi bên Meslab nhưng chưa có câu trả lời, hi vọng là các cao thủ giúp mình.

Similar topics from web:
Bác nào biết cách thống nhất kích thước text trong layout mode [Lưu ...
[Kinh dị] Halloween 720p Complete Collection
Trình bày bản vẽ trong autocad? [Lưu Trữ]
Thiên Thiên Tân | Facebook
kích thước trong layout [Lưu Trữ]
Trang chủ
HỌC THẾ NÀO | Facebook
Tổng Hợp Lý Thuyết Auto Cad
Lập trình java nâng cao « Võ Văn Hải\s blog
Office VBA, mỗi ngày một ví dụ.... [Archive]
Camera hành trình, máy rửa xe mini,bơm điện 12V, phụ kiện
[dis] Câu lạc bộ Visual Foxpro Hấp dẫn nhất từ trước đến nay ...
Topic chuyên về xin truyện (bản gốc, bản convert) | Túy Nguyệt Lâu
Đề thi HSG Tiếng Anh 9 cấp Thành phố-Hà Nội 3-2012
Nhờ các anh chị trong forums viết hộ em lisp sau.

Chào bạn. Dưới đây là 1 số lệnh lisp về Dimension style mong có thể giúp ích được bạn. Mình không rành về lisp lắm, nếu không giúp được nhiều cho bạn mong các cao thủ cadviet giúp đỡ bạn tận tình.

;-------------------Make Dimension Style-----------------
(defun c:MDS (/ scl fcal scal );dmasz dexo dexo dtxt dgap dclre dclrt dsn ao ad obj)
(vl-load-com)
(if scl scl (setq scl "1:20"))
(if #TS #TS (setq TS ""))
(setq scl (USTR "" "Specify Scale factor of Drawing" scl nil))
(setq fcal (atof (substr scl 1 1)))
(setq scal (atof (substr scl 3 3)))
(setq tyle (/ scal fcal))
(setq #TS (USTR "" "Enter Name of text Style" #TS nil))
(setvar "DIMALTF" 25)
(setvar "DIMALTTZ" 13)
(setvar "DIMALTZ" 13)
(setvar "DIMASZ" 2.5) ;Arrow size
(setvar "DIMCEN" 2.5) ;Center Mark size
(setvar "DIMDLE" 1) ;extend beyond tick
(setvar "DIMTOFL" 1);Dim Tolarance
(setvar "DIMDLI" 7) ;Base line spacing
(setvar "DIMEXE" 1) ;extend beyond dim line
(setvar "DIMEXO" 1) ;offset from origin
(setvar "DIMTMOVE" 1) ;
(setvar "DIMDEC" 0) ;phan lay thap phan
(setvar "DIMCLRT" 2) ;color text
(setvar "DIMTXT" 2.5);Text height
(setvar "DIMLFAC" 1) ;Primary Unit scale factor
(setvar "DIMSCALE" tyle);Scale Overall
(setvar "DIMTIX" 1) ;
(setvar "DIMTIH" 0)
(setvar "DIMTSZ" 0) ;closed filled
(setvar "DIMBLK" "") ;closed filled
(setvar "DIMGAP" 1) ;offset from dim line
(setvar "DIMTOH" 0)
(setvar "DIMTAD" 1) ;
(setvar "DIMTXSTY" #TS);Dim text style
(setvar "DIMTDEC" 0)
(setvar "DIMTZIN" 13)
(setvar "DIMZIN" 13)
;------
(setq dsn (strcat "TL" (substr scl 3 3)))
(setq ao (vlax-get-acad-object))
(setq ad (vla-get-ActiveDocument ao))
(setq obj (vla-add(vla-get-dimstyles ad) dsn))
(vla-copyfrom Obj ad)
(vla-put-activedimstyle ad Obj)
(princ)
);end
(Defun C:MTS(/ Name font);---Make Text Style
 (PROMPT "\n Make a new Text Style !")
 (if Font Font(setq Font "Vni-Helve-Consende"))
 (Setq Name (getstring 5"\nEnter Name of Text Style:")
       Font (getstring 5"\nEnter Full Font Name Text Style<Arial,Vni-Helve-Condense,.VnAvantH...>"))
  (command "-Style" Name Font 0 1 0 "n" "n")
  (command "ZOOM" "a")
 (princ)
);The end
;=====================================================================================================
 ;;;==============================================================================================
;;;-----------Chuyen all cac Dimension ve Dimstyle hien hanh--------------
(defun DIM_ssget ( / ssl  nsset temp ed )
  (setq sset (ssget))
  (setq ssl (sslength sset)
        nsset (ssadd)
  )
  (print ssl)
  (princ "entities found. ") 
  (while (> ssl 0)
    (progn
      (setq temp (ssname sset (setq ssl (1- ssl))))
      (setq ed (entget temp))
      (if (= (DXF 0 ed) "DIMENSION") (ssadd temp nsset))
    )
  )
  (setq ssl (sslength nsset)
        sset nsset
  )
  (print ssl)
  (princ "DIMENSION entities found. ")
  (princ)
);defun DIM_ssget
(defun c:CDC() (command "DIM1" "UP"))
;------------------
(defun C:CDS()
(Princ "\nChuyen Dimstyle hien hanh !")
(Princ "\nChon dimension muon Dimstyle current...")
(command ".-dimstyle" "r" "" pause)nil
(Princ));

  • 0

#3 ketxu

ketxu

    Copier - Paster - Editor

  • Moderator
  • PipPipPipPipPipPipPip
  • 5678 Bài viết
Điểm đánh giá: 2605 (tuyệt vời)

Đã gửi 20 June 2013 - 11:40 AM

Bạn cho code sau vào contents load lisp, mỗi lần mở file ra thì tên Dim sẽ được đổi thành Tên dim cũ_Fit Overall

Lúc nào dùng xong thì unload đi nhé

 

((lambda(/ doc)
	(vl-load-com)
	(vlax-for dim (vla-get-Dimstyles
				  (setq doc
					(vla-get-ActiveDocument
					  (vlax-get-acad-object))))					 
    (vla-put-activeDimstyle doc dim)
    (vla-put-name dim (strcat (vla-get-name dim) "_" (vl-princ-to-string (getvar 'DIMSCALE))))    
	)
  (princ)
 ))

  • 0

Thành viên nhóm CadMagic.
Mời bạn ghé thăm facebook nhóm - Page viết lisp theo yêu cầu  :
CAD MAGIC


#4 Ce.truonghai

Ce.truonghai

    Edu level: li2

  • Members
  • PipPip
  • 28 Bài viết
Điểm đánh giá: 4 (bình thường)

Đã gửi 20 June 2013 - 02:16 PM

Không dùng lệnh Rename > Dimension Styles được ah bạn?


  • 0