明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 978|回复: 1

[提问] 求大侠帮忙改下代码,

[复制链接]
发表于 2014-2-11 10:59:59 | 显示全部楼层 |阅读模式
我是个菜鸟,代码是拼凑起来的,目的是通过选择多条直线,单线分成双线,然后在端点处(双线中的一条端点即可)自动画个圈,现在圈画不出来,求各位大神帮看看是哪里出了问题

(setq kxmian 30 mkxmian 35 ztxmian 30 csxmian 41.5 msxmian 67 ktxingshi 2 dajie 11 dajief2 5.5 blfx 7)
(defun c:zt();中梃
(progn
(vl-load-com)
(setvar "cmdecho" 0) (setvar "osmode" 0)
(setq spst'())
(setq k 0 a (/ ztxmian 2)) (setq aa (ssget ) f (sslength aa));偏移值
    (while (< k f)
        (setq ent1 (ssname aa k) VL1 (vlax-ename->vla-object ent1))
        (setq ptst (vlax-get VL1 'startpoint) pten (vlax-get VL1 'endpoint))       ;求端点
        (setq X1 (car ptst) X2 (car pten))
        (if (= X1 X2)
               (progn
                 (princ "竖向")
                  (setq spst (cons ptst spst));;;;;;;;;;;;;;;;;;;;;;;;先测试这个就行
                  (setq spen (cons pten spen))
                )
               (progn
                 (princ "横向")
                  (setq hpst(cons (list(+(car ptst) 100 )(+(cadr ptst) 100)) hpst))
                  (setq hpen(cons (list(-(car ptst) 100 )(-(cadr ptst) 100)) hpen))
               )
        )

        (setq ptst (list (car ptst) (nth 1 ptst))) (command "OFFSET" a ent1 ptst "" )
        (setq bb (entlast)) (command "MIRROR" bb "" ptst pten "n" )
        (command"erase" ent1 "" )  ;删除源直线,要保留取直线请消此行函数
        (setq k (1+ k))
    ))

  (setq spst (reverse spst))

  (repeat (length spst)   
    (setq lsd(nth i spst))

    (command ".CIRCLE" lsd 80)
    (princ "测试")
    (setq i(1+ i))
  )

  (setvar "osmode" 16383)  (princ)
)

发表于 2014-2-12 09:17:14 | 显示全部楼层
i变量都没有初始化赋值,i没有值,当然也就画不出来!
在(setq spst (reverse spst))后面加上一句(setq i 0)试试。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-25 16:27 , Processed in 0.162701 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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