找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1026|回复: 3

[求助] [求助]:已解密chscl.lsp文件(天正3,出图比例命令),但无法运行,请各位指导

  [复制链接]
发表于 2006-10-27 15:32:20 | 显示全部楼层 |阅读模式

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

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

×
(defun c:chscl(/ chscl_a chscl_b mm dsto dsid dsid1 dsst dssw dsgw dsel dswd dstd dstlm dstmd dsaw dswl axla dmla txtla wdla wlla gdla dscl dscl0 scl nscl n i bl ss ss1 sx0 sx1 sx2 sx3 sx4 sx5 sx6 sx7 sx8 sx9 e na la dmna e70 p0 p1 p2 p3 p13 p14 q1 q2 d h r x x1 a a1 a2 vp ll lte llw latf tf tfz tfmp tfne)(defun chscl_a(d)(if(/= x d)(command".scale"e""p0(/ d x))))(defun chscl_b()(setq ss1(read(strcat"sx"(itoa i))))(if(eval ss1)(ssadd e(eval ss1))(set ss1(ssadd e))))(if(and(setq la(parea"公共窗口")tf(tblsearch"layer"la))(setq tf(<(cdr(assoc 62 tf))0)))(command".layer""on"la""))(cond((setq tfmp(= 1(getvar"tilemode"))))((/= 1(setq vp(getvar"cvport"))))(T(setq e(interst"\n请点取要改变比例的窗口 <退出>: "))(if(and e(atop)(="VIEWPORT"(gcolor 0)))(progn(command".mspace")(setvar"cvport"(gcolor 69)))(setq tfz T))))(cond(tfz)((and(progn(setq dscl0(sldna"normal"))(initget 6)(setq bl(getint(strcat"\n请输入出图比例 <1:"(rtos(* 100 dscl0)2 0)">  1:"))mm 0.1 dscl(if bl(/ bl 100.)dscl0)tfne(/= dscl dscl0)))tfmp)(command".ltscale"(* dscl 1000.)".expert"5".dim""res""normal""dimscale"dscl"sav""normal""exit"".expert"0))(tfmp)(T(if e(setq e(car e))(setq ss(ssget"X"(list'(0 . "VIEWPORT")(CONS 69 VP)))e(ssname ss 0)))(atop e)(setq p0(gcolor 10)d(/(last p0)100)h(* dscl0(gcolor 41)))(command".pspace")(if tfne(progn(command".scale"e""p0(/ dscl0 dscl))(setq p1(blmerge"\n再点取要移到的位置 <不移动>: "(ssadd e)p0)p0(if p1(mapcar'- p1 p0)'(0 0))))(setq p0'(0 0)))(if(not(equal(setq p0(list(car p0)(cadr p0)(* 100(- dscl d))))'(0 0 0)mm))(command".move"e""p0""))(command".mspace")(if(not(equal h(getvar"viewsize")mm))(command".zoom""c"""h))))(if tf(command"expert"1".layer""off"la"""expert"0))(if(and(not tfz)(entlast)(princ"\n请选取要改变比例的图元(ALL-全选) <不选取>: ")(setq ss(ssget)))(progn(pouts"0")(if(setq ss1(ssget"X"'((0 . "TEXT"))))(progn(setq n(sslength ss1))(while(and(setq n(1- n)e(ssname ss1 n))(not(ssmemb e ss))))(if(> n 0)(progn(setq n 1)(princ"\n请选取文字整体变比例窗口:")(while(and(setq p1(getpoint(strcat"\n第 "(itoa n)" 个窗口的第一点 <结束取窗口>: ")))(setq p2(getcorner p1(strcat"\n第 "(itoa n)" 个窗口的第二点 <结束取窗口>: "))))(setq n(1+ n)p1(list(car p1)(cadr p1))llw(cons(cons(mapcar'min p1 p2)(mapcar'max p1 p2))llw)))))))(sndtin)(setq dscl(sldna"dimn"))(command"exit")(if(not _cfgdata)(progn(_@ld"loadcfg")(loadcfg)))(setq mm 90. bl(if(= 1 dscl)""(rtos(* 100 dscl)2 0))nscl 0 n 0 dsto 800. dsid 1000. dsid1 1400. dsst 500. dssw(* dscl dsst 0.1)dsgw 80. dsel 300. dsaw 400. dswd(* 100 dscl(nth 7 _cfgdata))dswl(* 100 dscl(nth 5 _cfgdata))dstd 0. dstlm 2000. dstmd 700. axla(parea"*轴标")dmla(parea"公共标注")txtla(parea"公共文字")wdla(parea"门窗")wlla(parea"*墙线")gdla(parea"地面")tfz(ptoa))(setvar"highlight"0)(transws ss 0)(while(setq e(slb_slb 0))(setq na(gcolor 0)la(gcolor 8))(cond((="DIMENSION"na)(setq dmna(gcolor 3)dscl0(atoi(substr dmna 5))dscl0(if(= 0 dscl0)1.(* 1e-2 dscl0)))(if(/= dscl dscl0)(progn(setq scl(/ dscl dscl0)nscl(+ scl nscl)n(1+ n)ll(list 3(strcat(substr dmna 1 4)bl))p1(gcolor 10)p13(gcolor 13)p14(gcolor 14)e70(gcolor 70)latf(/= 5(logand 5 e70))x(distance p1 p14)d(if(wcmatch la axla)0(- dstd)))(if(and latf(or(= d 0)(> x dstd)))(progn(setq x1(/(+ d x)dscl0)d(cond((= d 0)d)((> x1 dstlm)(-(* dscl0 dstmd)x))((< x1(- dstlm))(-(+(* dscl0 dstmd)x)))(d))x(*(- 1 scl)(+ d x))a(angle p1 p14)ll(cons 10(cons(polar p1 a x)ll)))(if(> e70 100)(setq p3(gcolor 11)a1(if(= 0 e70)(gcolor 50)(angle p14 p13))p2(p_l p13 p14)a2(+ a1 _pi2)p2(inters p1(polar p1 a1 1e4)p2(polar p2 a2 1e4)nil)tf(and(>=(sort p3 p1(polar p1 a2 1e4))0)(<=(sort p3 p13(polar p13 a2 1e4))0))x1(-(distance p2 p3)(if tf 0(distance p1 p2)))a1(angle p3 p2)x1(*(- 1 scl)x1)ll(cons 11(cons(polar(polar p3 a1 x1)a x)ll))))))(apply'chslb ll))))((= wdla la)(setq p0(gcolor 10))(xdout)(if(="ATTRIB"(gcolor 0))(progn(setq x(gcolor 40))(if(/= x dswd)(progn(setq p1(gcolor 11))(chslb 11(polar p1(angle p0 p1)(- dswd x))40 dswd)(entmod(list(cons -1 e))))))))((="TEXT"na)(setq p0(gcolor 10))(if(= dmla la)(progn(setq x(gcolor 40)h(* dscl dsel)d(* 1.1 x))(if(/= x h)(progn(command".scale"e)(if(and(setq e(entnext e))(atop e)(="LINE"(gcolor 0))(= dmla(gcolor 8)))(progn(setq p0(gcolor 10)p1(gcolor 11))(command e)(while(and(setq e(entnext e))(atop e)(="LINE"(gcolor 0))(= dmla(gcolor 8))(equal p1(gcolor 10)d))(command e)(setq p1(gcolor 11)))))(command""p0(/ h x)))))(progn(if llw(progn(setq i 0)(while(and(setq ll(nth i llw))(setq p1(car ll)p2(cdr ll))(not(apply'and(mapcar'< p1 p0 p2))))(setq i(1+ i))))(setq ll nil))(if ll(chscl_b)(setq lte(cons e lte))))))((="LINE"na)(if(and(= txtla la)llw)(progn(setq q1(gcolor 10)q2(gcolor 11)i 0)(while(and(setq ll(nth i llw))(setq p1(car ll)p2(cdr ll))(not(and(apply'and(mapcar'< p1 q1 p2))(apply'and(mapcar'< p1 q2 p2)))))(setq i(1+ i)))(if ll(chscl_b)))))((wcmatch na"*POLYLINE")(if(setq d(cond((wcmatch la wlla)dswl)((=(gcolor 40)0)nil)((= la dmla)dssw)((= la gdla)(* dscl dsgw))))(command".pedit"e"w"d"")))((="INSERT"na)(setq na(gcolor 2)p0(gcolor 10)x(abs(gcolor 41)))(cond((wcmatch na"_AXISO*")(setq d(* dscl dsto))(if(/= x d)(progn(setq scl(/ d x)nscl(+ scl nscl)n(1+ n)r(/ x 2)ss1(takeout p0(+ r mm)axla 1))(command".scale"e""p0 scl)(setq x(/(- x d)2))(if ss1(progn(setq a nil)(while(and(not a)(slb_slb 1))(if(and(="LINE"(gcolor 0))(> mm(abs(sort p0(setq p1(gcolor 10)p2(gcolor 11))p1))))(cond((equal r(distance p0 p1)mm)(setq a(angle p1 p2)d(*(distance p1 p2)(- 1 scl)))(chslb 10(polar p1 a d)))((equal r(distance p0 p2)mm)(setq a(angle p2 p1)d(*(distance p1 p2)(- 1 scl)))(chslb 11(polar p2 a d))))))(if a(command".move"e""p0(polar p0 a(+ x d)))))))))((="_AXIST"na)(chscl_a(* dscl dsto)))((="_INDEX"na)(chscl_a(* dscl dsid)))((wcmatch na"_INDEX?")(chscl_a(* dscl dsid1)))((="_SECTION"na)(chscl_a(* dscl dsst)))((="_ARROW"na)(chscl_a(* dscl dsaw)))((="_DCHZH"na)(chscl_a dscl))((or(wcmatch na"_DIMZB*")(="_NORTH"na))(chscl_a dscl))))))(if(not(and(> n 0)(/= 1(setq scl(/ nscl n)))))(setq scl(/ dscl dscl0)))(foreach e lte(atop e)(chslb 40(* scl(gcolor 40))))(setq i 0)(foreach ll llw(if(setq ss(eval(read(strcat"sx"(itoa i)))))(progn(setq p1(car ll)p2(cdr ll)i(1+ i))(command".scale"ss""(p_l p1 p2)scl))))(if tfz(command".zoom""p"))(slb_sld)(mkstr2)))(princ))
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-10-27 19:38:18 | 显示全部楼层
天正三的,用UNLISP.EXE解密就可以得到源程序。这东东网上应该可以搜到。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-30 08:50:15 | 显示全部楼层
谢谢二楼帮助,已经破解,得到如下程序,但是加载后,运行chscl提示错误。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 58个

财富等级: 招财进宝

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-18 04:39 , Processed in 0.398451 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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