autolisp中的画线命令8
发布网友
发布时间:2023-10-12 09:27
我来回答
共2个回答
热心网友
时间:2024-09-30 04:34
使用autolisp程序绘制图形,必须是写好正确的程序后,检查无误后加载成功后才可以运行,再根据cad的命令行的提示操作,才可以生产正确的图形。
你这个程序是画一个三角形,最后的(command “line” p1 p2 p3 “C”)意思是执行autocad的绘图命令:line,然后从P1到P2,P2到P3各画一条直线。最后的“C”意思是“close”,并不是楼上说的画圆的命令。
我给你修改一下你的程序清单吧,你再试试。
;this program will prompt you to enter three points
;of a triangle from the keyboard ,or select three points
;by using the screen cursor .P1,P2,P3 are triangle corners
(defun: C:triang1()
(setq p1(getPoint“\n Enter first Point of triangle:”))
(setq p2(getPoint“\n Enter second Point of triangle:”))
(setq p3(getPoint“\n Enter third Point of triangle:”))
(Command“line” p1 p2 p3“C”)
)
以上是我运行成功的程序。你一定输入正确,正确加载后,根据命令行的提示分别先后选取三个点后就可以生成三角形了。注意三角形的形成条件是:两边之和大于第三边,两边之和小于第三边的哦。不要乱选三个点。注意保存是一定要目录正确,还有lsp这个扩展名不能省略掉啊!!
祝你成功!
热心网友
时间:2024-09-30 04:34
getPoint是让你定点的意思,你没有定义P1 P2 P3 点的位置 所以打(command "line" p1 p2 p3 "c") 时连线连不出P1 P2 P3点 所以不行
例setq p1 (polar p0 (+ ang 0)d1)
(setq p2 (polar p1 (+ ang 0) d1)
(setq p3 (polar p2 (+ ang 0) d1)
(command "line" p1 p2 p3 "")
d1为长度定义
"line"命令是划线时只从 p1 到p2再到p3 "C"是圆的命令把他去掉应该就可以了
autolisp中的画线命令
使用autolisp程序绘制图形,必须是写好正确的程序后,检查无误后加载成功后才可以运行,再根据cad的命令行的提示操作,才可以生产正确的图形。你这个程序是画一个三角形,最后的(command “line” p1 p2 p3 “C”)意思是执行autocad的绘图命令:line,然后从P1到P2,P2到P3各画一条直线。最后的“C...
autolisp同一段代码,画线却时对时错
(setq #os1 (getvar "osmode"));;保存捕捉值(setvar "osmode" 0);;关闭捕捉(setvar "osmode" #os1);;还原捕捉设置;;;0 NON(无)1 END(端点)2 MID(中点)4 CEN(圆心)8 NOD(节点)16 QUA(象限点)32 INT(交点);;64 INS(插入点)128 PER(垂足)256 TAN(切点)512 NEA(...
autolisp程序问题
(defun c:tes ( / p1 p2) (if (setq p1 (getpoint "\n请选择绘制直线第一点")) (progn (while (setq p2 (getpoint p1 "\n请选择直线第二点")) (entmake (list '(0 . "LINE") (cons 10 p1) (cons 11 p2))) (setq p1 p2) ) ) ) (princ))
cad里用lisp写命令建图层画线
(if (null (tblsearch "layer" "图层名称")) (entmake (list'(0 . "LAYER")'(100 . "AcDbSymbolTableRecord")'(100 . "AcDbLayerTableRecord") '(6 . "Center") '(62 . 1) '(370 . 0) '(70 . 0) '(290 . 1) '(2 . "图层名称"))) ;6组码【线型】,...
编写一个AutoLISP程序,从p1到p2点画一条直线。直线p1p2与正x轴夹角为A...
(defun c:drl ( / cm os p1 p2 l a )(setq cm (getvar "cmdehco"))(setq os (getvar "osmode"))(setq p1 (getpoint "\n请选择基点:"))(setvar "cmdecho" 0)(setvar "osmode" 0)(setq l (getdist p1 "\n请输入长度: "))(setq a (getangle p1 "\n请输入角度: "))(...
编写一个AutoLISP程序,画出一条直线,并生成给定数目(N条)的与其平行的...
(setq int1 (getint "\n输入指定绘制数目:"))(if (= int1 nil) (setq int1 1))(setq y0 0)(repeat int1 (command ".line" (list 0 y0) (list 30 y0) "");绘制长度为30的直线 (princ "\nOK")(setq y0 (+ y0 10)));end repeat int1 (princ));end defun ——仅供参考。
autolisp语言编辑
(defun c:tes ( / ang k1 l n n1 n2 obj p1 p2);等分直线并绘制800长度的垂直直线 (vl-load-com) (initget 6) (if (and (setq n (getint "\n请输入等分数值")) (setq k1 (entsel "\n请选择直线")) (setq k1 (car k1)) (= (cdr (assoc 0 (entget k1))) "LINE")...
autolisp怎样编:画一条虚线?
首先要用指令调入虚线的线型,再把此虚线设为当前线型,再调用画线命令画出线,之后再把线型调回之前的线形
求autolisp 圆外一点画切线 并且修剪切线间的一段圆弧~
)(entmake (list '(0 . "LINE") (cons 8 &tc1) (cons 10 pt1) (cons 11 pt2)));绘制切线 );repeat );progn;2 );if;2 (entdel ent2) ;删除绘制的圆 (setvar "osmode" #os1));progn;1 );if;1 (prin1));复制到记事本,以【.lsp】为后缀命名,autolisp加载,命令【TES】
AutoCAD怎么画正弦线?
打开CAD,依次点击菜单“工具→AutoLISP→Visual LISP编辑器”,新建文件,输入以下代码:(defun C:drawsin (/ LeftPoint LeftPointX LeftPointY N x step)(initget 1) ;1化为8位二进制是00000001,位0置1表示禁止用户仅按 ENTER 键来响应输入请求 (setq LeftPoint (getpoint "\nLeft point:...