siiling16
发表于 2010-4-25 21:02:00
<p>樣式</p>
jiajun_16888
发表于 2010-5-1 12:52:00
<p>大家好 我这有一个非常好的LISP程序 可以自动改变直线,圆等的线形比例 但不能改变矩形及多段线的的 哪位大大修改一下</p><p> </p><p>(defun c:df () ;自動變換成適當比例的虛線<br/> (ltchange "dashed" 3 "bylayer")<br/> (princ)<br/>)</p><p>(defun ltchange (type1 scale color / oce lin n nam tab<br/> pt1 pt2 x1 x2 y1 y2 len leg sca<br/> otyp ocol osca col typ lts rad<br/> ) ;自動變換成適當比例的中心線<br/> (setq oce (getvar "cmdecho")<br/> lts (getvar "ltscale")<br/> ) ;_ end of setq<br/> (setvar "cmdecho" 0)<br/> (setq n 0)<br/> (print<br/> (strcat "Select object change to " type1 ":")<br/> ) ;_ end of print<br/> (setq lin (ssget '((-4 . "<OR")<br/> (0 . "LINE")<br/> (0 . "CIRCLE")<br/> (0 . "ELLIPSE")<br/> (0 . "ARC")<br/> (0 . "polyline")<br/> (-4 . "OR>")<br/> )<br/> ) ;_ end of ssget<br/> ) ;end setq<br/> (if (not lin)<br/> (progn</p><p> (alert "\nNo selection!")<br/> (exit)<br/> ) ;_ end of progn<br/> ) ;end if<br/> (repeat (sslength lin)<br/> (setq nam (ssname lin n))<br/> (setq tab (entget nam))<br/>;;;;;;;;;;circle<br/> (if (= (cdr (assoc 0 tab)) "CIRCLE")<br/> (progn<br/> (setq rad (cdr (assoc 40 tab)))<br/> (setq len (* 2 (* 3.14 rad)))<br/> ) ;如是圓實體取周長為"len"<br/>;;;;;;;;;;ARC<br/> (if (= (cdr (assoc 0 tab)) "ARC")<br/> (progn<br/> (setq rad (cdr (assoc 40 tab)))<br/> (setq len (* 3.14 rad))<br/> ) ;end progn;如是圓弧取其圓周長半 </p><p>;;;;;;;;;;ellipse<br/> (if (= (cdr (assoc 0 tab)) "ellipse")<br/> (progn<br/> (setq rad (cdr (assoc 40 tab)))<br/> (setq len (* 2 (* 3.14 rad)))<br/> )<br/>;;;;;;;;;LINE<br/> (progn<br/> (setq pt1 (cdr (assoc 10 tab))<br/> pt2 (cdr (assoc 11 tab))<br/> len (distance pt1 pt2)<br/> ) ;end setq<br/> ) ;end progn<br/> ) ;end if <br/> )<br/> );end if</p><p> (cond ((and (> len 0) (<= len 2))<br/> (setq leg 2)<br/> )<br/> ((and (> len 2) (<= len 5))<br/> (setq leg 6)<br/> )<br/> ((and (> len 5) (<= len 30))<br/> (setq leg 20)<br/> )<br/> ((and (> len 30) (<= len 50))<br/> (setq leg 40)<br/> )<br/> ((and (> len 50) (<= len 100))<br/> (setq leg 75)<br/> )<br/> ((> len 100)<br/> (setq leg 100)<br/> )<br/> ) ;end cond<br/> (setq sca (/ leg scale lts 2))</p><p> (command "-linetype" "l" type1 "acad.lin" "" "")<br/> (command "change" nam "" "p" "c" color "lt" type1 "s" SCA "") ;_ end of command<br/> ;_ end of command<br/> ;_ end of command<br/> (setq n (+ n 1))<br/> ) ;end repeat<br/> (setvar "cmdecho" oce)<br/> (princ)<br/>) ;_ end of defun<br/></p>
小饭
发表于 2010-5-29 16:33:00
<p>请帮个忙:</p>
<p> 在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> 单击“重置”命令按钮,之前输入的要统计的字符串跟统计完毕的字符串数量清零,以备再次统计其他的字符串数量。</p>
<p> </p>
<p>谢谢了!</p>
461045462
发表于 2010-10-13 07:31:00
<p>请教:<font style="BACKGROUND-COLOR: #ffffff" face="Verdana"><br/> 我写了编辑序号的步骤如下:<br/> (COMMAND "LAYER" "M" "序号" "c" "1" "" "")<br/> (if (not (setq k (getint "\n请输入当前序号 <1>: ")))<br/> (setq k 1)<br/> )<br/> (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
支持一下,能否做一个批量插入块,按文件名排序阵列到一张图内?