找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: chenronglin

[原创]:一个局部放大程序

[复制链接]
发表于 2005-2-19 01:48:29 | 显示全部楼层
作何用之有呢,我是用不到的

点评

真不明白,你为什么就用到呢(你不理解我,我也不理解你)?  发表于 2013-5-23 13:36
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-21 20:15:04 | 显示全部楼层
可用多视口,为什么还要用放大程序。

点评

存在即合理,画大件时,在模型空间出图是有用的,假如布局出图,就用得着了  发表于 2013-5-23 13:37
存在即合理,画大件时,在模型空间出图是有用的,假如布局出图,就用不着了  发表于 2013-5-23 13:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-22 00:18:01 | 显示全部楼层
楼主,程序只把放大部分COPY出来,没有放大?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-22 08:53:22 | 显示全部楼层
正如1448所说,最好的方法是用视口,而不是COPY。
还有就是MECHANICAL是用图块和反应器,也挺好的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-2-22 10:10:58 | 显示全部楼层
我觉得以前用天正的时候,有个图形裁剪的命令,可以在大图中截出一部分来。
那个命令挺好啊。这个局部放大好像没什么用啊。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 54个

财富等级: 招财进宝

发表于 2008-8-9 03:20:27 | 显示全部楼层
同楼上,我也喜欢天正的那个功能,可是又不能为了这个小功能就安装一个天正,真郁闷……

点评

说得很在理.  发表于 2013-5-23 13:33
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-8-11 12:27:51 | 显示全部楼层
这个功能是用来画大样的吗?好像太麻烦了吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2008-9-9 14:35:29 | 显示全部楼层
好像看不懂啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 2026个

财富等级: 金玉满堂

发表于 2008-9-10 17:17:22 | 显示全部楼层
4楼的程序对画机械图的来说还是较实用。
发现一个不足之处是,当放大图的区域圆与圆弧线相交时,弧线未被修剪掉,不过并不影响本程序的使用。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 32个

财富等级: 招财进宝

发表于 2013-5-22 09:07:56 | 显示全部楼层
感觉好复杂        
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-5-22 14:41:35 | 显示全部楼层
写的好复杂,
貌似还用不了勒
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-5-23 13:24:11 | 显示全部楼层
aeo 发表于 2004-11-10 23:41
过点时间,我来写一个放大的(建筑,根据理正里的层和实体)
要处理的东西:
1.文字原来大小

既然aeo版主有兴趣,我贴出我写的代码,当时有感于小金鱼的要注册,所以自己写了一个,一直希望哪位高手完善一下,但没有人响应,悲哀呀!
  1. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;放大主程序 黄明儒
  2. ;;全局JBFD_GetScalStri放大倍数(字符),JBFD_BaseNumber标识(数字),JBFD_ZoomStri视口
  3. (defun C:FD (/                 BASESYMBOL BRKOBJLST  BRK_OBJ          CP             DCLID
  4.               DIMASSOC1         EN            ENT               ENTCICL          FDLAYER    FN
  5.               FNAME         GETZOOM    HOLDBLIPMO HOLDCMDECH IPLIST     LASTENT
  6.               LIN         LST1            LST2       MAXPARAM          MINPARAM   NEWBLOCK
  7.               NEWP         OBJ            OBJ2BREAK  P1          P1PARAM    P2
  8.               P2PARAM         PT            RETURN#    SCALREAL          SSBLOCKS   SSINCIRCLE
  9.               SSOBJ         SSOBJSALL  SS_BOLCK   TEXTHEIGH  X
  10.              )

  11.   ;;下面函数返回所有对象,包括打断后的对象
  12.   (defun ssCircle1 (ss              ent        /          BRKOBJLST BRK_OBJ   EN
  13.                     IPLIST    LASTENT        MAXPARAM  MINPARAM  OBJ              OBJ2BREAK
  14.                     OBJ_ERASE P1PARAM        P2          P2PARAM   PT              SSOBJS
  15.                     SSOBJSALL
  16.                    )
  17.     (vl-load-com)
  18.     (defun ssget->vla-list (ss ent / i ename lst)
  19.       (setq i -1)
  20.       (while (setq ename (ssname ss (setq i (1+ i))))
  21.         (if (equal ename ent)
  22.           (setq ss (ssdel ent ss))
  23.         )
  24.         ;; check for locked layer, do not use if on locked layer  
  25.         (if (and (not (onlockedlayer ename))
  26.                  (not (equal ename ent))
  27.             )                                                    ; exclude break object  
  28.           (setq lst (cons (vlax-ename->vla-object ename) lst))
  29.         )
  30.       )
  31.       lst
  32.     )

  33.     (defun list->3pair (old / new)
  34.       (while (setq new (cons (list (car old) (cadr old) (caddr old)) new)
  35.                    old (cdddr old)
  36.              )
  37.       )
  38.       (reverse new)
  39.     )



  40.     (if        (and ss
  41.              ent
  42.              (setq ssobjs (ssget->vla-list ss ent))
  43.         )
  44.       (progn
  45.         ;;用ssobjsAll来收集包括打断后的对象
  46.         (setq ssobjsAll ss)
  47.         (setq brk_obj (vlax-ename->vla-object ent))
  48.         (mapcar
  49.           '(lambda (obj2Break / iplist brkobjlst lastent)
  50.                                                             ; loop through list of objects to be broken  
  51.                                                             ; get list of intersect points  
  52.              (setq iplist (vl-catch-all-apply
  53.                             'vlax-safearray->list
  54.                             (list (vlax-variant-value
  55.                                     (vla-intersectwith
  56.                                       brk_obj
  57.                                       obj2Break
  58.                                       acextendnone
  59.                                     )
  60.                                   )
  61.                             )
  62.                           )
  63.              )
  64.              (setq brkobjlst (cons obj2Break brkobjlst))
  65.                                                             ; collect the original object to be broken  
  66.              (if (not (vl-catch-all-error-p iplist))
  67.                                                             ;  error if no intersection  
  68.                (mapcar                                            ; loop through  intersect points  
  69.                  '(lambda (pt / cen elst maxparam minparam p1 p2 p1param p2param)
  70.                     ;;  get last entity created via break in case multiple breaks  
  71.                     (if
  72.                       (and
  73.                         lastent
  74.                         (not
  75.                           (equal lastent (vlax-vla-object->ename brk_obj))
  76.                         )
  77.                       )                                            ; ignore the break object  
  78.                        (progn                                    ; new object created via break, put in list  
  79.                          (setq
  80.                            brkobjlst (cons
  81.                                        (vlax-ename->vla-object (entlast))
  82.                                        brkobjlst
  83.                                      )
  84.                          )
  85.                          (setq ssobjsAll (ssadd (entlast) ssobjsAll))
  86.                          ;;  if pt not on object x, switch objects  
  87.                          (if
  88.                            (not (vlax-curve-getdistatpoint obj2Break pt))
  89.                             (foreach obj brkobjlst
  90.                                                             ; find the one that pt is on  
  91.                               (if (vlax-curve-getdistatpoint obj pt)
  92.                                 (setq obj2Break obj)            ; switch objects  
  93.                               )
  94.                             )
  95.                          )
  96.                        )
  97.                     )

  98.                     ;;  Handle any objects that can not be use with the Break Command  
  99.                     ;;  using one point  
  100.                     (cond
  101.                       ((and (= "AcDbSpline" (vla-get-objectname obj2Break))
  102.                                                             ; only closed splines  
  103.                             (vlax-curve-isClosed obj2Break)
  104.                        )
  105.                        (setq p1param (vlax-curve-getparamatpoint obj2Break pt)
  106.                              p2param (+ p1param 0.000001)
  107.                              p2             (vlax-curve-getPointAtParam obj2Break p2param)
  108.                        )
  109.                        (command        "._break"
  110.                                 (vlax-vla-object->ename obj2Break)
  111.                                 "non"
  112.                                 (trans pt 0 1)
  113.                                 "non"
  114.                                 (trans p2 0 1)
  115.                        )
  116.                       )
  117.                       ((= "AcDbCircle" (vla-get-objectname obj2Break))
  118.                                                             ; break the circle  
  119.                        (setq p1param (vlax-curve-getparamatpoint obj2Break pt)
  120.                              p2param (+ p1param 0.000001)
  121.                              p2             (vlax-curve-getPointAtParam obj2Break p2param)
  122.                        )
  123.                        (command        "._break"
  124.                                 (vlax-vla-object->ename obj2Break)
  125.                                 "non"
  126.                                 (trans pt 0 1)
  127.                                 "non"
  128.                                 (trans p2 0 1)
  129.                        )
  130.                        (setq en (entlast))
  131.                        (setq ssobjsAll (ssadd en ssobjsAll))
  132.                       )
  133.                       ((and
  134.                          (= "AcDbEllipse" (vla-get-objectname obj2Break))
  135.                                                             ; only closed ellipse  
  136.                          (vlax-curve-isClosed obj2Break)
  137.                        )
  138.                        ;;  Break the ellipse, code borrowed from Joe Burke  6/6/2005  
  139.                        (setq p1param  (vlax-curve-getparamatpoint obj2Break pt)
  140.                              p2param  (+ p1param 0.000001)
  141.                                                             ;(vlax-curve-getparamatpoint obj p2)  
  142.                              minparam (min p1param p2param)
  143.                              maxparam (max p1param p2param)
  144.                        )
  145.                        (vlax-put obj2Break 'startparameter maxparam)
  146.                        (vlax-put obj2Break
  147.                                  'endparameter
  148.                                  (+ minparam (* pi 2))
  149.                        )
  150.                       )
  151.                       ;;==================================  
  152.                       ;;   Objects that can be broken      
  153.                       ;;==================================  
  154.                       (t
  155.                        (command        "._break"
  156.                                 (vlax-vla-object->ename obj2Break)
  157.                                 "non"
  158.                                 (trans pt 0 1)
  159.                                 "non"
  160.                                 (trans pt 0 1)
  161.                        )
  162.                        ;;  could not get vl-cmdf "._break" to behave  
  163.                        (setq lastent (entlast))
  164.                        (setq ssobjsAll (ssadd lastent ssobjsAll))
  165.                       )
  166.                     )

  167.                   )
  168.                  (list->3pair iplist)
  169.                )
  170.              )
  171.            )
  172.           ssobjs
  173.         )
  174.         ;; remove the break line, if current layer is not locked  
  175.         (if obj_erase
  176.           (vl-catch-all-apply 'vla-delete (list brk_obj))
  177.         )
  178.       )
  179.     )

  180.     ssobjsAll
  181.   )


  182.   ;;------------------------------------------
  183.   ;;本函数得到圆内实体选择集(3dm_pl_region_GE_PtInPoly (gxl-Ax:GetMidpointCurve e) (Object-Plst ent) T)
  184.   ;;曲线中点在圆外,则在圆外
  185.   ;;allObjects选择集,ent圆
  186.   (defun GetInCircleObjects
  187.                             (allObjects ent / E N SSNEW)
  188.     (setq ssNew (ssadd))
  189.     (setq n 0)
  190.     (repeat (sslength allObjects)
  191.       (setq e (ssname allObjects n))
  192.       (if (3dm_pl_region_GE_PtInPoly (gxl-Ax:GetMidpointCurve e)
  193.                                      (Object-Plst ent)
  194.                                      T
  195.           )
  196.         (setq ssNew (ssadd e ssNew))
  197.         (entdel e)
  198.       )
  199.       (setq n (1+ n))
  200.     )
  201.     ssNew
  202.   )

  203.   ;; (gxl-Ax:GetMidpointCurve curve) 计算曲线中点
  204.   (defun gxl-Ax:GetMidpointCurve (curve / d)
  205.     (setq d (/ (gxl-ax:GetCurveLength curve) 2))
  206.     (vlax-curve-getPointAtDist curve d)
  207.   )

  208.   ;;ax:GetCurveLength 返回曲线长度
  209.   (defun gxl-ax:GetCurveLength (curve /)
  210.     (if        (= 'ENAME (type curve))
  211.       (setq curve (vlax-ename->vla-object curve))
  212.     )
  213.     (vlax-curve-getDistAtParam
  214.       curve
  215.       (vlax-curve-getEndParam curve)
  216.     )
  217.   )
  218.   ;;ax:GetCurveLength 返回曲线长度


  219.   ;;Copy原选择集,构成新的选择集
  220.   ;;SS选择集,EntCicl不加入选择集对象
  221.   (defun ss=>NewSS (SS EntCicl / E N NEWSS)
  222.     (setq NewSS (ssadd))
  223.     (setq n 0)
  224.     (repeat (sslength ss)
  225.       (setq e (ssname ss n))
  226.       (command "copy" e "" (list 0 0 0) (list 0 0 0))
  227.       (setq e (entlast))
  228.       (setq NewSS (ssadd e NewSS))
  229.       (setq n (1+ n))
  230.     )
  231.     NewSS
  232.   )
  233.   ;;Copy原选择集,构成新的选择集

  234.   ;;Copy块,其成员加入原选择集构成新选择集
  235.   ;;(setq ss (ssget))
  236.   ;;(setq block (car (entsel)))
  237.   ;;(Block=>NewSS ss block)
  238.   (defun Block=>NewSS (SS Block CURVE SSInCircle / E ENT N SS1 BlockN LIS)
  239.     (command "copy" Block "" (list 0 0 0) (list 0 0 0))
  240.     (setq BlockN (entlast))
  241.     (command "explode" BlockN)
  242.     (setq ss1 (ssget "_P"))
  243.     (setq n 0)
  244.     (if        (equal SSInCircle nil)
  245.       (setq SSInCircle (ssadd))
  246.     )
  247.     (repeat (sslength ss1)
  248.       (setq e (ssname ss1 n))
  249.       (setq ent (LI_item 0 (entget e)))
  250.       (cond
  251.         ((eInClosedCurve e CURVE)
  252.          (setq SSInCircle (ssadd e SSInCircle))
  253.         )
  254.         ((wcmatch ent "*LINE,ARC,CIRCLE,ELLIPSE")
  255.          (setq SS (ssadd e SS))
  256.         )
  257.         ((wcmatch ent "INSERT,HATCH,DIMENSION")
  258.          (progn        (setq lis (Block=>NewSS SS e CURVE SSInCircle))
  259.                 (setq SSInCircle (cadr lis))
  260.                 (setq ss (car lis))
  261.                 (entdel e)
  262.          )
  263.         )
  264.         ((AND (wcmatch ent "TEXT") (textInClosedCurve e CURVE))
  265.          (setq SSInCircle (ssadd e SSInCircle))
  266.         )
  267.         (T (entdel e))
  268.       )
  269.       (setq n (1+ n))
  270.     )
  271.     (LIST ss SSInCircle)
  272.   )
  273.   ;;Copy块,其成员加入原选择集构成新选择集


  274.   ;;块集各成员加入SS选择集
  275.   (defun BlockS=>NewSS (SS BlockS CURVE / BLOCK N LIS SSInCircle)
  276.     (setq n 0)
  277.     (setq SSInCircle (ssadd))
  278.     (repeat (sslength BlockS)
  279.       (setq Block (ssname BlockS n))
  280.       (setq LIS (Block=>NewSS SS Block CURVE SSInCircle))
  281.       (setq SS               (car LIS)
  282.             SSInCircle (cadr LIS)
  283.       )
  284.       (setq n (1+ n))
  285.     )
  286.     LIS
  287.   )
  288.   ;;块集各成员加入SS选择集


  289.   ;;生成无名块
  290.   (defun NONAME_BLK (SS PointCircl / A BLKREF)
  291.     (setq A (rtos (* (getvar "CDATE") 1E8)))
  292.     (if        (/= SS NIL)
  293.       (progn
  294.         (command "_.BLOCK" A PointCircl SS "")
  295.         (command "_.INSERT" A "@" "" "" "")
  296.         ;|(setq BLKREF (vlax-ename->vla-object (entlast)))
  297.         (vla-put-name
  298.           (vla-item (vla-get-blocks
  299.                       (vla-get-activedocument (vlax-get-acad-object))
  300.                     )
  301.                     (vla-get-name BLKREF)
  302.           )
  303.           "*U"
  304.         )
  305.         (vlax-release-object BLKREF)|;
  306.       )
  307.     )
  308.   )
  309.   ;;生成无名块

  310.   ;;选择集合并
  311.   (defun SS_SSjoinENT (ss1 ss2 EntCicl / BOOL EN EN1 N)
  312.     ;;如果ss1中没有圆EntCicl,则加入之
  313.     (setq n 0)
  314.     (repeat (sslength ss1)
  315.       (setq en (ssname ss1 n))
  316.       (if (= en EntCicl)
  317.         (setq bool T)
  318.       )
  319.     )
  320.     (if        bool
  321.       nil
  322.       (progn (command "copy" EntCicl "" (list 0 0 0) (list 0 0 0))
  323.              (setq en1 (entlast))
  324.              (setq ss1 (ssadd en1 ss1))
  325.       )
  326.     )
  327.     (setq n 0)
  328.     (repeat (sslength ss2)
  329.       (setq en (ssname ss2 n))
  330.       (command "copy" en "" (list 0 0 0) (list 0 0 0))
  331.       (setq en1 (entlast))
  332.       (setq ss1 (ssadd en1 ss1))
  333.       (setq n (1+ n))
  334.     )
  335.     ss1
  336.   )
  337.   ;;选择集合并


  338.   ;;选择对象
  339.   (defun Object-Plst (EntCicl / END I LINEOBJ NUM PLST START)
  340.     (vl-load-com)
  341.     (setq lineObj (vlax-ename->vla-object EntCicl)
  342.           start          (vlax-curve-getStartParam lineObj)
  343.           end          (vlax-curve-getEndParam lineObj)
  344.           i          0
  345.     )
  346.     (while (< i (setq num 100))
  347.       (setq plst (append
  348.                    plst
  349.                    (list (vlax-curve-getPointAtParam lineObj
  350.                                                      (*        i
  351.                                                         (/
  352.                                                           (- end start)
  353.                                                           num
  354.                                                         )
  355.                                                      )
  356.                          )

  357.                    )
  358.                  )
  359.             i         (1+ i)
  360.       )
  361.     )
  362.     plst
  363.   )
  364.   ;;选择对象


  365.   ;|(setq EntCicl (car (entsel)))
  366. (setq BaseSymbol "A")
  367. (setq entText (car (entsel)))|;
  368.   ;;画引线
  369.   (defun HdrawLeader (EntCicl BaseSymbol      Textheigh              CP      /
  370.                       A              AA      B              BB      C              CC      D
  371.                       DD      EE      FF      I              TEXTLIS ENTTEXT ola
  372.                      )
  373.     (vl-load-com)
  374.     (command "text" CP Textheigh "" BaseSymbol)
  375.     (setq entText (entlast))

  376.     (setq TextLis (entget entText))
  377.     (setq i T)
  378.     (while i
  379.       (setq a (grread T 4 0)
  380.             b (car a)
  381.             c (cadr a)
  382.       )
  383.       ;;b=5移动,b=3左键,c=0右键,;;c=13回车,c=32空格
  384.       (cond ((= b 5)                                            ;当鼠标移动时
  385.              (redraw)
  386.              (setq a (trans (cadr a) 1 0))
  387.              ;;鼠标移动点
  388.              (setq d (vlax-curve-getclosestpointto EntCicl a))
  389.              ;;a到对象ent的最近点
  390.              (setq aa (car a)
  391.                    bb (cadr a)
  392.                    cc (caddr a)
  393.              )
  394.              ;;提取 a 的x,y,z
  395.              (setq dd (car d)
  396.                    ee (cadr d)
  397.                    ff (caddr d)
  398.              )

  399.              (if (<= aa dd)
  400.                (progn (setq TextLis (subst (cons 72 2) (assoc 72 TextLis) TextLis))
  401.                       (setq TextLis (subst (cons 11 a) (assoc 11 TextLis) TextLis))
  402.                )
  403.                (progn (setq TextLis (subst (cons 72 0) (assoc 72 TextLis) TextLis))
  404.                       (setq TextLis (subst (cons 10 a) (assoc 10 TextLis) TextLis))
  405.                )
  406.              )
  407.              (entmod TextLis)
  408.              (grdraw a d 1)
  409.             )
  410.             ;;end_cond第一个括号
  411.             ((= b 3) (setq i nil))
  412.             ;;左键结束while(cond第二个括号)
  413.       )
  414.       ;;end_cond
  415.     )
  416.     ;;end_while
  417.     (redraw)
  418.     (entdel entText)
  419.                                                             ;(setvar "DIMLDRBLK" "DotSmall")
  420.     (setq ola (getvar "clayer"))
  421.     (vl-cmdf "layer" "make" "DIM" "Color" 3 "" "")
  422.     (command "leader" d (cadr a) "" BaseSymbol "")
  423.     (setvar "clayer" ola)
  424.                                                             ;(setvar "DIMLDRBLK" ".")
  425.                                                             ;(vl-cmdf "leader" d (cadr a) "f" "st" "f" "a" "" BaseSymbol "")
  426.                                                             ;(setq leaderobj (vlax-ename->vla-object (entlast)))
  427.                                                             ;(vla-put-ArrowheadType leaderobj acArrowDotSmall)
  428.                                                             ;(vla-Update leaderobj)
  429.   )
  430.   ;;画引线

  431.   (defun onlockedlayer (ename / entlst)
  432.     (setq entlst (tblsearch "LAYER" (cdr (assoc 8 (entget ename)))))
  433.     (= 4 (logand 4 (cdr (assoc 70 entlst))))
  434.   )

  435.   ;;点在曲线内外,caoyin
  436.   ;;  T------->在曲线内
  437.   (defun LT:PT-INCURVE (PT CURVE / GetInters OBJ MINPT MAXPT E PS LST X Y)
  438.     (defun GetInters (OBJ1 OBJ2 / PS LST)
  439.       (setq PS (vla-intersectwith OBJ1 OBJ2 0)
  440.             PS (vl-catch-all-apply 'vlax-safearray->list
  441.                                    (list (vlax-variant-value PS))
  442.                )
  443.       )
  444.       (if (and PS (not (vl-catch-all-error-p PS)))
  445.         (while (setq LST (cons (list (car PS) (cadr PS)) LST)
  446.                      PS         (cdddr PS)
  447.                )
  448.         )
  449.       )
  450.       LST
  451.     )
  452.     (if        (equal (vlax-curve-getClosestPointTo CURVE PT) PT 1E-6)
  453.       0
  454.       (progn
  455.         (setq OBJ (vlax-ename->vla-object CURVE))
  456.         (vla-getboundingbox OBJ 'MINPT 'MAXPT)
  457.         (mapcar        '(lambda (X) (set X (vlax-safearray->list (eval X))))
  458.                 '(MINPT MAXPT)
  459.         )
  460.         (entmake (list '(0 . "LINE")
  461.                        (list 10 (car MINPT) (cadr PT))
  462.                        (list 11 (car MAXPT) (cadr PT))
  463.                        '(60 . 1)
  464.                  )
  465.         )
  466.         (setq E           (entlast)
  467.               LST1 (GetInters OBJ (vlax-ename->vla-object E))
  468.         )
  469.         (entdel E)
  470.         (if LST1
  471.           (setq        LST1 (vl-remove-if
  472.                        '(lambda        (X / PP A)
  473.                           (setq        PP (vlax-curve-getParamAtPoint CURVE X)
  474.                                 A  (angle '(0 0)
  475.                                           (vlax-curve-getFirstDeriv CURVE PP)
  476.                                    )
  477.                           )
  478.                           (or (equal A 0 1E-6)
  479.                               (equal A PI 1E-6)
  480.                               (equal A (* PI 2) 1E-6)
  481.                               (equal (fix PP) PP 1E-6)
  482.                           )
  483.                         )
  484.                        LST1
  485.                      )
  486.           )
  487.         )
  488.         (entmake (list '(0 . "LINE")
  489.                        (list 10 (car PT) (cadr MAXPT))
  490.                        (list 11 (car PT) (cadr MINPT))
  491.                        '(60 . 0)
  492.                  )
  493.         )
  494.         (setq E           (entlast)
  495.               LST2 (GetInters OBJ (vlax-ename->vla-object E))
  496.         )
  497.         (entdel E)
  498.         (if LST2
  499.           (setq        LST2 (vl-remove-if
  500.                        '(lambda        (X / PP A)
  501.                           (setq        X  (vlax-curve-getClosestPointTo CURVE X)
  502.                                 PP (vlax-curve-getParamAtPoint CURVE X)
  503.                                 A  (angle (vlax-curve-getFirstDeriv CURVE PP)
  504.                                           '(0 0)
  505.                                    )
  506.                           )
  507.                           (or (equal A (/ PI 2) 1E-6)
  508.                               (equal A (* PI 1.5) 1E-6)
  509.                               (equal (fix PP) PP 1E-6)
  510.                           )
  511.                         )
  512.                        LST2
  513.                      )
  514.           )
  515.         )
  516.         (and LST1
  517.              LST2
  518.              (progn
  519.                (setq X (vl-sort-i (mapcar 'car (cons PT LST1)) '<)
  520.                      Y (length (member 0 X))
  521.                )
  522.                (and (zerop (rem Y 2)) (= (rem (- (length X) Y) 2) 1))
  523.              )
  524.              (progn
  525.                (setq X (vl-sort-i (mapcar 'cadr (cons PT LST2)) '<)
  526.                      Y (length (member 0 X))
  527.                )
  528.                (and (zerop (rem Y 2)) (= (rem (- (length X) Y) 2) 1))
  529.              )
  530.         )
  531.       )
  532.     )
  533.   )
  534.   ;;点在曲线内外,caoyin

  535.   ;;*************************************************************************************
  536.   ;; ! Argument : 'pt'    - point ot be tested
  537.   ;; !            'vlist' - List of points forming the polgon
  538.   ;; !            'flag'  - If 'T', point on the line is inside else outside
  539.   (defun 3dm_pl_region_GE_PtInPoly (pt           vlist  flag         /        NumInts              diff
  540.                                     cnt           online p1         p1code        p1x    p1y    p2
  541.                                     p2code p2x          p2y         ttl        x      xdiff  xx
  542.                                     y           ydiff  Idx         len
  543.                                    )
  544.     (if        (not (equal (car vlist) (last vlist)))
  545.       (setq vlist (append
  546.                     vlist
  547.                     (list (car vlist))
  548.                   )
  549.       )
  550.     )
  551.     (setq X          (car pt)
  552.           Y          (cadr pt)
  553.           len          (length vlist)
  554.           cnt          0
  555.           Idx          0
  556.           NumInts 0
  557.           OnLine  nil
  558.     )
  559.     (while (and
  560.              (not OnLine)
  561.              (< cnt len)
  562.            )
  563.       (setq p2           (nth cnt vlist)
  564.             p2x           (car p2)
  565.             p2y           (cadr p2)
  566.             p2code (if (>= p2y y)
  567.                      2
  568.                      0
  569.                    )
  570.             p2code (if (>= p2x x)
  571.                      (1+ p2code)
  572.                      p2code
  573.                    )
  574.       )
  575.       (if p1
  576.         (setq diff  (boole 6 p1code p2code)
  577.               ydiff (boole 1 diff 2)
  578.               xdiff (boole 1 diff 1)
  579.               p1x   (car p1)
  580.               p1y   (cadr p1)
  581.         )
  582.       )
  583.       (if (= ydiff 2)
  584.         (progn
  585.           (setq xx (+ p1x (* (/ (- p2x p1x) 1. (- p2y p1y)) (- y p1y))))
  586.           (cond
  587.             ((equal xx x 0.0001)
  588.              (setq online T)
  589.             )
  590.             ((> xx x)
  591.              (setq NumInts (1+ NumInts))
  592.             )
  593.           )
  594.         )
  595.       )
  596.       (if (and
  597.             (= xdiff 1)
  598.             (= y p1y p2y)
  599.           )
  600.         (setq OnLine T)
  601.       )
  602.       (setq p1code p2code
  603.             p1           p2
  604.             cnt           (1+ cnt)
  605.       )
  606.     )
  607.     (if        Online
  608.       flag
  609.       (= (boole 1 NumInts 1) 0001)
  610.     )
  611.   )
  612.   ;;**************************************************************


  613.   ;; | ----------------------------------------------------------------------------
  614.   ;; | SS_SSjoin
  615.   ;; | ----------------------------------------------------------------------------
  616.   ;; | Function : Joins two selections set and returns their sum
  617.   ;; | Arguments:
  618.   ;; |            'ss1'    - First Selection set (overloaded - can be entity
  619.   ;; |                       name as well)
  620.   ;; |            'ss2'    - Second Selection set (overloaded - can be entity
  621.   ;; |                       name as well)
  622.   ;; | Return   : The difference selection set
  623.   ;; | Updated  : April 24, 1998
  624.   ;; | e-mail   : rakesh.rao@4d-technologies.com
  625.   ;; | Web      : www.4d-technologies.com
  626.   ;; | ----------------------------------------------------------------------------
  627.   (defun SS_SSjoin (ss1 ss2 / ename ss cnt)
  628.     (if        ss1
  629.       (progn
  630.         (if (= (type ss1) 'ENAME)
  631.           (progn
  632.             (setq
  633.               ename ss1
  634.               ss1   (ssadd)
  635.             )
  636.             (ssadd ename ss1)
  637.           )
  638.         )
  639.       )
  640.     )

  641.     (if        ss2
  642.       (progn
  643.         (if (= (type ss2) 'ENAME)
  644.           (progn
  645.             (setq
  646.               ename ss2
  647.               ss2   (ssadd)
  648.             )
  649.             (ssadd ename ss2)
  650.           )
  651.         )
  652.       )
  653.     )

  654.     (setq ss (ssadd))

  655.     (if        (and ss1 ss2)
  656.       (progn
  657.         (setq ss  ss2
  658.               cnt 0
  659.         )
  660.         (repeat        (sslength ss1)
  661.           (ssadd (ssname ss1 cnt) ss)
  662.           (setq cnt (1+ cnt))
  663.         )
  664.       )
  665.     )

  666.     (if        (and ss1 (not ss2))
  667.       (setq ss ss1)
  668.     )

  669.     (if        (and ss2 (not ss1))
  670.       (setq ss ss2)
  671.     )

  672.     (if        (> (sslength ss) 0)
  673.       (eval ss)
  674.       nil
  675.     )
  676.   )
  677.   ;;选择集合并

  678.   ;;判断一个对象是否在封闭曲线内,返回T
  679.   ;;(eInClosedCurve (car (entsel)) (car (entsel)))
  680.   ;;(textInClosedCurve (car (entsel)) (car (entsel)))
  681.   (defun eInClosedCurve        (e          Curve           /            AREACURVE              AREAE
  682.                          BOOL          BOOL1           CURVE1   E0             E1              E2
  683.                          EN          P1           P2            P3             P4              REGIONINTERSECT
  684.                         )
  685.                                                             ;(setq e (car (entsel)) Curve (car (entsel)))
  686.     (vl-load-com)
  687.     ;;先判断4个顶点是否在封闭曲线内
  688.     (setq en (vlax-ename->vla-object e))
  689.     (vla-getboundingbox en 'p1 'p3)
  690.     (setq p1 (vlax-safearray->list p1))
  691.     (setq p3 (vlax-safearray->list p3))
  692.     (setq p2 (list (car p3) (cadr p1)))
  693.     (setq p4 (list (car p1) (cadr p3)))
  694.     (if        (and (LT:PT-INCURVE p1 CURVE)
  695.              (LT:PT-INCURVE p2 CURVE)
  696.              (LT:PT-INCURVE p3 CURVE)
  697.              (LT:PT-INCURVE p4 CURVE)
  698.         )
  699.       (progn
  700.         (command "_rectang" p1 p3)
  701.         (setq e0 (entlast))
  702.         (command "_region" e0 "")
  703.         (setq e1 (entlast))
  704.         (command "area" "o" e1)
  705.         (setq areae (getvar "area"))
  706.         (command "erase" e0 "")
  707.         ;;面域
  708.         (command "copy" Curve "" (list 0 0 0) (list 0 0 0))
  709.         (setq Curve1 (entlast))
  710.         (command "_region" Curve1 "")
  711.         (setq e2 (entlast))
  712.         ;;面域
  713.         (command "intersect" e1 e2 "")
  714.         ;;如果没有交集,原Curve会被删除???
  715.         (setq RegionIntersect (entlast))
  716.         (if (/= RegionIntersect e2)
  717.           (progn
  718.             (setq RegionIntersect (entlast))
  719.             (command "area" "o" RegionIntersect)
  720.             (setq areaCurve (getvar "area"))
  721.             (entdel RegionIntersect)
  722.             (setq bool1 T)
  723.           )
  724.         )
  725.         ;;面域交集
  726.         (if bool1
  727.           (setq bool (equal areaCurve areae))
  728.         )

  729.       )
  730.     )
  731.     bool
  732.   )
  733.   ;;判断一个对象是否在封闭曲线内,返回T

  734.   ;;Text在封闭曲线内,返回T
  735.   (defun textInClosedCurve (e             CURVE    /               ANG        ANG1         AREACURVE
  736.                             AREAE    BOOL     BOOL1    CURVE1        E0         E1
  737.                             E2             ENLIST   P1       P2        P3         P4
  738.                             POINT1   POINT2   PT       REGIONINTERSECT         TL
  739.                            )
  740.     ;;(setq en (car (entsel)))
  741.     (setq enlist (entget e))
  742.     (setq ang (LI_item 50 enlist))
  743.     (setq pt (LI_item 10 enlist))
  744.     (setq tl (textbox enlist))
  745.     (setq point1 (car tl))
  746.     (setq point2 (cadr tl))
  747.     (setq p1 (mapcar '+ pt point1))
  748.     (setq p2 (polar p1 ang (car point2)))
  749.     (setq ang1 (angle p1 (mapcar '+ p1 point2)))
  750.     (setq p3 (polar p1
  751.                     (+ ang ang1)
  752.                     (sqrt (+ (* (car point2) (car point2))
  753.                              (* (cadr point2) (cadr point2))
  754.                           )
  755.                     )
  756.              )
  757.     )
  758.     (setq p4 (polar p1 (+ ang (/ pi 2.0)) (cadr point2)))
  759.     (if        (and (LT:PT-INCURVE p1 CURVE)
  760.              (LT:PT-INCURVE p2 CURVE)
  761.              (LT:PT-INCURVE p3 CURVE)
  762.              (LT:PT-INCURVE p4 CURVE)
  763.         )
  764.       (progn
  765.         (command "_pline" p1 p2 p3 p4 "C")
  766.         (setq e0 (entlast))
  767.         (command "_region" e0 "")
  768.         (setq e1 (entlast))
  769.         (command "area" "o" e1)
  770.         (setq areae (getvar "area"))
  771.         (command "erase" e0 "")
  772.         ;;面域
  773.         ;;(setq CURVE (car (entsel)))
  774.         (command "copy" CURVE "" (list 0 0 0) (list 0 0 0))
  775.         (princ "\n面域")
  776.         (setq Curve1 (entlast))
  777.         (command "_region" Curve1 "")
  778.         (setq e2 (entlast))
  779.         ;;面域
  780.         (command "intersect" e1 e2 "")
  781.         ;;如果没有交集,原Curve会被删除???
  782.         (setq RegionIntersect (entlast))
  783.         (if (/= RegionIntersect e2)
  784.           (progn
  785.             (setq RegionIntersect (entlast))
  786.             (command "area" "o" RegionIntersect)
  787.             (setq areaCurve (getvar "area"))
  788.             (entdel RegionIntersect)
  789.             (setq bool1 T)
  790.           )
  791.         )
  792.         ;;面域交集
  793.         (if bool1
  794.           (setq bool (equal areaCurve areae))
  795.         )

  796.       )
  797.     )
  798.     bool
  799.   )
  800.   ;;Text在封闭曲线内,返回T


  801.   (VL-LOAD-COM)
  802.   (setq HOLDblipmo (getvar "blipmode"))
  803.   (setq HOLDcmdech (getvar "cmdecho"))
  804.   (setq DIMASSOC1 (getvar "DIMASSOC"))

  805.   (setvar "cmdecho" 0)
  806.   (setvar "blipmode" 0)
  807.   (setvar "DIMASSOC" 1)
  808.   (setq fdlayer (getvar "CLAYER"))
  809.   (vl-cmdf "layer" "make" "DIM" "Color" 3 "" "")

  810.   (defun getdata ()
  811.     (setq BaseSymbol (get_tile "Fuhao"))
  812.     (setq JBFD_GetScalStri (get_tile "Scal"))
  813.     (setq JBFD_ZoomStri (get_tile "Zoom1"))
  814.   )

  815.   (if (= JBFD_BaseNumber nil)
  816.     (setq JBFD_BaseNumber 65)
  817.     (setq JBFD_BaseNumber (1+ JBFD_BaseNumber))
  818.   )
  819.   (SETQ BaseSymbol (chr JBFD_BaseNumber))

  820.   (if (= JBFD_GetScalStri nil)
  821.     (setq JBFD_GetScalStri "2.5")
  822.   )
  823.   (if (= JBFD_ZoomStri nil)
  824.     (setq JBFD_ZoomStri "0")
  825.   )


  826.   (setq fname (vl-filename-mktemp nil nil ".dcl"))
  827.   (setq fn (open fname "w"))
  828.   (write-line "Fddcl : dialog{" fn)
  829.   (write-line "label="*黄明儒*局部放大 命令:FD";" fn)
  830.   (write-line ":column{        " fn)
  831.   (write-line
  832.     "        :edit_box{label="放大标识(F)";key="Fuhao";value="B";mnemonic="F";}"
  833.     fn
  834.   )
  835.   (write-line
  836.     "        :edit_box{label="放大倍数(S)";key="Scal";value="2.0";mnemonic="S";} "
  837.     fn
  838.   )
  839.   (write-line
  840.     "        :edit_box{label="视口选择(Z)";key="Zoom1";value="0";mnemonic="Z";} "
  841.     fn
  842.   )
  843.   (write-line
  844.     "        :text{key="Scaltext";value="圆0,已知封闭曲线1,椭圆2,其余多边形";}"
  845.     fn
  846.   )
  847.   (write-line "       }" fn)
  848.   (write-line "       ok_only;" fn)
  849.   (write-line "}" fn)

  850.   (close fn)
  851.   (setq fn (open fname "r"))
  852.   (setq dclid (load_dialog fname))
  853.   (while
  854.     (or        (eq (substr (setq lin (vl-string-right-trim
  855.                                 "" fn)"
  856.                                 (vl-string-left-trim "(write-line "" (read-line fn))
  857.                               )
  858.                     )
  859.                     1
  860.                     2
  861.             )
  862.             "//"
  863.         )
  864.         (eq (substr lin 1 (vl-string-search " " lin)) "")
  865.         (not (eq (substr lin (+ (vl-string-search " " lin) 1) 9)
  866.                  " : dialog"
  867.              )
  868.         )
  869.     )
  870.   )
  871.   (new_dialog (substr lin 1 (vl-string-search " " lin)) dclid)
  872.   (set_tile "Fuhao" BaseSymbol)
  873.   (set_tile "Scal" JBFD_GetScalStri)
  874.   (set_tile "Zoom1" JBFD_ZoomStri)
  875.   (mode_tile "Scal" 2)
  876.   (Action_Tile "Fuhao" "(Setq BaseSymbol $$Value)")
  877.   (Action_Tile "Scal" "(Setq JBFD_GetScalStri $$Value)")
  878.   (Action_Tile "Zoom1" "(Setq JBFD_ZoomStri $$Value)")
  879.   (action_tile "accept" "(getdata)(done_dialog)")
  880.   (setq return# (start_dialog))
  881.   (unload_dialog dclid)
  882.   (close fn)
  883.   (vl-file-delete fname)

  884.   (setq JBFD_BaseNumber (ascii BaseSymbol))
  885.   (SETQ Scalreal (atof JBFD_GetScalStri))
  886.   (SETQ getZoom (abs (atoi JBFD_ZoomStri)))


  887.   (if (/= 1 getZoom)
  888.     (SETQ CP (GETPOINT "\n局部放大中心点: "))
  889.   )
  890.   (cond        ((= 0 getZoom) (command "CIRCLE" CP pause))
  891.         ((= 1 getZoom)
  892.          (while
  893.            (progn
  894.              (setq ent (car (entsel "\n拾取封闭曲线:")))
  895.              (cond
  896.                ((null ent) nil)
  897.                ((member        (cdr (assoc 0 (entget ent)))
  898.                         '("LINE" "ARC" "SPLINE"        "LWPOLYLINE" "POLYLINE"        "CIRCLE"
  899.                           "ELLIPSE")
  900.                 )
  901.                 nil
  902.                )
  903.                (t
  904.                 (prompt "\n*** 错误对象类型, 重试.")
  905.                 t
  906.                )
  907.              )
  908.            )
  909.          )
  910.         )
  911.         ((= 2 getZoom) (command "_ellipse" CP pause pause))
  912.         (T (command "_polygon" getZoom CP "I" pause))
  913.   )
  914.   (if (/= 1 getZoom)
  915.     (SETQ EntCicl (ENTLAST))
  916.     (SETQ EntCicl ent)
  917.   )
  918.   (setq En (vlax-ename->vla-object EntCicl))
  919.   (vla-getboundingbox En 'p1 'p2)
  920.   (setq p1 (vlax-safearray->list p1))
  921.   (setq p2 (vlax-safearray->list p2))
  922.   (setq CP (mapcar '(lambda (X) (/ x 2.0)) (mapcar '+ p1 p2)))
  923.   (command "Clayer" fdlayer)


  924.   ;;取与圆相交的实体,块除外(选择集)
  925.   (setq        ssObj (ssget "C"
  926.                      p2
  927.                      p1
  928.                      '((0 . "LINE,ARC,SPLINE,LWPOLYLINE,POLYLINE,CIRCLE,ELLIPSE"))
  929.               )
  930.   )
  931.   ;;与圆相交的块(选择集)
  932.   (setq ssblocks (ssget "F" (Object-Plst EntCicl) '((0 . "INSERT,HATCH"))))
  933.   ;;圆内物体(选择集)
  934.   (setq        SSInCircle (ssget "WP"
  935.                           (Object-Plst EntCicl)
  936.                           '((0 . "*TEXT,DIMENSION,INSERT,HATCH"))
  937.                    )
  938.   )

  939.   ;;与圆相交实体拷贝集,有EntCicl则去除之
  940.   (setq ssObj (ss=>NewSS ssObj EntCicl))
  941.   ;;与圆相交块拷贝集
  942.   (if ssblocks
  943.     (progn
  944.       (if (equal SSInCircle nil)
  945.         (setq SSInCircle (ssadd))
  946.       )
  947.       (setq ssObj (BlockS=>NewSS ssObj ssblocks EntCicl))
  948.       (setq SS_Bolck (cadr ssObj))                            ;块集爆破后的产物,选择集
  949.       (setq ssObj (car ssObj))
  950.     )
  951.   )
  952.   ;;与圆相交拷贝集打断后的新选择集  
  953.   (setq ssObj (ssCircle1 ssObj EntCicl))

  954.   ;;新选择集圆外对象删除
  955.   (setq ssObj (GetInCircleObjects ssObj EntCicl))
  956.   ;;加入圆内对象,当EntCicl不在选择集中时加入
  957.   (if SSInCircle
  958.     (setq ssObj (SS_SSjoinENT ssObj SSInCircle EntCicl))
  959.   )
  960.   (setq ssObj (SS_SSjoin ssObj SS_Bolck))
  961.   ;;加入块爆破后的产物
  962.   ;;生成无名块
  963.   (setq Newblock (NONAME_BLK ssObj CP))
  964.   (setq Newblock (entlast))

  965.   ;;字体高度Textheigh
  966.   (SETQ Textheigh (* (GETVAR "DIMTXT") (GETVAR "DIMSCALE")))

  967.   ;;画引线
  968.   (HdrawLeader EntCicl BaseSymbol Textheigh CP)
  969.   (setq        NewP (mapcar '+
  970.                      (list 0 (+ (* Scalreal (- (cadr p2) (cadr CP))) Textheigh))
  971.                      CP
  972.              )
  973.   )
  974.   (command "text"
  975.            "J"
  976.            "C"
  977.            NewP
  978.            Textheigh
  979.            ""
  980.            (strcat BaseSymbol " 放大 " JBFD_GetScalStri "X")
  981.   )
  982.   (setq ent (entlast))

  983.   (command "_scale" Newblock "" CP Scalreal)
  984.   (command "move" Newblock ent "" CP pause)


  985.   (setvar "cmdecho" HOLDcmdech)
  986.   (setvar "blipmode" HOLDblipmo)
  987.   (setvar "DIMASSOC" DIMASSOC1)
  988.   (gc)
  989.   (princ)
  990. )
  991. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;放大主程序

点评

程式不错。  发表于 2013-6-3 23:10
缺少LI_ITEM函数。  详情 回复 发表于 2013-6-2 20:09

评分

参与人数 1D豆 +5 收起 理由
Lispboy + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 3719个

财富等级: 富可敌国

发表于 2013-6-2 20:09:23 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2013-5-23 13:24
既然aeo版主有兴趣,我贴出我写的代码,当时有感于小金鱼的要注册,所以自己写了一个,一直希望哪位高手完善 ...

缺少LI_ITEM函数。

点评

(Defun LI_item (N E) (CDR (Assoc N E)))  详情 回复 发表于 2013-6-3 08:14
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2013-6-3 08:14:01 | 显示全部楼层
ycao 发表于 2013-6-2 20:09
缺少LI_ITEM函数。

(Defun LI_item (N E) (CDR (Assoc N E)))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-9-20 08:41:37 | 显示全部楼层
/db_自贡黄明儒_
您好!您的放大程序源码很好,很厉害。向您致敬!我试用后觉得如果此程序能够具有如下功能就更好了:
1、标注比例保持不变,而且标注也要存在于放大的图中;
2、字体太少,输入放大比例后出现乱码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-25 12:25 , Processed in 0.450428 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表