土木在线
资料
论坛
课程
AI规范
成套资料包
APP
下载手机客户端
产品
兑换商城
直播
软件
会议
土木君有礼!免费低价薅不停
工程师进阶必备,全套项目资料包来袭!
/
注册
登录
消息
动态
0
正在加载...
查看全部消息
消息设置
正在加载...
查看全部动态
消息设置
土木在线论坛
\
建筑设计
\
CAD下载及教程
\
求助:lisp定义命令
求助:lisp定义命令
:请教我用lsp文件做一个命令,按所选颜色来移动对象,我的意思是说在同一个图层里有多种颜色的情况下,请尽量用简单的程序,详细的说明,谢谢,还有能不能告诉我一个自学auto lisp 语言的网站,
发布于
2007-04-23 03:37:23
我来答
分享
复制链接
新浪微博
微信扫一扫
举报
全部回答
(2 )
shuibobo
auto cad 中加载的lisp程序怎么改小数点后的位数呢?
有一个标坐标值(x,y)的lisp程序,但是小数点后小数位数是4位,怎样改成2位呢?多谢指教。请直接把源代码写下来哦,并表明更改的位置。
(DEFUN WIDSET()
(INITGET 1 "Y N")
(SETQ IDSET1 (GETKWORD "\n是否标注编号? <Y or N>"))
(INITGET 1 "Y N")
(setq idset2 (getkword "\n是否标竖向?<Y or N>"))
(INITGET 1 "Y N")
(setq idset3 (getkword "\n是否固定标注线角度?<Y or N>"))
(INITGET 1 "Y N")
(setq bname (strcat "xy" idset1 idset2))
(setq b (getint "\n图纸比例?"))
(setq w (getreal "\n标注框的宽度<cm>?"))
(setq sca (/ (* w b ) 1000))
(if (= idset1 "Y")
(setq bh00 (getstring "\n第一交*点的编号"))
)
(PRINC)
)
(DEFUN C:WID()
(if (null sca)
(WIDSET)
(princ "\n欢迎使用道路坐标自动标注系统")
)
(setvar "cmdecho" 0)
(SETQ IDP(GETPOINT "\n选择标注点"))
(setq oooo (getvar "osmode"))
(setvar "osmode" 0)
(SETQ PPP(GETPOINT "\n选择标注位置"))
(setvar "osmode" oooo)
(if (= idset1 "Y")
(progn
(princ "\n 请输入交*点编号:<")
(princ bh00)
(princ ">")
(setq bh01 (getstring))
(IF (/= bh01 "")
(setq bh00 bh01)
)
)
(princ)
)
(SETQ A(*(/(ANGLE IDP PPP)PI)2))
(SETQ C(FIX A))
(SETQ ANG(*( (* 2 C)1)(/ pi 4.0)))
(if (= idset3 "N")
(setq dimp ppp)
(SETQ DIMP(POLAR IDP ANG(DISTANCE IDP PPP)))
)
(SETQ high (COND((= bname "xyNN")1.6)
( (= bname "xyYY")3.3)
( (= bname "xyNY")2.5)
( (= bname "xyYN")2.5)
)
)
(setq dimpx (car dimp))
(setq dimpy (cadr dimp))
(if (or (= c 3) (= c 0) )
(setq INSPx ( dimpx (* sca 5)))
(setq INSPx (- dimpx (* sca 5)))
)
(if (or (= c 0) (= c 1))
(setq INSPy ( dimpy (* sca high )))
(setq INSPy (- dimpy (* sca high)))
)
(setq INSP (LIST INSPx INSPy))
(SETQ M(CAR(TRANS IDP 1 0)))
(SETQ N(CADR(TRANS IDP 1 0)))
(SETQ X(RTOS M 2))
(SETQ Y(RTOS N 2))
(if (= idset2 "Y")
(setq z (getstring "\输入标高"))
(princ)
)
(COMMAND"LINE""none"IDP"none"DIMP"")
(cond ((= bname "xyNN")(COMMAND"INSERT" bname "none" INSP sca"""" Y X ))
((= bname "xyYN")(COMMAND"INSERT" bname "none" INSP sca"""" bh00 Y X ))
((= bname "xyNY")(COMMAND"INSERT" bname "none" INSP sca"""" Y X Z))
((= bname "xyYY")(COMMAND"INSERT" bname "none" INSP sca"""" bh00 Y X Z))
)
(if (= idset1 "Y")
(progn
(setq bhlen (strlen bh00))
(if (wcmatch bh00 "*##")
(setq bh00 (strcat (substr bh00 1 (- bhlen 2)) (itoa ( 1 (atoi (substr bh00 (- bhlen 1) ))))))
(setq bh00 (strcat (substr bh00 1 (- bhlen 1)) (chr( 1 (ascii(substr bh00 bhlen 1))))))
)
)
)
(setvar "cmdecho" 1)
(PRINC)
)
2007-09-06 12:53:06
来自 PC
评论
举报
anaywa
不知道符合你的要求不 ?
http://www.pianyiba.com/product/697654/
2007-04-24 09:20:24
来自 PC
评论
举报
相关推荐
luyu9635
这个家伙什么也没有留下。。。
主题
11
回复
15
粉丝
0
+ 关注
私信
CAD下载及教程
返回版块
52.08 万条内容 · 658 人订阅
猜你喜欢
遇到了一点小问题
内容不能包含下列词语
返回修改
回帖成功
经验值 +
10
全部回答(2 )
有一个标坐标值(x,y)的lisp程序,但是小数点后小数位数是4位,怎样改成2位呢?多谢指教。请直接把源代码写下来哦,并表明更改的位置。
(DEFUN WIDSET()
(INITGET 1 "Y N")
(SETQ IDSET1 (GETKWORD "\n是否标注编号? <Y or N>"))
(INITGET 1 "Y N")
(setq idset2 (getkword "\n是否标竖向?<Y or N>"))
(INITGET 1 "Y N")
(setq idset3 (getkword "\n是否固定标注线角度?<Y or N>"))
(INITGET 1 "Y N")
(setq bname (strcat "xy" idset1 idset2))
(setq b (getint "\n图纸比例?"))
(setq w (getreal "\n标注框的宽度<cm>?"))
(setq sca (/ (* w b ) 1000))
(if (= idset1 "Y")
(setq bh00 (getstring "\n第一交*点的编号"))
)
(PRINC)
)
(DEFUN C:WID()
(if (null sca)
(WIDSET)
(princ "\n欢迎使用道路坐标自动标注系统")
)
(setvar "cmdecho" 0)
(SETQ IDP(GETPOINT "\n选择标注点"))
(setq oooo (getvar "osmode"))
(setvar "osmode" 0)
(SETQ PPP(GETPOINT "\n选择标注位置"))
(setvar "osmode" oooo)
(if (= idset1 "Y")
(progn
(princ "\n 请输入交*点编号:<")
(princ bh00)
(princ ">")
(setq bh01 (getstring))
(IF (/= bh01 "")
(setq bh00 bh01)
)
)
(princ)
)
(SETQ A(*(/(ANGLE IDP PPP)PI)2))
(SETQ C(FIX A))
(SETQ ANG(*( (* 2 C)1)(/ pi 4.0)))
(if (= idset3 "N")
(setq dimp ppp)
(SETQ DIMP(POLAR IDP ANG(DISTANCE IDP PPP)))
)
(SETQ high (COND((= bname "xyNN")1.6)
( (= bname "xyYY")3.3)
( (= bname "xyNY")2.5)
( (= bname "xyYN")2.5)
)
)
(setq dimpx (car dimp))
(setq dimpy (cadr dimp))
(if (or (= c 3) (= c 0) )
(setq INSPx ( dimpx (* sca 5)))
(setq INSPx (- dimpx (* sca 5)))
)
(if (or (= c 0) (= c 1))
(setq INSPy ( dimpy (* sca high )))
(setq INSPy (- dimpy (* sca high)))
)
(setq INSP (LIST INSPx INSPy))
(SETQ M(CAR(TRANS IDP 1 0)))
(SETQ N(CADR(TRANS IDP 1 0)))
(SETQ X(RTOS M 2))
(SETQ Y(RTOS N 2))
(if (= idset2 "Y")
(setq z (getstring "\输入标高"))
(princ)
)
(COMMAND"LINE""none"IDP"none"DIMP"")
(cond ((= bname "xyNN")(COMMAND"INSERT" bname "none" INSP sca"""" Y X ))
((= bname "xyYN")(COMMAND"INSERT" bname "none" INSP sca"""" bh00 Y X ))
((= bname "xyNY")(COMMAND"INSERT" bname "none" INSP sca"""" Y X Z))
((= bname "xyYY")(COMMAND"INSERT" bname "none" INSP sca"""" bh00 Y X Z))
)
(if (= idset1 "Y")
(progn
(setq bhlen (strlen bh00))
(if (wcmatch bh00 "*##")
(setq bh00 (strcat (substr bh00 1 (- bhlen 2)) (itoa ( 1 (atoi (substr bh00 (- bhlen 1) ))))))
(setq bh00 (strcat (substr bh00 1 (- bhlen 1)) (chr( 1 (ascii(substr bh00 bhlen 1))))))
)
)
)
(setvar "cmdecho" 1)
(PRINC)
)
http://www.pianyiba.com/product/697654/