模具论坛

 找回密码
 注册

扫一扫,微信登录

QQ登录

只需一步,快速开始

搜索
热搜: 冲压 注塑 求助
    回车查看更多
    论坛可能已存在您要发布的主题帖 关闭
      查看: 18666|回复: 72

      [注意]大家有关LISP编程的问题我愿乐意解答。。。

      [复制链接]
      发表于 2006-1-17 20:27:00 | 显示全部楼层 |阅读模式
      如题,我对LISP略知一二,大家有什么需要帮忙的,发贴上来,我会的有应必答。

      本帖子中包含更多资源

      您需要 登录 才可以下载或查看,没有帐号?注册

      x
       楼主| 发表于 2006-1-18 14:05:00 | 显示全部楼层
      已修改过了,请见链接地址
      发表于 2006-1-24 21:30:00 | 显示全部楼层
      <P>哦,不错</P>
      <P>谢谢</P>
      <P>那你能写个焊接符号的lisp程序吗?</P>
      <P>其实我觉得同舟的就写的很好</P><br>只是编译过了,看不到源码
      [此贴子已经被作者于2006-1-24 21:31:59编辑过]

       楼主| 发表于 2006-1-25 09:03:00 | 显示全部楼层
      你说的焊接符号我是不太会用到,同舟的程序在哪儿,给个链接,我看一下操作过程和结果
      发表于 2006-2-6 21:27:00 | 显示全部楼层
      <P>这个论坛板块里就有</P>
      <P>呵呵</P>
      发表于 2006-2-17 00:10:00 | 显示全部楼层
      想问一下在lisp中用entsel功能时如何用object snap,许多书都没说是什么格式,只说可以做到,谢谢!!
      [此贴子已经被作者于2006-2-17 0:11:20编辑过]

      发表于 2006-2-17 12:40:00 | 显示全部楼层
      这个3d螺纹程序能做成任意牙形角吗?谢谢!<BR><BR>
       楼主| 发表于 2006-2-21 08:10:00 | 显示全部楼层
      <P>To 7楼,entsel用object snap这个我倒没有用到过,因为选择单个物体很少有人会和object snap组合去选择物体,这样做没什么意义,不知道你的本意是怎么样?</P>
      <P>TO 8楼,这个程序我试了一下,可以做出3D的螺纹,应该是普通螺纹,至于你说的想改成任意牙形角,当然可以做到,需要的话可以帮你修改一下.</P>
      发表于 2006-2-21 18:58:00 | 显示全部楼层
      帮助中所说trim extend等功能所用的就是这种方法,我想做的是一个自动判断标注的小程序,判断是直线和圆用不同的标注方式,选择时如果是直线就自动捕捉端点或交点等,做为标注的第一点,其它方法应该也可以实现,但还想知道这个命令的具体用法
       楼主| 发表于 2006-2-22 16:24:00 | 显示全部楼层
      <DIV class=quote><B>以下是引用<I>l2ee</I>在2006-2-21 18:58:23的发言:</B><BR>帮助中所说trim extend等功能所用的就是这种方法,我想做的是一个自动判断标注的小程序,判断是直线和圆用不同的标注方式,选择时如果是直线就自动捕捉端点或交点等,做为标注的第一点,其它方法应该也可以实现,但还想知道这个命令的具体用法</DIV>
      <P>这个可以实现,比如直线和圆的相对应的DXF组码如下:<BR>圆的DXF组码<BR>选择对象: ((-1 . &lt;图元名: 7ef84d68&gt;) (0 . "CIRCLE") (330 . &lt;图元名: 7ef63cc0&gt;) <BR>(5 . "D55") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "CONTINUOUS") <BR>(100 . "AcDbCircle") (10 -111.664 -683.145 0.0) (40 . 9.89847) (210 0.0 0.0 <BR>1.0))<BR>直线的DXF组码<BR>选择对象: ((-1 . &lt;图元名: 7ef84d60&gt;) (0 . "LINE") (330 . &lt;图元名: 7ef63cc0&gt;) (5 <BR>. "D54") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "CONTINUOUS") (100 <BR>. "AcDbLine") (10 -134.756 -667.031 0.0) (11 -78.6741 -667.764 0.0) (210 0.0 <BR>0.0 1.0))<BR><BR>只要判断(0 . "CIRCLE") 或是(0 . "LINE") ,选择相应的标注方式。</P>
      发表于 2006-2-22 21:22:00 | 显示全部楼层
      <P>首先谢谢楼上,但这个方法我做到了,不过有点贪心,想做得跟一般的标注一样,以上的实现方法在标注前多点击了一下,只是想探讨一下,因为看到帮助中说可以才想到问一下.</P>
       楼主| 发表于 2006-2-23 09:56:00 | 显示全部楼层
      为什么会多点击了一下?????可否将你的程序贴上来我看看.
      发表于 2006-2-23 20:28:00 | 显示全部楼层
      我已经解决了,明天上传
      发表于 2006-2-24 12:41:00 | 显示全部楼层
      <P>正常的dimlinear只是选起、终点和放置点,如果不锁点要多一步选物体,再执行dimlinear,与习惯不太一样,现在做的也不象我想象的(不知道怎么上传,把程序直接贴上去了,锁点后的操作与我的样板设置有关)</P><P>(defun c:dd(/ lst1 lst pt pt1 pt2 sign)<br>&nbsp;&nbsp;(setvar "cmdecho" 0)<br>&nbsp;&nbsp;(setq lst1(entsel "\n 选择标注的起始点:"))<br>&nbsp;&nbsp;(setq pt(cadr lst1))<br>&nbsp;&nbsp;(setq sign(cdr(assoc 0 (entget (car lst1)))))<br>&nbsp;&nbsp;(setq lst2(entget (car lst1)))<br>&nbsp;&nbsp;(if (equal sign "LINE")<br>&nbsp;&nbsp;&nbsp;&nbsp;(progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq pt1(osnap(cadr lst1) "endp,midp,inte"))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq pt2(getpoint pt1 "\n选择第二点:"))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(command "dimlinear" pt1 pt2 pause)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst (entget(entlast)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst(subst(cons 8 "Text")(assoc 8 lst)lst))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst(subst(cons 1 "%%c&lt;&gt;")(assoc 1 lst)lst))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst(subst(cons 3 "ISO-25")(assoc 3 lst)lst))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(entmod lst)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;)<br>&nbsp;&nbsp;(if (equal sign "CIRCLE")<br>&nbsp;&nbsp;&nbsp;&nbsp;(progn<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq pt1(osnap(cadr lst1) "nea"))&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(command "dimdiameter" pt1 pause)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst (entget(entlast)))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst(subst(cons 8 "Text")(assoc 8 lst)lst))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(setq lst(subst(cons 3 "大孔标注")(assoc 3 lst)lst))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(entmod lst)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br>&nbsp;&nbsp;&nbsp;&nbsp;)<br>&nbsp;&nbsp;)</P>
      [此贴子已经被作者于2006-2-24 12:43:05编辑过]

       楼主| 发表于 2006-2-24 18:31:00 | 显示全部楼层
      <P>格式方面不太规范,我改了一下</P>
      <P>(defun c:dd (/ lst1 lst pt pt1 pt2 sign)<br>  (setvar "cmdecho" 0)<br>  (setq lst  (entsel "\n 选择标注的起始点:")<br>         ent  (car lst)<br>          pt   (cadr lst)<br>         data (entget ent)<br>       name (cdr (assoc 0 data))<br>  )<br>  (if (= name "LINE")<br>    (progn<br>      (setq pt1 (osnap pt "endp,midp,int"))<br>      (setq pt2 (getpoint pt1 "\n选择第二点:"))<br>      (command "dimlinear" "non" pt1 "non" pt2 pause)<br>      (setq lst (entget (entlast)))<br>      (setq lst (subst (cons 8 "Text") (assoc 8 lst) lst))<br>      (setq lst (subst (cons 1 "%%c&lt;&gt;") (assoc 1 lst) lst))<br>      (setq lst (subst (cons 3 "ISO-25") (assoc 3 lst) lst))<br>      (entmod lst)<br>    )<br>  )<br>  (if (= name "CIRCLE")<br>    (progn<br>      (setq pt1 (osnap pt "nea"))<br>      (command "dimdiameter" pt1 pause)<br>      (setq lst (entget (entlast)))<br>      (setq lst (subst (cons 8 "Text") (assoc 8 lst) lst))<br>      (setq lst (subst (cons 3 "大孔标注") (assoc 3 lst) lst))<br>      (entmod lst)<br>    )<br>  )<br>  (princ)<br>)<br></P>
      [此贴子已经被作者于2006-2-24 18:34:42编辑过]

      发表于 2006-2-24 19:02:00 | 显示全部楼层
      谢谢!清晰很多。
       楼主| 发表于 2006-2-24 19:58:00 | 显示全部楼层
      平时有什么问题可以发贴上来,大家可以讨论讨论
      发表于 2006-3-19 09:58:00 | 显示全部楼层
      <p>我是个初学者,想了解一下COMMAND 命令,能否将一些常用的,比如画圆弧,多边形等等的格式介绍给我?</p><p>谢谢!</p>
       楼主| 发表于 2006-3-19 21:37:00 | 显示全部楼层
      <p>其实程序中的command命令的格式与命令行执行的命令过程是一样,你只要参照命令行的提示一步步操作就行了。比如:</p><p>(command "line"<br/>&nbsp; (setq p0 (getpoint "\n选择直线的起点:"))<br/>&nbsp; (getpoint p0&nbsp; "\n选择第二点:")<br/>&nbsp; ""<br/>)&nbsp;</p>
      发表于 2006-4-2 16:05:00 | 显示全部楼层
      请问dcl的驱动程序怎么编?有嵌套的。
      您需要登录后才可以回帖 登录 | 注册

      本版积分规则

      关闭

      招聘信息 上一条 /5 下一条

      关闭

      求职信息 上一条 /5 下一条

      关闭

      技术求助 上一条 /5 下一条

      QQ|小黑屋|手机版|模具论坛 ( 浙ICP备15037217号 )

      GMT+8, 2025-7-5 14:07

      Powered by Discuz! X3.4

      © 2001-2013 Comsenz Inc.

      快速回复
      返回顶部
      返回列表
       
      客服电话:0577-61318188
      模具论坛交流群:
      模具论坛交流群
      工作时间:
      08:30-17:30