需要一点帮助。。。。。。。
我有一个代码,我需要一些帮助。首先,我创建这个项目是为了避免在项目中使用不正确的标题栏和标准块。这将适用于所有项目,以便在整个过程中保持更大的一致性。我遇到的问题是,我必须在两个块的插入之间点击“回车”。在插入第二个块后,我得到了一个未知的命令错误,但一切都正常。
不明白我做错了什么。请看下面的代码,帮我解释一下。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;
;;Created by Karl E Sharp 7/3/2018
;;
;;Designed to create a default project specific DWG Template with all
;; project variables set. (i.e. linewght, linetypes, dimstyle, textstyle, texthieght, etc.)
;;
;;Inserts project title block and all annotation blocks to be used
;;
;;Sets SDI mode to 0
;;
;;Turns off attribute Dialog on insertion of block
;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
(defun c:NDS (/ d-path)
(setvar "dimadec" 0) ; Angular decimal places
(setvar "dimalt" 0) ; Alternate units selected
(setvar "dimaltd" 0) ; Alternate unit decimal places
(setvar "dimaltrnd" 0.0000) ; Alternate units rounding value
(setvar "dimalttd" 2) ; Alternate tolerance decimal places
(setvar "dimalttz" 0) ; Alternate tolerance zero suppression
(setvar "dimaltu" 2) ; Alternate units
(setvar "dimaltz" 0) ; Alternate unit zero suppression
(setvar "dimapost" "") ; Prefix and suffix for alternate text
(setvar "dimarcsym" 0) ; Arc length symbol
(setvar "dimasz" 0.1875) ; Arrow size
(setvar "dimatfit" 3) ; Arrow and text fit
(setvar "dimaunit" 0) ; Angular unit format
(setvar "dimazin" 0) ; Angular zero supression
(setvar "dimblk" "") ; Arrow block name
(setvar "dimblk1" "") ; First arrow block name
(setvar "dimblk2" "") ; Second arrow block name
(setvar "dimcen" 0.25) ; Center mark size
(setvar "dimclrd" 256) ; Dimension line and leader color
(setvar "dimclre" 256) ; Extension line color
(setvar "dimclrt" 2) ; Dimension text color
(setvar "dimdec" 4) ; Decimal places
(setvar "dimdle" 0) ; Dimension line extension
(setvar "dimdli" 0.0625) ; Dimension line spacing
(setvar "dimdsep" ".") ; Decimal separator
(setvar "dimexe" 0.0625) ; Extension above dimension line
(setvar "dimexo" 0.0625) ; Extension line origin offset
(setvar "dimfrac" 2) ; Fraction format
(setvar "dimfxl" 1) ; Fixed Extension Line
(setvar "dimfxlon" 0) ; Enable Fixed Extension Line
(setvar "dimgap" 0.0625) ; Gap from dimension line to text
(setvar "dimjust" 0) ; Justification of text on dimension line
(setvar "dimldrblk" "") ; Leader block name
(setvar "dimlfac" 1) ; Linear unit scale factor
(setvar "dimlim" 0) ; Generate dimension limits
(setvar "dimltex1" "bylayer") ; Linetype extension line 1
(setvar "dimltex2" "bylayer") ; Linetype extension line 2
(setvar "dimltype" "bylayer") ; Dimension linetype
(setvar "dimlunit" 4) ; Linear unit format
(setvar "dimlwd" -1) ; Dimension line and leader lineweight
(setvar "dimlwe" -1) ; Extension line lineweight
(setvar "dimrnd" 0) ; Rounding value
(setvar "dimsah" 0) ; Separate arrow blocks
(setvar "dimscale" 1) ; Overall scale factor
(setvar "ltscale" 0.5) ; Linetype scale factor
(setvar "dimsd1" 0) ; Suppress the first dimension line
(setvar "dimsd2" 0) ; Suppress the second dimension line
(setvar "dimse1" 0) ; Suppress the first extension line
(setvar "dimse2" 0) ; Suppress the second extension line
(setvar "dimsoxd" 0) ; Suppress outside dimension lines
(setvar "dimtad" 1) ; Place text above the dimension line
(setvar "dimtdec" 4) ; Tolerance decimal places
(setvar "dimtfac" 1) ; Tolerance text height scaling factor
(setvar "dimtfill" 1) ; Text background enabled
(setvar "dimtad" 1) ; Place text above the dimension line
(setvar "dimtfillclr" 0) ; Text background color
(setvar "dimtih" 0) ; Text inside extensions is horizontal
(setvar "dimtix" 0) ; Place text inside extensions
(setvar "dimtm" 0) ; Minus tolerance
(setvar "dimtmove" 0) ; Text movement
(setvar "dimtofl" 0) ; Force line inside extension lines
(setvar "dimtoh" 0) ; Text outside horizontal
(setvar "dimtol" 0) ; Tolerance dimensioning
(setvar "dimtolj" 0) ; Tolerance vertical justification
(setvar "dimtp" 0) ; Plus tolerance
(setvar "dimtsz" 0) ; Tick size
(setvar "dimtvp" 0) ; Text vertical position
(setvar "dimtxsty" "standard") ; Text style
(setvar "dimtxt" 0.09375) ; Text height
(setvar "dimtzin" 0) ; Tolerance zero suppression
(setvar "dimupt" 0) ; User positioned text
(setvar "dimzin" 3) ; Zero suppression
(command "dimstyle" "save" "standard" "y")
(command "style" "standard" "romans" 0.09375 1 0 "no" "no" "no")
(command "linetype" "load" "center2" "" "")
(command "linetype" "load" "hidden2" "" "")
(command "linetype" "load" "phantom2" "" "")
(command "layer" "m" "DIM" "c" "1" "DIM" "")
(command "layer" "m" "TEXT" "c" "2" "TEXT" "lt" "continuous" "TEXT" "")
(command "layer" "m" "CENTER" "c" "1" "CENTER" "lt" "center2" "CENTER" "")
(command "layer" "m" "HIDDEN" "c" "2" "HIDDEN" "lt" "hidden2" "HIDDEN" "")
(command "layer" "m" "MATCHLINE" "c" "3" "MATCHLINE" "lt" "phantom2" "MATCHLINE" "")
(command "layer" "m" "EQUIP" "c" "3" "EQUIP" "lt" "continuous" "EQUIP" "")
(command "layer" "m" "LABEL_PLATE" "c" "3" "LABEL_PLATE" "lt" "continuous" "LABEL_PLATE" "")
(command "layer" "m" "BACKGROUND" "c" "9" "BACKGROUND" "lt" "continuous" "BACKGROUND" "")
(command "layer" "m" "SYMBOLS" "c" "3" "SYMBOLS" "lt" "continuous" "SYMBOLS" "")
(command "layer" "m" "VIEWPORT" "c" "7" "VIEWPORT" "plot" "n" "VIEWPORT" "")
(command "layer" "s" "0" "")
(command "LUNITS" "4")
(command "LUPREC" "5")
(setvar "SDI" 0) ; Turns SDI mode off
(setvar "attdia" 0) ; Turns the attribute edit dialog box off for block insertion
(setvar "attreq" 1)
(initdia 0)
(setq filename "S:\\folder-1\\subfolder-1\\filename")
(if
(= 0 (getvar "SDI"))
(command "-insert" "S:\\folder-1\\subfolder-1\\filename" '(0. 0. 0.) "" "" "")) ; Inserts Client Border
(while (= (logand (getvar "cmdactive")1)1)
(command ""))
(initdia)
(princ)
(setq filename "S:\\folder-2\\subfolder-2\\filename")
(if
(= 0 (getvar "SDI"))
(command "-insert" "*S:\\folder-2\\subfolder-2\\filename" '(36. 0. 0.) "" "" )) ; Inserts Company Border with standard annotation blocks
(while (= (logand (getvar "cmdactive")1)1)
(command ""))
(initdia)
(princ)
)
只是@第一眼,还没有测试您的代码,但您使用while cmdactive命令pause。。。 对此完全陌生。我该怎么办?我试图删除命令暂停,但它冻结了。。。。。。哦,这让我的大脑受伤了:/
嗯,我实际上是在给我的大脑加一点防冻剂,hik;-)
但是可能是(命令“”)而不是(命令暂停)?
此外(同样没有测试),仅从内存中(慢慢变得模糊),当您插入带有前缀*的块时,您是否仍有相同数量的提示?如果不尝试,我不能完全确定,但我模糊地记得标准提示将要求x和y分别使用比例,而另一个只要求两者使用一个比例因子。 谢谢这解决了插入之间的问题。。。。。不确定插入时提示“*”的次数。。。。。。我要检查一下。。。。。 vundaba!!!!感谢RLX的帮助。。。。。。我在第二次插入时引用了一对多的话。。。。我已经编辑了上面的代码和更正。试着更好地处理这一切,这样我才能真正地说,我学到了一些新的东西,并在这个过程中帮助了一些地方,希望能让我的生活更轻松。 出于好奇,有没有办法将其浓缩到更少的编码?
我相信你可以使用mapcar等压缩大量代码,如果不是所有的话,大多数命令函数都可以用vla函数代替。但这将节省你几微秒,见鬼,也许整整一秒。。。了不起的事如果可行,就可行。对我来说现在是凌晨1点,所以我不会再为wile做任何编码了 关于唯一的保存是在你的制作层可以做的,比如说读文件,但你有这么少是值得的。还有其他方法也可以制作一个列表((layname1 col LT)(layname2 col LT))等等,读取列表并制作,第三种方法是使用make layer defun(laych“Background”9“Continuous),在我的示例中,这是一个库函数,用于检查层是否存在,忽略其他生成。 代码中的红色项从不使用。我在命令插入调用中替换了变量“filename”。如果要在命令insert调用中使用硬编码的文件名字符串,则可以删除两条红线代码。如果没有,那么你可以把它放在一个while循环中
2
页:
[1]
2