siiling16 发表于 2010-4-25 21:02:00

<p>樣式</p>

jiajun_16888 发表于 2010-5-1 12:52:00

<p>大家好&nbsp; 我这有一个非常好的LISP程序&nbsp; 可以自动改变直线,圆等的线形比例&nbsp;&nbsp; 但不能改变矩形及多段线的的&nbsp;&nbsp; 哪位大大修改一下</p><p>&nbsp;</p><p>(defun c:df ()&nbsp;&nbsp;&nbsp;&nbsp;;自動變換成適當比例的虛線<br/>&nbsp; (ltchange "dashed"&nbsp; 3 "bylayer")<br/>&nbsp; (princ)<br/>)</p><p>(defun ltchange&nbsp;(type1 scale color /&nbsp; oce&nbsp;&nbsp; lin&nbsp;&nbsp; n&nbsp;&nbsp;&nbsp; nam&nbsp; tab<br/>&nbsp;&nbsp; pt1&nbsp;&nbsp; pt2&nbsp;&nbsp; x1&nbsp;&nbsp;&nbsp; x2&nbsp; y1&nbsp;&nbsp;&nbsp; y2&nbsp;&nbsp;&nbsp; len&nbsp;&nbsp; leg&nbsp; sca<br/>&nbsp;&nbsp; otyp&nbsp; ocol&nbsp; osca&nbsp; col&nbsp; typ&nbsp;&nbsp; lts&nbsp;&nbsp; rad<br/>&nbsp;&nbsp;)&nbsp;&nbsp;&nbsp;;自動變換成適當比例的中心線<br/>&nbsp; (setq&nbsp;oce (getvar "cmdecho")<br/>&nbsp;lts (getvar "ltscale")<br/>&nbsp; ) ;_ end of setq<br/>&nbsp; (setvar "cmdecho" 0)<br/>&nbsp; (setq n 0)<br/>&nbsp; (print<br/>&nbsp;&nbsp;&nbsp; (strcat "Select object change to " type1 ":")<br/>&nbsp; ) ;_ end of print<br/>&nbsp; (setq&nbsp;lin (ssget '((-4 . "&lt;OR")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0 . "LINE")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0 . "CIRCLE")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0 . "ELLIPSE")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0 . "ARC")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0 . "polyline")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-4 . "OR&gt;")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp;&nbsp; ) ;_ end of ssget<br/>&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;end setq<br/>&nbsp; (if (not lin)<br/>&nbsp;&nbsp;&nbsp; (progn</p><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (alert "\nNo selection!")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (exit)<br/>&nbsp;&nbsp;&nbsp; ) ;_ end of progn<br/>&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;end if<br/>&nbsp; (repeat (sslength lin)<br/>&nbsp;&nbsp;&nbsp; (setq nam (ssname lin n))<br/>&nbsp;&nbsp;&nbsp; (setq tab (entget nam))<br/>;;;;;;;;;;circle<br/>&nbsp;&nbsp;&nbsp; (if&nbsp;(= (cdr (assoc 0 tab)) "CIRCLE")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;(setq rad (cdr (assoc 40 tab)))<br/>&nbsp;(setq len (* 2 (* 3.14 rad)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;如是圓實體取周長為"len"<br/>;;;;;;;;;;ARC<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (if (= (cdr (assoc 0 tab)) "ARC")<br/>&nbsp;(progn<br/>&nbsp;&nbsp; (setq rad (cdr (assoc 40 tab)))<br/>&nbsp;&nbsp; (setq len (* 3.14 rad))<br/>&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;;end progn;如是圓弧取其圓周長半 </p><p>;;;;;;;;;;ellipse<br/>&nbsp;&nbsp;&nbsp; (if&nbsp;(= (cdr (assoc 0 tab)) "ellipse")<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (progn<br/>&nbsp;(setq rad (cdr (assoc 40 tab)))<br/>&nbsp;(setq len (* 2 (* 3.14 rad)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>;;;;;;;;;LINE<br/>&nbsp;(progn<br/>&nbsp;&nbsp; (setq&nbsp;pt1 (cdr (assoc 10 tab))<br/>&nbsp;&nbsp;pt2 (cdr (assoc 11 tab))<br/>&nbsp;&nbsp;len (distance pt1 pt2)<br/>&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;;end setq<br/>&nbsp;)&nbsp;&nbsp;&nbsp;&nbsp;;end progn<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;end if&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp; )<br/>&nbsp;&nbsp; );end if</p><p>&nbsp;&nbsp;&nbsp; (cond ((and (&gt; len 0) (&lt;= len 2))<br/>&nbsp;&nbsp;&nbsp; (setq leg 2)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ((and (&gt; len 2) (&lt;= len 5))<br/>&nbsp;&nbsp;&nbsp; (setq leg 6)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ((and (&gt; len 5) (&lt;= len 30))<br/>&nbsp;&nbsp;&nbsp; (setq leg 20)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ((and (&gt; len 30) (&lt;= len 50))<br/>&nbsp;&nbsp;&nbsp; (setq leg 40)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ((and (&gt; len 50) (&lt;= len 100))<br/>&nbsp;&nbsp;&nbsp; (setq leg 75)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp; ((&gt; len 100)<br/>&nbsp;&nbsp;&nbsp; (setq leg 100)<br/>&nbsp;&nbsp; )<br/>&nbsp;&nbsp;&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;end cond<br/>&nbsp;&nbsp;&nbsp; (setq sca (/ leg scale lts 2))</p><p>&nbsp;&nbsp;&nbsp; (command "-linetype" "l" type1 "acad.lin" "" "")<br/>&nbsp;&nbsp;&nbsp; (command "change" nam "" "p" "c" color "lt"&nbsp;type1 "s" SCA "") ;_ end of command<br/>&nbsp;;_ end of command<br/>&nbsp;;_ end of command<br/>&nbsp;&nbsp;&nbsp; (setq n (+ n 1))<br/>&nbsp; )&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;end repeat<br/>&nbsp; (setvar "cmdecho" oce)<br/>&nbsp; (princ)<br/>) ;_ end of defun<br/></p>

小饭 发表于 2010-5-29 16:33:00

<p>请帮个忙:</p>
<p>&nbsp; 在VBA中,我想把一个实体设置成光源,用代码实现。</p>

zzc83 发表于 2010-5-30 10:15:00

很多好东西,学习了

hdlyt11 发表于 2010-5-30 19:42:00

<p>想请你写个程序,选择一个线段,移动线段的同时,线段旁边指定距离的文字随之拖动,请问可以吗?</p>

uiii1982 发表于 2010-6-18 16:03:00

新人报到,呵呵

arxfan 发表于 2010-6-28 13:54:00

<p><font face="Verdana">利用AutoCAD2006绘制若干管线,并建立有一简易的access数据库。想实现以下功能: </p>
<div>(1)点击某管线,就能弹出(显示出)其管道相关属性(管径,管材等);</div>
<div>(2)点击某管连接点,也能弹出其相关属性(阀门)</div>
<div>(3)可以对这些管道的长度或管材进行查询和统计。</div></font>

pearhome 发表于 2010-10-8 09:18:00

<p>请帮个忙,</p>
<p>在VBA中,想实现字符串统计功能。</p>
<p>具体细节:在输入要统计的字符串后,单击“统计”命令按钮,即显示要统计的字符串的数量。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单击“重置”命令按钮,之前输入的要统计的字符串跟统计完毕的字符串数量清零,以备再次统计其他的字符串数量。</p>
<p>&nbsp;</p>
<p>谢谢了!</p>

461045462 发表于 2010-10-13 07:31:00

<p>请教:<font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><br/>&nbsp; 我写了编辑序号的步骤如下:<br/>&nbsp; (COMMAND "LAYER" "M" "序号" "c" "1" "" "")<br/>&nbsp; (if (not (setq k (getint "\n请输入当前序号 &lt;1&gt;: ")))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (setq k 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; )<br/>&nbsp; (setq k (1+ k))</font></p>
<p><font style="BACKGROUND-COLOR: #ffffff" face="Verdana">在cad图形编辑物体连续序号时,由于数量多,常常中途要中断,怎样才能实现在中断后,继续操作时,<br/>序号能连接起来?<br/>例如:图上已经编辑了100个号,重新运行编辑时,能自动从101号接着编辑。<br/>求高手指教,要如何修改上面的语句?<br/>在此先谢了</font></p>

124350440 发表于 2010-10-13 08:57:00

支持一下,能否做一个批量插入块,按文件名排序阵列到一张图内?
页: 1 [2] 3
查看完整版本: 帮人写程序,欢迎大家提出要求!