找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1714|回复: 15

[求助] [求助]:我编的LSP程序出了点问题请大家指教

[复制链接]
发表于 2004-6-5 10:35:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
请大虾帮小弟看看下面的程序出了什么问题?
(defun c:gq (/ pti1 pti2 pti3 pti4 pti5 pti6 pti7 pti8 pti9 pti10 pti11
pti12 pti13 ss)
(setq pti1 (getpoint "插入点:"))
(setq pti2 (polar pti1 pi 16.0))
(setq pti3 (polar pti1 0.0 16.0))
(setq pti4 (polar pti1 (/ pi 2) 24.0))
(setq pti5 (polar pti1 (* pi 1.5) 24.0))
(setq pti6 (polar pti1 pi 8.0))
(setq pti7 (polar pti1 (* pi 1.5) 16.0))
(setq pti8 (polar pti1 0.0 8.0))
(setq pti9 (polar pti1 (/ pi 2) 16.0))
(setq pti10 (polar pti1 (/ pi 4) 5.0))
(setq pti11 (polar pti3 (* pi 1.5) 24.0))
(setq pti12 (polar pti2 (/ pi 2) 24.0))
(setq pti13 (inters pti2 pti3 pti4 pti5))
(if (tblsearch "layer" "螺栓")
(progn
(command "layer" "s" "螺栓" "")
)
(progn
(command "layer" "m" "螺栓" "c" "15" "" "")
)
)
(command "-osnap" "off")
(command "layer" "s" "螺栓" "")
(command "color" "bylayer")
(setvar "plinewid" 0.0)
(command "pline" pti6 pti7 pti8 pti9 "c" "")
(setvar "HPNAME" "solid")
(command "-bhatch" pti10 "")
(command "line" pti2 pti3 "")
(command "line" pti4 pti5 "")
(setq ss (ssget "c" pti11 pti12))
(if (tblsearch "block" "高强螺栓")
(progn
(command "erase" ss "")
(command "-insert" "高强螺栓" pti1 "" "" "")
)
(progn
(command "-block" "高强螺栓" pti13 ss "")
(command "-insert" "高强螺栓" pti1 "" "" "")
)
)
(command "-osnap" "end,mid,int,cen,qua,nod,ext")
)
运行后CAD提示“点在对象上”可能是插点的选择问题,但又不知道怎么解决?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-6-5 15:35:39 | 显示全部楼层
简化程序
(defun c:gq (/ pti1 pti2 pti3 pti4 pti5 pti6 pti7 pti8 pti9 pti10 pti11
pti12 pti13 ss)
(setq pti1 (getpoint "插入点:"))
         pti2 (polar pti1 pi 16.0))
         pti3 (polar pti1 0.0 16.0))
         pti4 (polar pti1 (/ pi 2) 24.0))
         pti5 (polar pti1 (* pi 1.5) 24.0))
         pti6 (polar pti1 pi 8.0))
         pti7 (polar pti1 (* pi 1.5) 16.0))
         pti8 (polar pti1 0.0 8.0))
         pti9 (polar pti1 (/ pi 2) 16.0))
         pti10 (polar pti1 (/ pi 4) 5.0))
         pti11 (polar pti3 (* pi 1.5) 24.0))
         pti12 (polar pti2 (/ pi 2) 24.0))
         pti13 (inters pti2 pti3 pti4 pti5))
(if (tblsearch "layer" "螺栓")
(command "layer" "s" "螺栓" "")
(command "layer" "m" "螺栓" "c" "15" "" "")
)
(command "-osnap" "off" "layer" "s" "螺栓" "" "color" "bylayer")
(setvar "plinewid" 0.0)
(setvar "HPNAME" "solid")
(command "pline" pti6 pti7 pti8 pti9 "c" "" "-bhatch" pti10 "" "line" pti2 pti3 ""  "line" pti4 pti5 "")
(setq ss (ssget "c" pti11 pti12))
(if (tblsearch "block" "高强螺栓")
(command "erase" ss "" "-insert" "高强螺栓" pti1 "" "" "")
(command "-block" "高强螺栓" pti13 ss "" "-insert" "高强螺栓" pti1 "" "" "")
)
(command "-osnap" "end,mid,int,cen,qua,nod,ext")
)
最后一句是什么意思?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2004-6-5 16:10:28 | 显示全部楼层

Re: [求助]:我编的LSP程序出了点问题请大家指教

最初由 yjtdkj 发布
[B]请大虾帮小弟看看下面的程序出了什么问题?
(defun c:gq (/ pti1 pti2 pti3 pti4 pti5 pti6 pti7 pti8 pti9 pti10 pti11
pti12 pti13 ss)
(setq pti1 (getpoint "插入点:"))
(setq pti2 (polar pti1 pi 16.0))
... [/B]

1  (command "pline" pti6 pti7 pti8 pti9 "c") 后面多了个 ""

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

使用道具 举报

 楼主| 发表于 2004-6-6 13:37:37 | 显示全部楼层
最初由 zhanzujie 发布
[B]简化程序
(defun c:gq (/ pti1 pti2 pti3 pti4 pti5 pti6 pti7 pti8 pti9 pti10 pti11
pti12 pti13 ss)
(setq pti1 (getpoint "插入点:"))
         pti2 (polar pti1 pi 16.0))
         pti3 (polar pti1 0.0... [/B]

最后一句是设置捕捉点,
还有,回斑竹的话:第1点己经做了,第2点我已经在前用了一句(command "-osnap" "off")
可是最后还是不行
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-6-6 14:00:12 | 显示全部楼层
(command "-osnap" "off")一句是关闭捕捉的意思,一般不这样表达,一般使用:

(setq oldosm (getvar "osmode"))   ;开始或需要时
……
(setvar "osmode" 0)                  ;关闭捕捉
……
(setvar "osmode" oldosm)         ;结束或出错函数中

或者:
(setvar "osmode" (+ (getvar "osmode") 16384)     ;任意位置关闭捕捉
……
(setvar "osmode" (- (getvar "osmode") 16384)      ;任意位置恢复捕捉,与上面对应
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-6-6 20:07:24 | 显示全部楼层
谢谢5楼主,我把我的程序改进了一下,把填充的部分用多段线画就没有这个问题了,
能否再请教一个问题,我有个程序第一次运行会出错,但是紧接着再运行就没事。不知道那里不对
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 6530个

财富等级: 富甲天下

发表于 2004-6-7 06:46:36 | 显示全部楼层
最初由 yjtdkj 发布
[B]能否再请教一个问题,我有个程序第一次运行会出错,但是紧接着再运行就没事。不知道那里不对 [/B]


检查一下是否有变量没有赋初始值的情况,比如字符串的“(setq aa "")”,表的“(setq aa nil)”,这种情况以前也碰到过,现在也不太说得清楚。只要来龙去脉清楚,问题总好解决。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2004-6-7 12:22:33 | 显示全部楼层
单步调试正常,我的程序是这样的:首先,把物体按一定的数量阵列,然后,删除某几个点的物体。
但是每次第一次运行就会删错地方,好像是错位了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-7 23:28:01 | 显示全部楼层
得把程序贴出来看看才知道是怎么回事。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-8 01:37:09 | 显示全部楼层
最初由 yjtdkj 发布
[B][QUOTE]最初由 zhanzujie 发布
[B]简化程序
(defun c:gq (/ pti1 pti2 pti3 pti4 pti5 pti6 pti7 pti8 pti9 pti10 pti11
pti12 pti13 ss)
(setq pti1 (getpoint "插入点:"))
         pti2 (polar pti1 ... [/B]


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

使用道具 举报

 楼主| 发表于 2004-6-8 09:59:14 | 显示全部楼层
;-------------------------------------------------------------------------------------------
(defun gq (x / pti1 pti2 pti3 pti4 pti5        pti6 pti7 pti8 pti9 pti11 pti12
           ss)
  (setq pti1 x)
  (setq pti2 (polar pti1 pi 16.0))
  (setq pti3 (polar pti1 0.0 16.0))
  (setq pti4 (polar pti1 (/ pi 2) 24.0))
  (setq pti5 (polar pti1 (* pi 1.5) 24.0))
  (setq pti6 (polar pti1 pi 8.0))
  (setq pti7 (polar pti1 (* pi 1.5) 16.0))
  (setq pti8 (polar pti1 0.0 8.0))
  (setq pti9 (polar pti1 (/ pi 2) 16.0))
  (setq pti11 (polar pti5 0.0 16.0))
  (setq pti12 (polar pti2 (/ pi 2) 24.0))
  (if (tblsearch "layer" "螺栓")
    (progn
      (command "layer" "s" "螺栓" "")
    )
    (progn
      (command "layer" "m" "螺栓" "c" "15" "" "")
    )
  )
  (command "-osnap" "off")
  (command "layer" "s" "螺栓" "")
  (command "color" "bylayer")
  (setvar "plinewid" 0.0)
  (command "pline" pti6 pti7 pti8 pti9 "c")
  (command "pline" pti7        "w" 0.0        16.0 pti1 "w" 16.0 0.0 pti9 "")
  (command "line" pti2 pti3 "")
  (command "line" pti4 pti5 "")
  (setq ss (ssget "c" pti11 pti12))
  (if (tblsearch "block" "高强螺栓")
    (progn
      (command "erase" ss "")
      (command "-insert" "高强螺栓" pti1 "" "" "")
    )
    (progn
      (command "-block" "高强螺栓" pti1 ss "")
      (command "-insert" "高强螺栓" pti1 "" "" "")
    )
  )
  (PRINC)
)
                                        ;---------------------------------------------------------------------------------------
(defun dimstyle        ()
  (setvar
    "DIMASZ"
    176.0000
  )
  (setvar "DIMATFIT" 3)
  (setvar "DIMAUNIT" 0)
  (setvar
    "DIMAZIN"
    0
  )
  (setvar "DIMBLK" "ArchTick")
  (setvar "DIMBLK1" "ArchTick")
  (setvar
    "DIMBLK2"
    "ArchTick"
  )
  (setvar "DIMCEN" 2.5000)
  (setvar "DIMCLRD" 256)
  (setvar
    "DIMCLRE"
    256
  )
  (setvar "DIMCLRT" 7)
  (setvar "DIMDEC" 0)
  (setvar
    "DIMDLE"
    150.0000
  )
  (setvar "DIMDLI" 800.0000)
  (setvar "DIMEXE" 176.0000)
  (setvar
    "DIMEXO"
    200.0000
  )
  (setvar "DIMFRAC" 0)
  (setvar "DIMGAP" 100.0000)
  (setvar
    "DIMJUST"
    0
  )
  (setvar "DIMLDRBLK" "ArchTick")
  (setvar "DIMLFAC"
          1.0000
  )
  (setvar "DIMLIM" 0)
  (setvar "DIMLUNIT" 2)
  (setvar "DIMLWD"
          -1
  )
  (setvar "DIMLWE" -2)
  (setvar "DIMRND" 0.0000)
  (setvar "DIMSAH"
          0
  )
  (setvar "DIMSCALE" 0.1500)
  (setvar "DIMSD1" 0)
  (setvar "DIMSD2"
          0
  )
  (setvar "DIMSE1" 0)
  (setvar "DIMSE2" 0)
  (setvar "DIMSOXD"
          0
  )
  (setvar "DIMTAD" 1)
  (setvar "DIMTDEC" 0)
  (setvar "DIMTFAC"
          1.0000
  )
  (setvar "DIMTIH" 0)
  (setvar "DIMTIX" 1)
  (setvar "DIMTM"
          0.0000
  )
  (setvar "DIMTMOVE" 2)
  (setvar "DIMTOFL" 1)
  (setvar "DIMTOH"
          0
  )
  (setvar "DIMTOL" 0)
  (setvar "DIMTOLJ" 0)
  (setvar "DIMTP"
          0.0000
  )
  (setvar "DIMTSZ" 0.0000)
  (setvar "DIMTVP" 0.0000)
  (setvar "DIMTXSTY"
          "DIM_FONT"
  )
  (setvar "DIMTXT" 300.0000)
  (setvar "DIMTZIN" 8)
  (setvar "DIMUPT"
          0
  )
  (setvar "DIMZIN"
          8
  )
)
                                        ;-----------------------------------------------------------------------------------------------
(defun c:bc
            (/           pt1         pt2   pt3   pt4   pt5         pt6   pt7   pt8
             pt9   pt10         pt11  pt12  pt13  pt14         pt15  pt16  pt16_1
             pt16_2         pt17  pt17_1           pt17_2      pt18  pt19
             pt20  pt21         pt22  pt23  pt24  pt25         pt27  pt29  h
             b           tw         t1    t2    T3           T4         p1    p2    p3
             p4           p5         m     m1    mte   n         kl    cl    pto2
             pto3  pto4         pto5  pto6  pto7  pto8         pto9  p5_1  n1
             x1           x2         ss    ss1   poi1  poi2         poi3  poi3  poi4
             poi5  poi6         poi7  poi8  poi9  poi10 te1   te2   te3
             te4   te5         te6   te7   te8   te1_1 te4_1 te7_1 OLDOSM
            )
  (setq pt1 (getpoint "插入点:"))
                                        ;---------------------------------------------------------------------------------------
  (if (not bns_dmt_k)
    (setq bns_dmt_k "B1")
  )
  (initget

    "B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19"
                                        ;主梁截面编号
  )
  (setq        kl (getstring (acet-str-format
                        "\n输入主梁截面B1~B19 <%1>: "
                        bns_dmt_k
                      )                        ;acet-str-format
           )
  )
  (if (or (not kl)
          (equal kl "")
      )                                        ;or
    (setq kl bns_dmt_k)                        ;setq then
    (setq bns_dmt_k kl)                        ;setq else
  )                                        ;if
                                        ;----------------------------------------------------------------------
  (cond        ((eq kl "B1")
         (setq h 600.0)                        ;梁高度
         (setq b 180.0)                        ;梁宽度
         (setq tw 10.0)                        ;梁腹板厚度
         (setq t1 14.0)                        ;梁翼缘厚度
         ()
        )
        ((eq kl "B2")
         (setq h 600.0)
         (setq b 210.0)
         (setq tw 10.0)
         (setq t1 16.0)
         ()
        )
        ((eq kl "B3")
         (setq h 450.0)
         (setq b 150.0)
         (setq tw 8.0)
         (setq t1 11.0)
         ()
        )
        ((eq kl "B4")
         (setq h 700.0)
         (setq b 210.0)
         (setq tw 12.0)
         (setq t1 16.0)
         ()
        )
        ((eq kl "B5")
         (setq h 700.0)
         (setq b 240.0)
         (setq tw 12.0)
         (setq t1 18.0)
         ()
        )
        ((eq kl "B6")
         (setq h 500.0)
         (setq b 180.0)
         (setq tw 10.0)
         (setq t1 14.0)
         ()
        )
        ((eq kl "B7")
         (setq h 370.0)
         (setq b 150.0)
         (setq tw 6.0)
         (setq t1 12.0)
         ()
        )
        ((eq kl "B8")
         (setq h 450.0)
         (setq b 150.0)
         (setq tw 8.0)
         (setq t1 9.0)
         ()
        )
        ((eq kl "B9")
         (setq h 450.0)
         (setq b 130.0)
         (setq tw 6.0)
         (setq t1 8.0)
         ()
        )
        ((eq kl "B10")
         (setq h 1000.0)
         (setq b 210.0)
         (setq tw 10.0)
         (setq t1 16.0)
         ()
        )
        ((eq kl "B11")
         (setq h 300.0)
         (setq b 130.0)
         (setq tw 5.0)
         (setq t1 8.0)
         ()
        )
        ((eq kl "B12")
         (setq h 450.0)
         (setq b 180.0)
         (setq tw 8.0)
         (setq t1 14.0)
         ()
        )
        ((eq kl "B13")
         (setq h 500.0)
         (setq b 150.0)
         (setq tw 10.0)
         (setq t1 14.0)
         ()
        )
        ((eq kl "B14")
         (setq h 550.0)
         (setq b 180.0)
         (setq tw 10.0)
         (setq t1 16.0)
         ()
        )
        ((eq kl "B15")
         (setq h 600.0)
         (setq b 180.0)
         (setq tw 10.0)
         (setq t1 12.0)
         ()
        )
        ((eq kl "B16")
         (setq h 350.0)
         (setq b 130.0)
         (setq tw 5.0)
         (setq t1 8.0)
         ()
        )
        ((eq kl "B17")
         (setq h 1000.0)
         (setq b 180.0)
         (setq tw 10.0)
         (setq t1 14.0)
         ()
        )
        ((eq kl "B18")
         (setq h 350.0)
         (setq b 150.0)
         (setq tw 5.0)
         (setq t1 8.0)
         ()
        )
        ((eq kl "B19")
         (setq h 450.0)
         (setq b 150.0)
         (setq tw 6.0)
         (setq t1 8.0)
         ()
        )
  )

  (setq m1 80.0)                        ;螺栓的列间距
                                        ;---------------------------------------------------------------------------------------
  (if (not bns_dmt_C)
    (setq bns_dmt_C "B1")
  )
  (initget

    "B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19"
                                        ;连接梁截面编号
  )
  (setq        cl (getstring (acet-str-format
                        "\n输入连接梁截面B1~B19: <%1>: "
                        bns_dmt_C
                      )                        ;acet-str-format
           )
  )
  (if (or (not cl)
          (equal cl "")
      )                                        ;or
    (setq cl bns_dmt_C)                        ;setq then
    (setq bns_dmt_C cl)                        ;setq else
  )                                        ;if
                                        ;---------------------------------------------------------------------------------------
  (cond        ((eq cl "B1")
         (setq n  4
               n1 5                        ;螺栓的行数
         )
         (setq p5 1
               p5_1 2                        ;螺栓列数
         )
         (setq p4 100.0)                ;第一行孔到上翼缘的距离
         (setq t4 22.0)                        ;螺栓型号M22
         (setq mte "23.5")                ;螺栓孔大小
         (setq m 100)                        ;螺栓孔行间距
         (setq t3 14.0)                        ;连接板厚度
         ()
        )
        ((eq cl "B2")
         (setq n  4
               n1 5
         )
         (setq p5 1
               p5_1 2
         )
         (setq p4 100.0)
         (setq t4 24.0)
         (setq mte "25.5")
         (setq m 100)
         (setq t3 16.0)
         ()
        )
        ((eq cl "B3")
         (setq n  2
               n1 3
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 125.0)
         (setq t4 20.0)
         (setq mte "21.5")
         (setq m 100)
         (setq t3 11.0)
         ()
        )
        ((eq cl "B4")
         (setq n  4
               n1 5
         )
         (setq p5 1
               p5_1 2
         )
         (setq p4 110.0)
         (setq t4 24.0)
         (setq mte "25.5")
         (setq m 120)
         (setq t3 16.0)
         ()
        )
        ((eq cl "B5")
         (setq n  5
               n1 6
         )
         (setq p5 1
               p5_1 2
         )
         (setq p4 100.0)
         (setq t4 24.0)
         (setq mte "25.5")
         (setq m 100)
         (setq t3 18.0)
         ()
        )
        ((eq cl "B6")
         (setq n  1
               n1 4
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 100.0)
         (setq t4 22.0)
         (setq mte "23.5")
         (setq m 100)
         (setq t3 14.0)
         ()
        )
        ((eq cl "B7")
         (setq n  2
               n1 3
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 100.0)
         (setq t4 16.0)
         (setq mte "17.5")
         (setq m 85)
         (setq t3 12.0)
         ()
        )
        ((eq cl "B8")
         (setq n  3
               n1 4
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 75.0)
         (setq t4 16.0)
         (setq mte "17.5")
         (setq m 100)
         (setq t3 9.0)
         ()
        )
        ((eq cl "B9")
         (setq n  2
               n1 3
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 125.0)
         (setq t4 16.0)
         (setq mte "17.5")
         (setq m 100)
         (setq t3 8.0)
         ()
        )
        ((eq cl "B10")
         (setq n  8
               n1 9
         )
         (setq p5 1
               p5_1 2
         )
         (setq p4 100.0)
         (setq t4 22.0)
         (setq mte "23.5")
         (setq m 100)
         (setq t3 16.0)
         ()
        )
        ((eq cl "B11")
         (setq n  1
               n1 2
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 100.0)
         (setq t4 16.0)
         (setq mte "17.5")
         (setq m 100)
         (setq t3 8.0)
         ()
        )
        ((eq cl "B12")
         (setq n  3
               n1 4
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 75.0)
         (setq t4 20.0)
         (setq mte "21.5")
         (setq m 100)
         (setq t3 14.0)
         ()
        )
        ((eq cl "B13")
         (setq n  3
               n1 4
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 100.0)
         (setq t4 22.0)
         (setq mte "23.5")
         (setq m 100)
         (setq t3 14.0)
         ()
        )
        ((eq cl "B14")
         (setq n  4
               n1 5
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 115.0)
         (setq t4 22.0)
         (setq mte "23.5")
         (setq m 80)
         (setq t3 16.0)
         ()
        )
        ((eq cl "B15")
         (setq n  4
               n1 5
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 120.0)
         (setq t4 22.0)
         (setq mte "23.5")
         (setq m 90)
         (setq t3 12.0)
         ()
        )
        ((eq cl "B16")
         (setq n  2
               n1 3
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 100.0)
         (setq t4 16.0)
         (setq mte "17.5")
         (setq m 75)
         (setq t3 8.0)
         ()
        )
        ((eq cl "B17")
         (setq n  8
               n1 9
         )
         (setq p5 1
               p5_1 2
         )
         (setq p4 100.0)
         (setq t4 22)
         (setq mte "23.5")
         (setq m 100)
         (setq t3 14.0)
         ()
        )
        ((eq cl "B18")
         (setq n  2
               n1 3
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 100.0)
         (setq t4 16.0)
         (setq mte "17.5")
         (setq m 75)
         (setq t3 8.0)
         ()
        )
        ((eq cl "B19")
         (setq n  3
               n1 4
         )
         (setq p5 0
               p5_1 1
         )
         (setq p4 75.0)
         (setq t4 20.0)
         (setq mte "21.5")
         (setq m 100)
         (setq t3 8.0)
         ()
        )
  )
  (setq p1 80)                                ;螺栓孔左(距梁翼缘的距离)边距
  (setq p2 50)                                ;螺栓孔右边距
  (setq p3 50)                                ;螺栓孔上、下边距

  (setq oldosm (getvar "osmode"))
  (setvar "osmode" 0)
  (setq pt2 (polar pt1 (/ pi 2.0) (- (/ h 2) t1)))
  (setq pt3 (polar pt2 pi (/ tw 2.0)))
  (setq pt4 (polar pt1 (* pi 1.5) (- (/ h 2) t1)))
  (setq pt5 (polar pt4 0.0 (/ tw 2.0)))
  (setq pt6 (polar pt1 (/ pi 2.0) (/ h 2)))
  (setq pt7 (polar pt6 pi (/ b 2)))
  (setq pt8 (polar pt2 0.0 (/ b 2)))
  (setq pt9 (polar pt1 (* pi 1.5) (/ h 2)))
  (setq pt10 (polar pt9 pi (/ b 2)))
  (setq pt11 (polar pt4 0.0 (/ b 2)))
  (setq pt12 (polar pt9 0.0 (/ b 2)))
  (setq pt13 (polar pt4 pi (/ b 2)))
  (setq pt14 (polar pt2 pi (/ b 2)))
  (setq pt15 (polar pt6 0.0 (/ b 2)))
  (setq pt16 (polar pt15 (* pi 1.5) (- p4 p3)))
  (setq pt16_1 (polar pt16 0.0 20))
  (setq pt16_2 (polar pt16 (/ pi 2.0) 20))
  (setq pt17 (polar pt12 (/ pi 2.0) (- h (+ p3 p4 (* m n)))))
  (setq pt17_1 (polar pt17 0.0 20))
  (setq pt17_2 (polar pt17 (* pi 1.5) 20))
  (setq pt18 (polar pt16 0.0 (+ p1 p2 (* m1 p5))))
  (setq pt19 (polar pt17 0.0 (+ p1 p2 (* m1 p5))))
  (setq pt21 (polar pt6 0.0 (+ (/ b 2) p1)))
  (setq pt20 (polar pt21 (* pi 1.5) p4))
  (setq pt22 (polar pt20 0.0 (* m1 p5)))
  (setq pt23 (polar pt22 (* pi 1.5) m))
  (setq pt24 (polar pt22 (* pi 1.5) (* m 2)))
  (setq pt25 (polar pt22 (* pi 1.5) (* m 3)))
  (setq pt27 (polar pt22 (* pi 1.5) (* m 5)))
  (setq pt29 (polar pt22 (* pi 1.5) (* m 7)))
  (setq pto2 (polar pt3 pi 20))
  (setq pto3 (polar pt3 (* pi 1.5) 20))
  (setq pto4 (polar pt5 (/ pi 2.0) (- h t1 t1 20)))
  (setq pto5 (polar pt2 0.0 (+ (/ tw 2) 20)))
  (setq pto6 (polar pt4 pi (+ (/ tw 2) 20)))
  (setq pto7 (polar pt3 (* pi 1.5) (- h t1 t1 20)))
  (setq pto8 (polar pt5 (/ pi 2.0) 20))
  (setq pto9 (polar pt5 0.0 20))
  (if
    (> (distance pt16 pt18)
       (+ p1 p2)
    )
     (setq x2 m1)
     (setq x2 0)
  )
  (setq x1 (- m))
  (setq        poi1 (polar pt20 (/ pi 2.0) p3)
  )
  (setq        poi2 (polar pt18 pi p2)
  )
  (setq        poi3 (polar pt6 (/ pi 2.0) 120.0)
  )
  (setq        poi4 (polar pt18 0.0 160.0)
  )
  (setq        poi6 (polar poi4 0.0 120.0)
  )
  (setq        poi5 (polar pt9 (* pi 1.5) 160.0)
  )
  (setq        poi7 (polar pt4 pi (/ tw 2))
  )
  (setq        poi8 (polar pt18 (* pi 1.5) p3)
  )
  (setq        poi9 (polar pt19 (/ pi 2.0) p3)
  )
  (setq        poi10 (polar pt10 pi 120.0)
  )
  (setq        te1 (polar poi3 0.0 (+ p1 p2 (* m1 p5) (/ b 2) 40))
  )
  (setq        te1_1 (polar te1 (/ pi 2.0) 10)
  )
  (setq        te3 (polar pt17 (/ pi 2.0) (/ p3 2))
  )
  (setq        te4 (polar poi5 0.0 (+ p1 p2 (* m1 p5) (/ b 2) 40))
  )
  (setq        te4_1 (polar te4 (/ pi 2.0) 10)
  )
  (setq        te6 (polar pt13 (/ pi 4.0) 50)
  )
  (setq        te7 (polar poi5 pi (+ p1 (/ b 2)))
  )
  (setq        te7_1 (polar te7 (/ pi 2.0) 10)
  )
  (if (tblsearch "layer" "梁")
    (progn
      (command "layer" "s" "梁" "")
    )
    (progn
      (command "layer" "m" "梁" "c" "3" "" "")
    )
  )
  (command "rectang" pt3 pt5)
  (command "rectang" pt7 pt8)
  (command "rectang" pt10 pt11)
  (command "line" pt13 pt14 "")
  (command "line" pto2 pto3 "")
  (command "line" pto4 pto5 "")
  (command "line" pto6 pto7 "")
  (command "line" pto8 pto9 "")
  (setvar "plinewid" 0.0)

  (command "pline"         pto5        pt8    pt16_2 "a"    "r"    "20"
           pt16_1 "l"         pt18        pt19   pt17_1 "a"    "r"    "20"
           pt17_2 "l"         pt11        pto9   pto8   pto4   "c"
          )
  (if (tblsearch "layer" "螺栓")
    (progn
      (command "layer" "s" "螺栓" "")
    )
    (progn
      (command "layer" "m" "螺栓" "c" "15" "" "")
    )
  )
  (command "layer" "s" "螺栓" "")
  (gq pt20)
  (if (> n 0)
    (command "-array" pt20 "" "r" n1 p5_1 x1 x2)
  );就是在下面删除选定的点时出了问题,程序运行第一次就会删错地方
  (if (eq cl "B10")
    (command "erase" pt23 pt25 pt27 pt29 "")

  )
  (if (eq cl "B1")
    (command "erase" pt23 pt24 pt25 "")

  )

  (if (eq cl "B2")
    (command "erase" pt23 pt24 pt25 "")

  )
  (if (eq cl "B17")
    (command "erase" pt23 pt25 pt27 pt29 "")

  )

  (if (tblsearch "layer" "PUB_DIM")
    (progn
      (command "layer" "s" "PUB_DIM" "")
    )
    (progn
      (command "layer" "m" "PUB_DIM" "c" "136" "" "")
    )
  )
  (if (tblsearch "style" "DIM_FONT")
    (progn
      (setvar "TEXTSTYLE" "DIM_FONT")
    )
    (progn
      (command "-style" "DIM_FONT" "romans" 0.0 0.7 0 "n" "n" "n")
    )
  )
  (dimstyle)
  (if (tblsearch "dimstyle" "dim15")
    (progn
      (command "-dimstyle" "" "dim15")
    )
    (progn
      (command "-dimstyle" "s" "dim15")
    )
  )
  (command "DIMLINEAR" pt7 pt15 poi3)
  (command "DIMLINEAR" pt15 poi1 poi3)
  (if (> x2 0)
    (command "DIMLINEAR" poi1 poi2 poi3)
  )
  (command "DIMLINEAR" poi2 pt18 "h" poi3)
  (command "DIMLINEAR" pt10 poi7 "h" poi5)
  (command "DIMLINEAR" poi7 pt5 "h" poi5)
  (command "DIMLINEAR" pt5 pt12 "h" poi5)
  (command "DIMLINEAR" pt12 pt19 "h" poi5)
  (command "DIMLINEAR" pt15 pt18 "v" poi4)
  (command "DIMLINEAR" pt18 poi8 "v" poi4)
  (setq ss (strcat (itoa m) "X" (itoa n) "=<>"))
  (command "DIMLINEAR" poi8 poi9 "v" "t" ss poi4)
  (command "DIMLINEAR" poi9 pt19 "v" poi4)
  (command "DIMLINEAR" pt19 pt12 "v" poi4)
  (command "DIMLINEAR" pt15 pt12 "v" poi6)
  (command "DIMLINEAR" pt7 pt14 "v" poi10)
  (command "DIMLINEAR" pt14 pt13 "v" poi10)
  (command "DIMLINEAR" pt13 pt10 "v" poi10)
  (command "line" pt20 te1 "")
  (command "line" te3 te4 "")
  (command "line" te6 te7 "")
  (if (tblsearch "layer" "PUB_text")
    (progn
      (command "layer" "s" "PUB_text" "")
    )
    (progn
      (command "layer" "m" "PUB_text" "c" "7" "" "")
    )
  )
  (command "layer" "s" "PUB_text" "")
  (command "text"
           te1_1
           "45"
           "0"
           (strcat "%%c"
                   mte
                   ",M"
                   (itoa (fix t4))
                   "(10.9s)"
           )
  )
  (command "text"
           te4_1
           "45"
           "0"
           (strcat "-"
                   (itoa (fix t3))
                   "X"
                   (itoa (fix (+ p1 p2 (* m p5) (- (/ b 2) (/ tw 2)))))
                   "X"
                   (itoa (fix (- h t1 t1)))
           )
  )
  (command "text"
           "j"
           "r"
           te7_1
           "45"
           "0"
           (strcat "-"
                   (itoa (fix t3))
                   "X"
                   (itoa (fix (- (/ b 2) (/ tw 2))))
                   "X"
                   (itoa (fix (- h t1 t1)))
           )
  )
  (setq
    te2        (polar
          te1
          0.0
          (* 22
             (strlen
               (strcat "%%c"
                       (itoa (fix (+ 2 t4)))
                       ",M"
                       (itoa (fix t4))
                       "(10.9s)"
               )
             )
          )
        )
  )
  (setq
    te5        (polar
          te4
          0.0
          (* 30
             (strlen
               (strcat
                 "-"
                 (itoa (fix t3))
                 "X"
                 (itoa (fix (+ p1 p2 (* m p5) (- (/ b 2) (/ tw 2)))))
                 "X"
                 (itoa (fix (- h t1 t1)))
               )
             )
          )
        )
  )
  (setq        te8 (polar te7
                   pi
                   (* 30
                      (strlen
                        (strcat        "-"
                                (itoa (fix t3))
                                "X"
                                (itoa (fix (- (/ b 2) (/ tw 2))))
                                "X"
                                (itoa (fix (- h t1 t1)))
                        )
                      )
                   )
            )
  )
  (command "layer" "s" "PUB_dim" "")
  (command "line" te1 te2 "")
  (command "line" te4 te5 "")
  (command "line" te7 te8 "")
  (setvar "osmode" oldosm)
  (PRINC)
)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-8 11:23:42 | 显示全部楼层
没法子,每次回复都版式出错:(


我这里运行好像没出问题,随便说说试试,错了不要打:)。
看了一下,应该还是ll_j说的那种问题,变量没有作初始化出了问题。

(if (not bns_dmt_C)
    (setq bns_dmt_C "B1")
  )
这一段和
(if (or
        (not cl)
        (equal cl "")
      )                                       ; or
    (setq cl bns_dmt_C)                       ; setq then
    (setq bns_dmt_C cl)                       ; setq else
  )
来看,
第一次运行时一开始bns_dmt_C和cl均未赋值,如果未初始化变量不是默认为nil的话,可能会出现你提到的问题。
还有一点,这个程序里你同样没有正确取消捕捉模式。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-8 12:23:56 | 显示全部楼层

Re: Re: [求助]:我编的LSP程序出了点问题请大家指教

最初由 eachy 发布
1 (command "pline" pti6 pti7 pti8 pti9 "c") 后面多了个 ""
2 (command "-bhatch" pti10 "") 之前要取消捕捉模式 [/B]


1. 从LISP语法讲, "c" 后面是不需要"". 但在运行中也不为错;
2.  不一定要 "取消捕捉模式"-----"-bhatch" 会自动屏蔽;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-6-8 15:34:32 | 显示全部楼层
喂:ID23937!
你代码中:
(if (not bns_dmt_k)
(setq bns_dmt_k "B1")
)
的bns_dmt_k是全局变量,第一次运行为空,后面再运行就有值了。
你的明白?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-27 05:31 , Processed in 0.217038 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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