master_worse
-
Số lượng nội dung
168 -
Đã tham gia
-
Lần ghé thăm cuối
-
Ngày trúng
1
Bài đăng được đăng bởi master_worse
-
-
1----tôi có file bản vẽ, bình thường crosshair vẫn nằm ngang và thẳng đứng.nhưng khi tôi dùng lệnh ucs- mặc định world thì cả hình trục toạ độ và crosshair bị xoay nghiêng, dẫn đến
khi sửa text hoặc dùng hatch cũng bị nghiêng theo. làm thế nào để nó về bình thường nhỉ??????
2------ khi tôi insert 1 hình thì điểm insert quá xa, không ở ngay block nên phải zoom all mới tìm thấy nó đc.
chuyên gia nào biết chỉ giùm với.
Thanks!!!!!!!!!!!
Bạn thử lệnh DVIEW xem
------------------------------------------------------------------------------------------
Command: dview
Select objects or <use DVIEWBLOCK>:
*** Switching to the WCS ***
Enter option
[CAmera/TArget/Distance/POints/PAn/Zoom/TWist/CLip/Hide/Off/Undo]: tw
Specify view twist angle <20.00>: 0
Enter option
[CAmera/TArget/Distance/POints/PAn/Zoom/TWist/CLip/Hide/Off/Undo]:
*** Returning to the UCS ***
Regenerating model.
-----------------------------------------------------------------------------------------
Command: ucs
Current ucs name: *NO NAME*
Specify origin of UCS or [Face/NAmed/OBject/Previous/View/World/X/Y/Z/ZAxis]
<World>: w
-
Chết thật.Giờ em mới biết biến cục bộ mất đi thì không sử dụng như đối số đc nữa.Nó free rồi thì hết gọi luôn ^^.E sẽ nghiên cứu tiếp ạ ^^.Còn vấn đề với thằng thứ 2 nữa :|Cần phân biệt rõ đối số, biến toàn cục và biến cục bộ. Trên diễn đàn hình như có nói vấn đề này bạn tim xem nhé
(defun abc (doiso1 doiso2 doiso3 / bien-tutimhieutiepdinha ))
goi (abc doiso1 doiso2 doiso3)
P/S: Cứ từ từ - Không gấp được đâu
Bài thơ chưa biết đặt tên :(Cứ thủng thẳng từ từ
Đừng vội bước thật sâu
Nên đi từ căn bản
Bắt đầu từ đơn giản
Đến điều phức tạp hơn
Và phức tạp hơn nữa
Khi đó, em sẽ hiểu
Em đang đọc những gì?
Cuộc sống không chờ đợi
Thời gian lặng lẽ trôi
Hãy bước đi em nhé
Nghị lực và niềm tin
Đồng hành cùng sánh bước
Đà Nẵng, sáng ngày 27/8/2010
Tue_NV
- 1
-
Cái thứ nhất :(defun vcurvedim (vcurvescale / dstylename) .... (setq dstylename "ENGLISHVC") (command "dimstyle" "save" dstylename ) ;_ end of command ) ;_ end of defun
Hàm vcurvedim có một đối số vcurvescale.
Lúc dùng thì em dùng ntnày(defun dimstyle-vidu (/ dimstyle oldvars) (setq dimstyle (getvar "dimstyle")) (or (tblsearch "dimstyle" "vidu ") (progn (setq oldvars (mapcar 'getvar '("cmdecho" "textstyle"))) (setvar "cmdecho" 0) (or (tblsearch "STYLE" "vidu ") (command "-style" "vidu " "cour.ttf" "0.0" "0.8" "0" "No" "No")) (mapcar 'setvar '("cmdecho" "textstyle") oldvars) (setvar "dimaltd" 2) ;_alt precision (setvar "dimapost" "") ;_alt prefix and suffix (setvar "dimaltrnd" 0.0000) ;_alt roundoff (setvar "dimaltf" 25.4000) ;_alt scale factor (setvar "dimalttd" 2) ;_alt tol precision (setvar "dimalttz" 0) ;_alt tol zeroes (setvar "dimaltu" 2) ;_alt units (setvar "dimaltz" 0) ;_alt zeroes (setvar "dimalt" 0) ;_alternate units (on/off) (setvar "dimaunit" 0) ;_angle format (setvar "dimadec" 0) ;_angle precision (setvar "dimazin" 1) ;_angle zero supression (setvar "dimarcsym" 0) ;_arc len symbol (setvar "dimblk" ".") ;_arrow (setvar "dimblk1" ".") ;_arrow 1 (setvar "dimblk2" ".") ;_arrow 2 (setvar "dimasz" 0.1) ;_arrow size (setvar "dimcen" 0.0900) ;_center mark size (setvar "dimdsep" ".") ;_decimal separator (setvar "dimclrd" 1) ;_dim line color (setvar "dimdle" 0.0000) ;_dim line ext (setvar "dimtofl" 1) ;_dim line forced (on/off) (setvar "dimltype" "byblock") ;_dim line linetype (setvar "dimlwd" -2) ;_dim line lineweight (setvar "dimdli" 0.0000) ;_dim line spacing (setvar "dimltex1" "byblock") ;_ext line 1 linetype (setvar "dimltex2" "byblock") ;_ext line 2 linetype (setvar "dimclre" 1) ;_ext line color (setvar "dimexe" 0.0100) ;_ext line extension (setvar "dimlwe" -2) ;_ext line lineweight (setvar "dimexo" 0.0500) ;_ext line offset (setvar "dimatfit" 3) ;_fit: arrow and text (setvar "dimtmove" 2) ;_fit: text movement (setvar "dimfxlon" 0) ;_fixed ext line enabled (on/off) (setvar "dimfxl" 0.0100) ;_fixed ext line length (setvar "dimfrac" 0) ;_fraction format (setvar "dimjogang" (/ (* 90 pi) 180)) ;_large rad dim jog angle (setvar "dimldrblk" ".") ;_leader arrow (setvar "dimlfac" 100.0000) ;_length scale (setvar "dimlunit" 2) ;_length units (setvar "dimsd1" 0) ;_no dim line 1 (on/off) (setvar "dimsd2" 0) ;_no dim line 2 (on/off) (setvar "dimsoxd" 0) ;_no dim lines outside (on/off) (setvar "dimse1" 0) ;_no ext line 1 (on/off) (setvar "dimse2" 0) ;_no ext line 2 (on/off) (setvar "dimscale" 0.0000) ;_overall scale (setvar "dimdec" 1) ;_precision (setvar "dimrnd" 0.0000) ;_roundoff (setvar "dimsah" 1) ;_separate arrows (on/off) (setvar "dimtfillclr" 0) ;_text background color (setvar "dimtfill" 0) ;_text background enabled (setvar "dimclrt" 256) ;_text color (setvar "dimtxt" 0.05) ;_text height (setvar "dimtix" 1) ;_text inside (on/off) (setvar "dimtih" 0) ;_text inside align (on/off) (setvar "dimgap" 0.0500) ;_text offset (setvar "dimtoh" 0) ;_text outside align (on/off) (setvar "dimjust" 0) ;_text pos hor (setvar "dimtad" 0) ;_text pos vert (setvar "dimpost" "") ;_text prefix and suffix (setvar "dimtxsty" "vidu") ;_text style (setvar "dimtm" 0.0000) ;_tol dev lower (setvar "dimtp" 0.0000) ;_tol dev upper (setvar "dimtol" 0) ;_tol deviation (on/off) (setvar "dimlim" 0) ;_tol limits (on/off) (setvar "dimtolj" 1) ;_tol pos vert (setvar "dimtdec" 1) ;_tol precision (setvar "dimtfac" 1.0000) ;_tol text scale factor (setvar "dimtzin" 8) ;_tol zero suppression (setvar "dimzin" 8) ;_zero suppression (command ".-dimstyle" "Save" "vidu ") ) ;_ end progn ) ;_ end or (command ".-dimstyle" "Restore" dimstyle) ) ;_ end defun
- 1
-
Các bác cho e hỏi nhanh hàm trả từ số về string và hàm ghép 2 string với ^^.Chẳng là sau khi người dùng nhập tỉ lệ,em vừa muốn dùng số đấy để làm đối số cho hàm tạo dim với dimlfac = tile,vừa muốn tạo tên Dim là D-tile ^^hàm:
Converts a number into a string
(rtos number [mode [precision]])
The rtos function returns a string that is the representation of number according to the settings of mode, precision, and the system variables UNITMODE, DIMZIN, LUNITS, and LUPREC.
---------------------------------------------
Converts a string into a real number
(atof string)
----------------------------------------------
Converts a string that represents a real (floating-point) value into a real value
(distof string [mode])
The distof and rtos functions are complementary. If you pass distof a string created by rtos, distof is guaranteed to return a valid value, and vice versa (assuming the mode values are the same).
------------------------------------------------
Converts a string into an integer
(atoi string)
----------------------------------------------
Returns the conversion of an integer into a string
(itoa int)
---------------------------------------------------------------
Returns the conversion of a number into a real number
(float number)
---------------------------------------------------------------------
Returns a string that is the concatenation of multiple strings
(strcat [string[string]...])
- 1
-
Mình thử sửa lại cái code của 1 bác trên 4rôm để đc cái líp quay text mà no không chạy đc!! ai xem giup mình với(defun c:rot (/ txt newang newrad i)
(setq ss (ssget '((0 . "*text")))
newang (getreal "\nNhap goc quay: ")
newrad ((/ (* newang pi) 180))
i 0 )
(while (< i (sslength ss)).... );_ end while
);_ end defun
Sửa thành (/ (* newang pi) 180)
- 1
-
Sao bạn không dùng fi (FILTER) ?
Command: fi -> Select filter chọn Text Value nhập vào ô trống bên dưới *nguyễn văn* -> Add to list -> Apply -> chọn tất tần tật
----------------------------
Không biết đúng ý không
(defun c:muondatgithidat (/ ss) (setq ss (ssget "_X" (list '(0 . "*TEXT") (cons 1 (strcat "*" (getstring t "\Nhap chuoi can tim: ") "*"))))) (sssetfirst ss ss) (princ) )
- 1
-
(cụ thể là trong dòng ;1,;2 bên dưới ạ)(defun C:dvc (/ GOC1 dx dy temp-1 temp-2 GOC2 TRUC1 TRUC2 TRUC3 TRUC4 TAM temp3 temp4) (setq dtemp1 (polar GOC3 (dtr 90) 5)));;----------1 Lay diem keo chan dim
Dòng này dư một)
thay gì phài dùng hàm DTR tại sao không sử dụng trực tiếp đơn vị RADIAN trong các trường hợp 0.0 0.5pi pi 1.5pi ...
(setq dtemp1 (polar GOC3 (* 0.5 pi) 5))
Càng ngày càng bị sai sót trong cách diễn đạt4 ngày post hơn 100 bài thì sai sót cũng bình thường
"Làm nhiều sai nhiều làm ít thì sai ít" :(
- 1
-
Ấy chết em quên,bên trên có hàm định nghĩa dtr đổi góc ra độ rồi ạ .Không biết có chuẩn k nữa :((defun DTR (A) (* pi (/ A 180.0)))
Thấy trong Lisp có cái này:
Converts a value from one unit of measurement to another
(cvunit value from-unit to-unit)
Arguments
value
The numeric value or point list (2D or 3D point) to be converted.
from-unit
The unit that value is being converted from.
to-unit
The unit that value is being converted to.
The from-unit and to-unit arguments can name any unit type found in the acad.unt file.
Return Values
The converted value, if successful; otherwise nil, if either unit name is unknown (not found in the acad.unt file),
or if the two units are incompatible (for example, trying to convert grams into years).
----------------------
Sao không sử dụng?
Command: (cvunit 180 "degree" "radian")
3.14159
Lưu lại rồi load,gõ lệnh abc thì máy báo không có hàm loadline.E phải hì hục copy cả code phần (defun loadline(...)...) vào dòng command thì lúc ấy máy mới hiểu.Lỗi này là do cad e lỗi hay e dùng bị lỗi ạ ? Vì e vẫn đinh ninh 1 hàm nếu định nghĩa trong code lsp thì các hàm cú pháp chính trong file đó thoải mái dùng ?Dùng thoải mái luôn, nhưng phải đúng cú pháp, các hàm trong lisp phải đặt trong ()
(loadline ...) chứ không phải loadline(...)
(dtr A) chứ có phải dtr (A) đâu
- 1
-
các bạn cho mình hỏi có lisp nào chọn các text hoặc mtext có chung các ký tự ko?bạn thử cái này xem:
(setq ss (ssget "_X" (list '(0 . "*TEXT") (cons 1 (strcat "*" (getstring t "\Nhap chuoi can tim: ") "*")))))
- 2
-
Chào bạn Bachngoctung,Thực ra mình cũng chưa hiểu vì sao có lỗi này. Bởi vì khi mình chạy thử trên file bạn gửi thì không thấy có vấn đề như vậy. Bây giờ chạy lại thì lại bì dính đòn.
Để giải quyết cái lỗi này mình thử thay thế các giá trị 0.01 trong lisp thành 0.02 thì nó lại chạy bon bon. Có nghĩa là theo mình hiểu thì lỗi là do các biến hệ thống trên máy của bạn. Cụ thể là biến gì thì mình chưa rõ nhưng cái biến đó nó làm cho việc chọn đối tượng theo các cửa sổ bị sai trật với cái mình muốn do sai số lựa chọn điểm bạn ạ. Khi tăng cái khoảng sai lệch này lên thì nó không chọn nhầm nữa. Chỉ đơn giản là vậy.
Nếu bạn kiểm tra vẫn thấy nó bị xóa đi các cọc chọn thì bạn hãy tăng giá tri 0.02 thành 0.05 bạn nhé. Chúc bạn hài lòng....
Bác chỉnh lại biến hệ thống PICKBOX xem
------------
Sets the object selection target height, in pixels.
Note: When PICKBOX is set to 0, selection previewing of objects is not available.
-----------
và nên zoom ở một mức nào đó thôi (đủ để chọn được đối tượng) không nên zoom - All
- 1
-
Mình đã search trên diễn đàn rồi. chỉ có lisp ẩn hiện 1 đối tượng 1 layer.chứ không lọc được tất cả các block có cùng tên thuộc 1 layer có các block khác nhau. Rât mong các bạn quan tâm viết giúp mình vì mình rấ gà về lispBạn sang đây: http://www.cadviet.com/forum/index.php?showtopic=279
lấy cái lisp ẩn hiện.
Command: Invis
Select object(s) to hide:
Select objects: 'fi
-> Add Selected Object < chon block -> xóa hết chỉ giữ lại Block Name -> Apply (chọn tất)
enter 2 lần
Xong
-
Khi vẽ Mình đã gặp phải một số khó khăn, muốn nhờ mọi người giúp đỡ.+ Khi thay đổi màu của Text (MT) mình vào Properties rồi thay đổi màu ở mục Color nhưng Text đó ngoài màn hình vẫn là màu cũ mặc dù xem ở thanh trang thái thì báo là màu mới.
Mình xin cảm ơn mọi người!
trả lời bên top
Lâu rồi mình không dùng Cad. Các bạn có thể cho mình hỏi:Mình chuyển màu của Text bằng Ctrl 1 nhưng không thấy Text đó chuyển sang màu mới. Mặc dù khi Click chuột vào Text đó thì xem trên thanh thuộc tính Layer thì thấy báo là màu mới, nhưng hiển thị trên màn hình thì vẫn là màu cũ!!!!!!!!!!!!!
Mình dùng Cad06.
Mình xin cảm ơn mọi người!
kia của bạn rồi
+ Mình muốn chỉnh sửa một Block ở hình vẽ hiện tại mà không làm ảnh hưởng tới các hình vẽ khác có Bock đó thì phải làm thế nào ạ? Vì khi mình sửa thì nó đồng loạt thay đổi ở các hình vẽ khác có sử dụng block đó. -
À,e xin ý kiến là bề rộng tường nếu getint thì với trường hợp vẽ có tỉ lệ khác 1:1 thì user hơi khổ ^^.Nếu có hàm nhỏ để user thay đổi tỉ lệ vẽ,khi nhận giá trị int thì chia cho tỉ lệ cũng được.Sử dụng hàm getreal là được rồi
-
Vậy thực sự không còn cách nào ưh? Bản vẽ mình thì nhiều mà đánh toàn chữ thường hết. Giờ trông bản vẽ nó kỳ kỳ làm sao ấy. Xin mọi người giúp đỡ giải quyết vụ này!Xin cảm ơn!
Sang đây: http://www.cadviet.com/forum/index.php?showtopic=22767
chuyển về UNI rồi dùng TCASE
-
Lâu rồi mình không dùng Cad. Các bạn có thể cho mình hỏi:Mình chuyển màu của Text bằng Ctrl 1 nhưng không thấy Text đó chuyển sang màu mới. Mặc dù khi Click chuột vào Text đó thì xem trên thanh thuộc tính Layer thì thấy báo là màu mới, nhưng hiển thị trên màn hình thì vẫn là màu cũ!!!!!!!!!!!!!
Mình dùng Cad06.
Mình xin cảm ơn mọi người!
Bạn qua đây xem thử
http://www.cadviet.com/forum/index.php?sho...amp;#entry76715
-
Ai có thể giúp mình 1 cái tut về sử dụng các hàm ssget, entmake, subst, entmod, while với.Vídu: Chọn 1 vùng rồi lọc text chẳng hạn, nhập chiều cao mới của text , dùng các hàm trên để sửa chiều cao của nó theo chiều cao vừa nhập.
Cách dùng các hàm trong líp này ra sao, có tác dụng gì.. Thank nhiều...
Vídu: (defun c:vidu (/ txt newhig i) (setq ss (ssget '((0 . "text")))) (setq newhig (getreal "\nNhap chieu cao chu: ")) (setq i 0) (while (< i (sslength ss)) (setq txt (ssname ss i)) (entmod (subst (cons 40 newhig) (assoc 40 (entget txt)) (entget txt))) (setq i (1+ i)) );_ end while );_ end defun
- 2
-
Cho mình hỏi cách gán đt ở dòng màu vàng có gì khác với ban đầu,bạn giải thích giùm mình với nhé :">do thói quen thôi.
------
sửa dòng này chắc là được
(command "-hatch" "P" "ansi31" "10" "0.0" "S" temp3 "" "")
chưa có máy test nhưng đủ dấu chắc lệnh hatch hết lỗi
- 1
-
Xin lỗi vì phải copy,để thoi dõi tiến trính nên hơi dài,mong mọi người thông cảm :(Mình đang tiếp tục,nhưng đến đây thì vướng luôn,loay hoay mãi chưa được
5 dòng code dưới bị lỗi mà mình chưua hiểu tại sao
Nếu đặt (setq temp3 (vl-cmdf....) thì nó dừng hẳn lại bắt mình pick chọn HCN vừa tạo để hatch.
Còn đặt như code bên dưới thì nhận được thông báo không hiểu biến "M" ?? Phải chăng phải tạo list lưu các đối tượng tp3,tp4 trước khi copy,chứ không gọi được trực tiếp?Mong mọi người giúp đỡ
....
Bạn sửa đoạn này
....
(setq temp3 (entlast));2
(vl-cmdf "hatch" "ansi31" "10" tp3 "");3
(setq temp4 (entlast));4
(vl-cmdf "_.copy" temp3 temp4 "" "m" TAM pause);5
...
thành
...
(setq copy_objs (ssadd))
(ssadd (setq temp3 (entlast)) copy_objs)
(command "-hatch" "P" "ansi31" "10" "0.0" "S" temp3 "")
(ssadd (entlast) copy_objs)
(vl-cmdf "_.copy" copy_objs "" "m" TAM pause);5
...
xem sao
- 1
-
mình đang dùng cad2007 quen rồi...đo kíck thước thường dùng tổ hợp phím Alt+n+l và muốn đo tiếp thì dùng Alt+n+c ...có thể đo liên tiếp nhiều kích thước..nhưng giờ up lên cad2010 thì tổ hợp phím đó ko còn nữa..vậy muốn đo 1 lúc nhiều kích thước liên tiếp trong cad10 thì dùng lệnh gì...lênh DAL chỉ đo được 1 lần..các Pro chỉ giúp nhé :undecided:...thanks allcad2010 vẫn sử dụng được mà.
mình tìm rồi..cũng có đấy nhưng chưa mò ra phím tắt...toàn kick chuột...Alt+A+Di )..dàiCommand: dli
DIMLINEAR
Specify first extension line origin or <select object>: *Cancel*
------------------------------------------------------------------------------------------
Command: dco
DIMCONTINUE
Specify a second extension line origin or [undo/Select] <Select>: *Cancel*
------------------------------------------------------------------------------------------
Command: dal
DIMALIGNED
Specify first extension line origin or <select object>: *Cancel*
------------------------------------------------------------------------------------------
Command: dra
DIMRADIUS
Select arc or circle: *Cancel*
------------------------------------------------------------------------------------------
Command: ddi
DIMDIAMETER
Select arc or circle: *Cancel*
- 1
-
1/- Bạn cài đặt sao đó mà nó có dòngCommand: undo Current settings: Auto = On, Control = All, Combine = Yes
Trên máy của mình xài CAD2004 chả thấy nó í ới gì với mấy thằng cu này cả. Có nhẽ mấy thằng cu này không khoái cái lisp của mình chăng???
Chì cần (setvar "cmdecho" 0) trước (command "undo" "BE" ) là sẽ
chả thấy nó í ới gì- 1
-
lệnh PU
trong Sử dụng AutoCAD
Xin hỏi bạn lệnh Express >Modify >Delete duplicate objects hoạt động trên file Lisp nào? Tại sao mục Express >Modify >Delete duplicate objects của mình lại không có?Nếu bạn biết lệnh trên hoạt động trên file Líp nào thì cho mình xin với nhé.
Thanks. :undecided:
Bác xem thử file overkill.lsp hay overkillsup.lsp xem
- 1
-
Cám ơn bạn phamthanhbinh đã chỉ giáomình viết code thế này có đúng không vậy bạn
(defun c:exbl () (setq ssb (ssget)) (setq n (sslength ssb)) (setq i 0) (while (< i n) (setq n (sslength ssb)) (setq ent (ssname ssb i)) (setq name (cadr (entget ent))) (if (equal name '(0 . "INSERT")) (progn (command "explode" ent) (setq ssc (ssget "p")) (setq n1 (sslength ssc)) (setq i1 0) (while (< i1 n1) (setq ent1 (ssname ssc i1)) (setq ssb (ssadd ent1 ssb)) (setq i1 (1+ i1)) ) ) ) (setq i (1+ i)) (setq n (sslength ssb)) ) )
Bạn thử cái này xem nhé:
(defun c:exbl ()
(setq ss (ssget '((0 . "INSERT"))))
(command ".explode" ss "")
(princ)
)
-
Anh Em trong CadViet gi úp m ình nh é !1-Trong AutoCad 2007, làm thế nào để mình tìm (Search) nhanh bất cứ một Từ giống như trong WinWord hay Excel được không?
Có lệnh nào không ? Vì trong một bản vẽ nhỏ thì chỉ Cross Window hoặc Pan chuột để tìm nhưng còn bản vẽ lớn cả trăm ngàn từ thì làm thế nào để mình "Tìm" nhanh được ?
Edit->Find or alt+E+F
-
thực ra mình cũng đã viết 1 lisp để làm công việc nhân nhiều số với 1 số, nhưng nó vẫn còn 1 số hạn chế :chưa áp dụng được cho số thực ( mình cũng đã chỉnh lại kiểu dữ liệu nhập vào là với số thực, nhưng chẳng hiểu sao lúc được lúc không, lúc lại cho ra KQ ko đúng)
nếu tích số nhận xong là số nguyên, nó không có ".0"
Bạn tìm hiểu các biến hệ thống sau: dimzin, luprec và lunits có thể giải quyết vấn đề này
Sắp xếp đỉnh polyline
trong AutoLisp
Đã đăng · Trả lời báo cáo
căn cứ vào hệ số "Bulge" -DXF groupcode 42- để xác định độ cong của *POLYLINE
nếu bạn đã xác định được các đỉnh thì việc xác định hệ số này cũng dễ thôi
sau khi có tọa độ các đỉnh và hệ số bulge sử dụng entmake để tạo lại *POLYLINE theo ý mình.
...