明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 半听可乐

有偿调试程序,运行出错(附件里很多源码哦)

  [复制链接]
 楼主| 发表于 2012-6-27 20:42:34 | 显示全部楼层
xyz2009xyz 发表于 2012-6-27 19:26
院长的程序,加上下面的这段第一个可用
;;;通用子程序 ************************************************ ...

我刚试了还是不行啊,要不你把合并好的源码贴上来我试试
回复

使用道具 举报

 楼主| 发表于 2012-6-27 20:44:57 | 显示全部楼层
大家也别为难我这个lsp无知分子了,检查程序什么的技能我现在还没掌握,大家就把回炉重造后的源码贴上来吧,拜谢了!
回复

使用道具 举报

发表于 2012-6-28 08:26:44 | 显示全部楼层
还是搞不懂
回复

使用道具 举报

发表于 2012-6-28 08:35:56 | 显示全部楼层
这次试试行不

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2012-6-28 09:20:00 | 显示全部楼层
smartstar 发表于 2012-6-28 08:35
这次试试行不

哈哈,第一个能用了,美中不足的是刷线宽那个的“1选项”即输入线宽数值不管用,如你能进一步完善我给你追加一币,完善内容如下(在CAD2004中):
1.刷线宽的“1选项”能用;
2.我希望程序是每个独立的,程序下方“;;;;;加上以下函数;;;;;”的归属问题让我这个菜鸟看不懂,我希望就是最终有两个独立程序,形成下面的格式:
;;-----------------------------------------------------------------------------
;;;程序A
;;-----------------------------------------------------------------------------
;;-----------------------------------------------------------------------------
;;;程序B
;;-----------------------------------------------------------------------------
回复

使用道具 举报

 楼主| 发表于 2012-6-28 13:02:24 | 显示全部楼层
smartstar 发表于 2012-6-28 12:06
分开了试试
cad2008 ok

先给个币以示感谢,不过2.lsp中输入命令后选项1还是不行,我在CAD2004和2010中试了都不行,能不能好人做到底啊?

需最终完善:输入数值改线宽
回复

使用道具 举报

发表于 2012-6-28 13:12:46 | 显示全部楼层
线宽用这个试试吧
(DEFUN C:111        (/ sh s ss ww ssn)
  (princ "\n程序功能:支持*LINE,ARC,CIRCLE,ELLIPSE加粗")
  (setq sh (getvar "peditaccept"))
  (setvar "peditaccept" 0)
  (setvar "cmdecho" 0)
  (if (= jcxw_0 Nil)
    (setq jcxw_0 1)
  )
  (setq ww (getdist (strcat "\n 请输入线宽 <" (rtos jcxw_0 2) ">: ")))
  (if (= ww nil)
    (setq ww jcxw_0)
  )
  (setq jcxw_0 ww)
  (setq        ss (ssget '((-4 . "<or")
                    (0 . "LINE")
                    (0 . "CIRCLE")
                    (0 . "ARC")
                    (0 . "POLYLINE")
                    (0 . "LWPOLYLINE")
                    (-4 . "or>")
                   )
           )
  )
  (setq s 0)
  (command "undo" "be")
  (repeat (if ss
            (sslength ss)
            (progn (princ "\n 未选择对象。") 0)
          )
    (setq ssn        (ssname ss s)
          entyp        (cdr (assoc 0 (entget ssn)))
    )
    (cond ((= entyp "CIRCLE")
           (progn
             (setq rr  (cdr (assoc 40 (entget ssn)))
                   cen (cdr (assoc 10 (entget ssn)))
             )
             (command "donut"
                      (* 2 (- rr (/ ww 2)))
                      (* 2 (+ rr (/ ww 2)))
                      cen
                      ""
             )
             (command "erase" ssn "")
           )
          )
          ((= entyp "LINE") (command "pedit" ssn "y" "w" ww ""))
          ((= entyp "ARC") (command "pedit" ssn "y" "w" ww ""))
          ((= entyp "LWPOLYLINE") (command "pedit" ssn "w" ww ""))
          ((= entyp "POLYLINE") (command "pedit" ssn "w" ww ""))
    )
    (setq s (1+ s))
  )
  (command "undo" "e")
  (setvar "peditaccept" sh)
  (princ)
)
回复

使用道具 举报

 楼主| 发表于 2012-6-28 13:50:19 | 显示全部楼层
smartstar 发表于 2012-6-28 13:12
线宽用这个试试吧
(DEFUN C:111        (/ sh s ss ww ssn)
  (princ "\n程序功能:支持*LINE,ARC,CIRCLE,ELLIPS ...

其实关于直线加粗的程序我两个都有(输入数值型、匹配宽度型),只是发现这个程序把两个集成到一起感觉比较方便,我感觉写带两个选择参数的函数应该不难,输入选择参数1或2之后指针指向两个独立的程序应该就ok了,我的问题就在于还没正式学习lsp语言,跟大家交流完全是靠大学学那点薄弱的C语言,我想有些东西是相通的吧
回复

使用道具 举报

发表于 2012-6-29 17:11:20 | 显示全部楼层
本帖最后由 VBALISPER 于 2012-6-29 17:17 编辑

你说的方块剪切,就用CAD自带的ET工具的extrim就OK了,效果最好.不过不好拆分成你要的一个程序,只能打包安装.但是其它很多功能也不错.所以我一直用它.
改线宽,就用恐龙工具箱里的一个改吧.呵呵.这个可以只提取你要的那一小段程序
回复

使用道具 举报

 楼主| 发表于 2012-6-29 17:33:47 | 显示全部楼层
VBALISPER 发表于 2012-6-29 17:11
你说的方块剪切,就用CAD自带的ET工具的extrim就OK了,效果最好.不过不好拆分成你要的一个程序,只能打包安装. ...

ET工具?CAD自带?怎么用呢
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-8 07:04 , Processed in 0.164570 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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