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

Hỏi về lisp tạo biến cho dim VD.lsp

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

328143e7da98310731f1e10d3aabd9c9_39735373.measurement.jpg

 

Các bác có ai biết viết đoạn lisp để hỏi nhập giá trị này không ạ.( phần đánh dấu đỏ )

Em đang muốn nhập đoạn này vào thêm trong lisp VD.lsp

 

;;; DAT BIEN CHO DIM
(DEFUN C:VD ()
(setq OVSC (getreal "\nty le dim la bao nhieu %? ... "))
(setq namedim (getstring "\nDat ten dim nhe  "))
(COMMAND "INSERT" "DIM=dim" ^c)
(COMMAND "-LAYER" "SET" "K.DIM(5)" "")
(command "-style" "K.VNtime" "VNTime.shx,VNS.SHX" "0" "0.75" "0" "N" "N" "N")
(COMMAND "MIRRTEXT" "0")   ;;;KHONG MIRROR TEXT
(COMMAND "DIMUNIT" "2")	;;;TEXT DANG DECIMAL
(COMMAND "DIMADEC" "0")	;;;DAT SO CHU THAP PHAN TEXTDIM
(COMMAND "DIMASZ" "1")	;;;KTHUOC ARROWHEADER
(COMMAND "DIMCLRT" "2")	;;;DAT MAU CHO TEXTDIM
(COMMAND "DIMDEC" "0") 	;;;DAT KIEU THAP PHAN CHO DIMTEXT
(COMMAND "DIMALTU" "2")	;;;KIEUDONVI TEXTDIM
(COMMAND "DIMDLE" "1")	;;DATPHAN DIMLINE NHO KHOI DG EXTEND
(COMMAND "DIMDLI" "8") 	;;;DAT KHOANG CACH GIUA CAC DUONG DIM  
(COMMAND "DIMEXE" "2") 	;;;DATPHAN DG EXTEND NHO KHOI DG DIMLINE
(COMMAND "DIMEXO" "0") 	;;;DAT KHCACH CHAN DG GIONG VA VAT THE
(COMMAND "DIMFIT" "5") 	;;;DATFIT
;;0 Text and Arrows
;;1 Text Only
;;2 Arrows Only
;;3 Best Fit
;;4 Leader
;;5 No Leader
(COMMAND "DIMTIH" "OFF")	;;;GIONG TEXT trong dg dim THEO DG DIMLINE
(COMMAND "DIMTOH" "OFF")	;;;GIONG TEXT trong dg dim THEO DG DIMLINE
(COMMAND "DIMTAD" "1")  	;;;TEXTDIM PHIA TREN DIMLINE
(COMMAND "DIMTOFL" "ON")	;;;CO DIMLINE NGAY CA KHI TEXT OUTSIDE
(COMMAND "DIMTXSTY" "K.VNtime")  ;;;style dimtext
(COMMAND "DIMTXT" "2.5")	;;;chieucao textdim
(COMMAND "DIMASZ" "1")   ;;;scale for arrowhead
(COMMAND "DIMTVP" "1")  	;;;khcach textdim phia tren hoac duoi dimline
(COMMAND "DIMGAP" "1")  	;;;khcach dim phia tren hoac duoi dimline
(COMMAND "DIMSAH" "ON") 	;;;dung blockarrow default hoac defined
(COMMAND "DIMBLK" "DIM")   ;;;kieu arrow
(COMMAND "DIMBLK1" "DIM")   ;;;kieu arrow dau
(COMMAND "DIMBLK2" "DIM")   ;;;kieu arrow cuoi
(COMMAND "DIMSD1" "OFF")   ;;;CO DIMLINEDAU
(COMMAND "DIMSE1" "OFF")   ;;;CO EXTENDED LINE DAU
(COMMAND "DIMCLRD" "5")   ;;;DATMAUDIMLINE
(COMMAND "DIMCLRE" "5")   ;;;DATMAUEXTENDLINE
(COMMAND "DIMRND" "0")	;;;LAM TRON DIMTEXT
(COMMAND "DIMcen" "-3")   ;;;ve center line for dimcen
(COMMAND "DIMSCALE" OVSC)   ;;;OVERSCALE FOR DIM
(COMMAND "DIMSTYLE" "s" namedim)   ;;SAVE TEN KIEU DIM
(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

Các bác có ai biết viết đoạn lisp để hỏi nhập giá trị này không ạ.( phần đánh dấu đỏ )

...

Biến hệ thống của nó là "dimlfac". Bạn nhập giá trị, ví dụ 1.23. Sau đó thêm dòng code: (setvar "dimlfac" 1.23).

(setq OVSC (getreal "\nty le dim la bao nhieu %? ... "))

(setvar "dimlfac" OVSC)

Một góp ý nhỏ: thay vì dùng "command", bạn nên chuyển qua "setvar" như trên.

  • 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

Nên viết gọn lại là :

(mapcar
   'setvar
  	 (list "mirrtext" "dimunit" "dimadec" "dimlfac") ;List Vars

   	(list "0" "2" "0" 0.25) ;List Val
)

  • Vote tăng 2

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

Hoặc dùng Acet:

(acet-sysvar-set (list "mirrtext" "0" "dimunit" "2" "dimadec" "0" "dimlfac" 0.25))

Tuy nhiên chắc vì bạn muốn viết tường minh để dễ theo dõi, nên cũng không sao.

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

Mình viết thế này thì nó sẽ nhập cả scale dim (DIMSCALE) và chọn tỉ lệ dim đang vẽ (dimlfac)

Nhưng không hiểu sao nó lại hiển thị thêm 1 mục này nhỉ 29415cc35a47fbca0829bb99e7eb36a5_39737842.screenshot001.jpg

;;; DAT BIEN CHO DIM 
(DEFUN C:VD ()
(setq OVSC (getreal "\nTy le dim la bnhieu %? ... "))
(setq MS (getreal "\nTy le dang ve la bnhieu?TL 1/25 nhap 0.25 "))
(setq namedim (getstring "\nDat ten dim nhe  "))
(COMMAND "INSERT" "DIM=dim" ^c)
(COMMAND "-LAYER" "SET" "K.DIM(5)" "")
(command "-style" "K.VNtime" "VNTime.shx,VNS.SHX" "0" "0.75" "0" "N" "N" "N")
(COMMAND "MIRRTEXT" "0")   ;;;KHONG MIRROR TEXT
(COMMAND "DIMUNIT" "2")	;;;TEXT DANG DECIMAL
(COMMAND "DIMADEC" "0")	;;;DAT SO CHU THAP PHAN TEXTDIM
(COMMAND "DIMASZ" "1")	;;;KTHUOC ARROWHEADER
(COMMAND "DIMCLRT" "2")	;;;DAT MAU CHO TEXTDIM
(COMMAND "DIMDEC" "0") 	;;;DAT KIEU THAP PHAN CHO DIMTEXT
(COMMAND "DIMALTU" "2")	;;;KIEUDONVI TEXTDIM
(COMMAND "DIMDLE" "1")	;;DATPHAN DIMLINE NHO KHOI DG EXTEND
(COMMAND "DIMDLI" "8") 	;;;DAT KHOANG CACH GIUA CAC DUONG DIM  
(COMMAND "DIMEXE" "2") 	;;;DATPHAN DG EXTEND NHO KHOI DG DIMLINE
(COMMAND "DIMEXO" "0") 	;;;DAT KHCACH CHAN DG GIONG VA VAT THE
(COMMAND "DIMFIT" "5") 	;;;DATFIT
;;0 Text and Arrows
;;1 Text Only
;;2 Arrows Only
;;3 Best Fit
;;4 Leader
;;5 No Leader
(COMMAND "DIMTIH" "OFF")	;;;GIONG TEXT trong dg dim THEO DG DIMLINE
(COMMAND "DIMTOH" "OFF")	;;;GIONG TEXT trong dg dim THEO DG DIMLINE
(COMMAND "DIMTAD" "1")  	;;;TEXTDIM PHIA TREN DIMLINE
(COMMAND "DIMTOFL" "ON")	;;;CO DIMLINE NGAY CA KHI TEXT OUTSIDE
(COMMAND "DIMTXSTY" "K.VNtime")  ;;;style dimtext
(COMMAND "DIMTXT" "2.5")	;;;chieucao textdim
(COMMAND "DIMASZ" "1")   ;;;scale for arrowhead
(COMMAND "DIMTVP" "1")  	;;;khcach textdim phia tren hoac duoi dimline
(COMMAND "DIMGAP" "1")  	;;;khcach dim phia tren hoac duoi dimline
(COMMAND "DIMSAH" "ON") 	;;;dung blockarrow default hoac defined
(COMMAND "DIMBLK" "DIM")   ;;;kieu arrow
(COMMAND "DIMBLK1" "DIM")   ;;;kieu arrow dau
(COMMAND "DIMBLK2" "DIM")   ;;;kieu arrow cuoi
(COMMAND "DIMSD1" "OFF")   ;;;CO DIMLINEDAU
(COMMAND "DIMSE1" "OFF")   ;;;CO EXTENDED LINE DAU
(COMMAND "DIMCLRD" "5")   ;;;DATMAUDIMLINE
(COMMAND "DIMCLRE" "5")   ;;;DATMAUEXTENDLINE
(COMMAND "DIMRND" "0")	;;;LAM TRON DIMTEXT
(COMMAND "DIMcen" "-3")   ;;;ve center line for dimcen
(COMMAND "DIMSCALE" OVSC)   ;;;OVERSCALE FOR DIM
(COMMAND "DIMSTYLE" "s" namedim)   ;;SAVE TEN KIEU DIM
(setvar "dimlfac" MS)         	;;measurement scale/scale factor trong Primary Units.
(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

Mình không rành lắm về lisp , mình chỉ copy paste thôi, để kiểu comand ra cho dễ hiểu cung đc :D, còn mình muốn nhập giá trị scale factor đó , chứ không phải mặc định là 0.25 .

Thanks các bạn đã chia sẻ :X

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

Mình muốn tạo thêm đoạn lisp để nó nhập sẵn Always keep text between ext lines và tích chọn suppress arrows if they.... ( như hình vẽ ), thì làm thế nào . Mình thử thay số ở DIMFIT nhưng sao không được, các bạn giúp mình với nhé . thanks :X

b47e962aaa4cf34f4780a5476c5fafd6_39739951.screenshot002.jpg

 

;;; DAT BIEN CHO DIM
(DEFUN C:VD ()
(setq OVSC (getreal "\nTy le dim la bnhieu %? ... "))
(setq MS (getreal "\nTy le dang ve la bnhieu?TL 1/25 nhap 0.25 "))
(setq namedim (getstring "\nDat ten dim nhe  "))
(COMMAND "INSERT" "DIM=dim" ^c)
(COMMAND "-LAYER" "SET" "K.DIM(5)" "")
(command "-style" "K.VNtime" "VNTime.shx,VNS.SHX" "0" "0.75" "0" "N" "N" "N")
(COMMAND "MIRRTEXT" "0")   ;;;KHONG MIRROR TEXT
(COMMAND "DIMUNIT" "2")	;;;TEXT DANG DECIMAL
(COMMAND "DIMADEC" "0")	;;;DAT SO CHU THAP PHAN TEXTDIM
(COMMAND "DIMASZ" "1")	;;;KTHUOC ARROWHEADER
(COMMAND "DIMCLRT" "2")	;;;DAT MAU CHO TEXTDIM
(COMMAND "DIMDEC" "0") 	;;;DAT KIEU THAP PHAN CHO DIMTEXT
(COMMAND "DIMALTU" "2")	;;;KIEUDONVI TEXTDIM
(COMMAND "DIMDLE" "1")	;;DATPHAN DIMLINE NHO KHOI DG EXTEND
(COMMAND "DIMDLI" "8") 	;;;DAT KHOANG CACH GIUA CAC DUONG DIM  
(COMMAND "DIMEXE" "2") 	;;;DATPHAN DG EXTEND NHO KHOI DG DIMLINE
(COMMAND "DIMEXO" "0") 	;;;DAT KHCACH CHAN DG GIONG VA VAT THE
(COMMAND "DIMFIT" "5") 	;;;DATFIT
;;0 Text and Arrows
;;1 Arrows Only
;;2 Text Only
;;3 Best Fit
;;4 Leader
;;5 No Leader

(COMMAND "DIMTIH" "OFF")	;;;GIONG TEXT trong dg dim THEO DG DIMLINE
(COMMAND "DIMTOH" "OFF")	;;;GIONG TEXT trong dg dim THEO DG DIMLINE
(COMMAND "DIMTAD" "1")  	;;;TEXTDIM PHIA TREN DIMLINE
(COMMAND "DIMTOFL" "ON")	;;;CO DIMLINE NGAY CA KHI TEXT OUTSIDE
(COMMAND "DIMTXSTY" "K.VNtime")  ;;;style dimtext
(COMMAND "DIMTXT" "2.5")	;;;chieucao textdim
(COMMAND "DIMASZ" "1")   ;;;scale for arrowhead
(COMMAND "DIMTVP" "1")  	;;;khcach textdim phia tren hoac duoi dimline
(COMMAND "DIMGAP" "1")  	;;;khcach dim phia tren hoac duoi dimline
(COMMAND "DIMSAH" "ON") 	;;;dung blockarrow default hoac defined
(COMMAND "DIMBLK" "DIM")   ;;;kieu arrow
(COMMAND "DIMBLK1" "DIM")   ;;;kieu arrow dau
(COMMAND "DIMBLK2" "DIM")   ;;;kieu arrow cuoi
(COMMAND "DIMSD1" "OFF")   ;;;CO DIMLINEDAU
(COMMAND "DIMSE1" "OFF")   ;;;CO EXTENDED LINE DAU
(COMMAND "DIMCLRD" "5")   ;;;DATMAUDIMLINE
(COMMAND "DIMCLRE" "5")   ;;;DATMAUEXTENDLINE
(COMMAND "DIMRND" "0")	;;;LAM TRON DIMTEXT
(COMMAND "DIMcen" "-3")   ;;;ve center line for dimcen
(COMMAND "DIMSCALE" OVSC)   ;;;OVERSCALE FOR DIM
(COMMAND "DIMSTYLE" "s" namedim)   ;;SAVE TEN KIEU DIM
(setvar "dimlfac" MS)         	;;measurement scale/scale factor trong Primary Units.
(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

Bạn nên áp dụng cách làm : Tạo 1 dim theo ý bạn. Sau đó dùng lệnh -dimstyle -> Variables -> Chọn Dim / Đánh tên Dimstyle -> Đọc các giá trị kèm chú thích

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

Bạn nên áp dụng cách làm : Tạo 1 dim theo ý bạn. Sau đó dùng lệnh -dimstyle -> Variables -> Chọn Dim / Đánh tên Dimstyle -> Đọc các giá trị kèm chú thích

nó chỉ nhập số từ 0 đến 5 thôi bạn ạ. mình thử chèn thêm nhưng không được ? :-/

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

nó chỉ nhập số từ 0 đến 5 thôi bạn ạ. mình thử chèn thêm nhưng không được ? :-/

=> chả ăn nhập gì với cái câu mình nói trước đó mà bạn Quote lại cả ^^ Mình cố gắng lắm nhưng không hiểu ý bạn

=>

có ai biết giúp mình được không ạ! thanks! = Chịu

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

hì, m xin lỗi vì không hiểu nhiều về viết lisp lắm , là thế này

Đoạn này nhé

(COMMAND "DIMFIT" "5") ;;;DATFIT

;;0 Text and Arrows

;;1 Arrows Only

;;2 Text Only

;;3 Best Fit

;;4 Leader

;;5 No Leader

Đây là chỗ để thay đổi các mục chọn trong phần Fit options. mình thử thay số từ 0-5 ở đoạn (COMMAND "DIMFIT" "5") thì không thấy chọn được Always keep text between ext lines. Mình thử tạo thêm 1 giá trị là ;;6 Always keep text between ext lines ,và thay là (COMMAND "DIMFIT" "6"), nhưng không được

b47e962aaa4cf34f4780a5476c5fafd6_39739951.screenshot002.jpg

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

Mình đã nói cụ thể ở trên rồi, bạn không chịu đọc mà cứ theo quan điểm của bạn đó thôi :)

Thực chất 2 cái bạn cần không liên quan đến biến DIMFIT, mà là DIMTIX và DIMSOXD.

Bạn xem lại bài #8 1 lần nữa nhé.

Ngoài ra nếu k thích xem toàn DImstyle thì bạn vẽ 1 dim ra, chọn nó và nhấn Ctrl + 1, lần lượt tích vào các thuộc tính bạn muốn và xem tên biến tương ứng ở dưới cùng của bảng Properties

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

:">, thế mà bạn không bảo mình luôn là 2 biến này ,hehe, mình làm được rồi , cám ơn bạn nhiều nhé.Sorry vì làm phiền nhiều quá ,mình không biết các biến này lắm, nên không biết hỏi như thế nào cho hợp lý. :|

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

:">, thế mà bạn không bảo mình luôn là 2 biến này ,hehe, mình làm được rồi , cám ơn bạn nhiều nhé.Sorry vì làm phiền nhiều quá ,mình không biết các biến này lắm, nên không biết hỏi như thế nào cho hợp lý. :|

Ngoài ra còn nhiều biến nữa, bạn làm theo 1 trong 2 cách mình đã reply. Tại sao không nói luôn, vì chẳng may ngày mai bạn lại thấy cần thay đổi 1 biến nào đó trong họ Dim, bạn lại post bài lên hỏi và chờ đợi, thế có phải thiệt không, trong khi mình tìm thấy được.

Đây là demo dùng cách 1 :

DIMADEC 	0                	Angular decimal places
DIMALT  	Off              	Alternate units selected
DIMALTD 	2                	Alternate unit decimal places
DIMALTF 	25.4000          	Alternate unit scale factor
DIMALTRND   0.0000       		Alternate units rounding value
DIMALTTD	2                	Alternate tolerance decimal places
DIMALTTZ	0                	Alternate tolerance zero suppression
DIMALTU 	2                	Alternate units
DIMALTZ 	0                	Alternate unit zero suppression
DIMAPOST                 		Prefix and suffix for alternate text
DIMARCSYM   0                	Arc length symbol
DIMASZ  	0.1800       		Arrow size
DIMATFIT	3                	Arrow and text fit
DIMAUNIT	0                	Angular unit format
DIMAZIN 	0                	Angular zero supression
DIMBLK  	ClosedFilled 		Arrow block name
DIMBLK1 	ClosedFilled 		First arrow block name
DIMBLK2 	ClosedFilled 		Second arrow block name
DIMCEN  	0.0900       		Center mark size
DIMCLRD 	BYBLOCK          	Dimension line and leader color
DIMCLRE 	BYBLOCK          	Extension line color
DIMCLRT 	BYBLOCK          	Dimension text color
DIMDEC  	4                	Decimal places
DIMDLE  	0.0000       		Dimension line extension
DIMDLI  	0.3800       		Dimension line spacing
DIMDSEP 	.                	Decimal separator
DIMEXE  	0.1800       		Extension above dimension line
DIMEXO  	0.0625       		Extension line origin offset
DIMFRAC 	0                	Fraction format
DIMFXL  	1.0000       		Fixed Extension Line
DIMFXLON	Off              	Enable Fixed Extension Line
DIMGAP  	0.0900       		Gap from dimension line to text
DIMJOGANG   45           		Radius dimension jog angle
DIMJUST 	0                	Justification of text on dimension line
DIMLDRBLK   ClosedFilled 		Leader block name
DIMLFAC 	1.0000       		Linear unit scale factor
DIMLIM  	Off              	Generate dimension limits
DIMLTEX1	BYBLOCK          	Linetype extension line 1
DIMLTEX2	BYBLOCK          	Linetype extension line 2
DIMLTYPE	BYBLOCK          	Dimension linetype
DIMLUNIT	2                	Linear unit format
DIMLWD  	-2           		Dimension line and leader lineweight
DIMLWE  	-2           		Extension line lineweight
DIMPOST                      	Prefix and suffix for dimension text
DIMRND  	0.0000       		Rounding value
DIMSAH  	Off              	Separate arrow blocks
DIMSCALE	1.0000       		Overall scale factor
DIMSD1  	Off              	Suppress the first dimension line
DIMSD2  	Off              	Suppress the second dimension line
DIMSE1  	Off              	Suppress the first extension line
DIMSE2  	Off              	Suppress the second extension line
DIMSOXD 	Off              	Suppress outside dimension lines
DIMTAD  	0                	Place text above the dimension line
DIMTDEC 	4                	Tolerance decimal places
DIMTFAC 	1.0000       		Tolerance text height scaling factor
DIMTFILL	0                	Text background enabled
DIMTFILLCLR BYBLOCK          	Text background color
DIMTIH  	On           		Text inside extensions is horizontal
DIMTIX  	Off              	Place text inside extensions
DIMTM   	0.0000       		Minus tolerance
DIMTMOVE	0                	Text movement
DIMTOFL 	Off              	Force line inside extension lines
DIMTOH  	On           		Text outside horizontal
DIMTOL  	Off              	Tolerance dimensioning
DIMTOLJ 	1                	Tolerance vertical justification
DIMTP   	0.0000       		Plus tolerance
DIMTSZ  	0.0000       		Tick size
DIMTVP  	0.0000       		Text vertical position
DIMTXSTY	Standard     		Text style
DIMTXT  	0.1800       		Text height
DIMTZIN 	0                	Tolerance zero suppression
DIMUPT  	Off              	User positioned text
DIMZIN  	0                	Zero suppression

Khá là rõ đúng k :), bạn cần biết thêm thằng nào thì nhảy vào Help xem tương ứng

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  

×