FastFiber

Selecteren Hatch (opgelost)

Gestart door DavidDS, do 28 11 2013, 12:12:13

Vorige topic - Volgende topic

DavidDS

Besten,

Onderstaande lisp werkt snel als ik dezelfde arcering moet uitvoeren, het nadeel is dat ik telkens een polyline moet aanklikken. Wat moet er veranderen om mijn selectie met een "cross over" (selectie kader) te doen.

grtz



(defun c:muren ()
     (setq a (entsel "Select objects"))
          (command "-hatch"
      "p"                  ;Properties                ;
      "ANSI31"               ;Enter a pattern name            ;
      "2.0000"               ;Specify a scale for the pattern      ;
      "0.00"                  ;Specify an angle for the pattern      ;
      "LA"                  ;Properties               ;
      "solid"                                 ;Specify layer               ;
      "AN"                  ;Properties               ;
      "N"                  ;Create annotative hatch         ;
      "s" a
      ""
      ""
     )                      ;_ end of command            ;
)                         ;_ end of defun               ;

HofCAD

#1
Beste DavidDS,

Bedoel je onderstaand?

(defun c:muren (/ a)
  (setq a (ssget))
  (command "_.-HATCH"      "_P" ;Properties                           ;
   "ANSI31" ;Enter a pattern name                 ;
   "2.0000" ;Specify a scale for the pattern      ;
   "0.00" ;Specify an angle for the pattern     ;
   "_LA" ;Properties                           ;
   "solid" ;Specify layer                        ;
   "_AN" ;Properties                           ;
   "_N" ;Create annotative hatch              ;
   "_S"     a      ""       ""
  )                             ;_ end of command                     ;
)


Met vriendelijke groet, HofCAD CSI.
ACADcadabra

DavidDS

Beste Hofcad,

Dank u voor de aanpassingen. Er zat nog een kleine hapering in maar dit heb ik zelf kunnen oplossen.
Zie bijlage.
Wat wil command: nil zeggen?
Nu heb ik gezien wanneer ik dan het gewone hatch commando terug gebruik onthoud ie de instellingen.
Kan ik dit afzetten?

grtz


HofCAD

#3
Citaat van: DavidDS op do 28 11 2013, 17:26:46
Beste Hofcad,

Dank u voor de aanpassingen. Er zat nog een kleine hapering in maar dit heb ik zelf kunnen oplossen.
Zie bijlage.
Wat wil command: nil zeggen?
Nu heb ik gezien wanneer ik dan het gewone hatch commando terug gebruik onthoud ie de instellingen.
Kan ik dit afzetten?

grtz
Beste DavidDS,

Ik begrijp niet waarin de hapering zat, want volgens mij heb je alleen de
laagnaam veranderd van "solid" naar "-Binnenwand-dragend-solid". :oops: :oops: :oops: :oops:

Een AutoLISP variabele die niet een waarde is toegewezen wordt gezegd dat deze nil is.
(setq x 1) Zet x op 1 en prompt 1.
(setq y (setq x 2)) Zet eerst x op 1 en zet daarna y op 1 en prompt 1.
(setq Y (setq x nil)) De variabelen x en y worden vernietigd en prompt nil.

Je kan de instellingen van een eerdere arcering bewaren, en na de hatch in
de functie mh terugzetten.
Als voorbeeld:
(defun c:mh (/ a ~CMD ~HA ~HAS ~HAN ~HN ~HS ~HL)
  ;(setq ~CMD (getvar "CMDECHO"))
  ;(setvar "CMDECHO" 0)
  (setq ~HA (getvar "HPANG"))
  (setq ~HAS (getvar "HPASSOC"))
  (setq ~HAN (getvar "HPANNOTATIVE"))
  (setq ~HN (getvar "HPNAME"))
  (setq ~HS (getvar "HPSCALE"))
  (setq ~HL (getvar "HPLAYER"))
  (setq a (ssget))
  (command "_.-HATCH" "_P" ;Properties                      ;
   "ANSI31" ;Enter a pattern name            ;
   "2.0000" ;Specify a scale for the pattern ;
   "0.00" ;Specify an angle for the pattern;
   "_LA" ;Properties                      ;
   "-Binnenwand-dragend-solid" ;Specify layer                   ;
   "_AN" ;Properties                      ;
   "_N" ;Create annotative hatch         ;
   "_S" a        ""      ""
  ) ;_ end of command                ;
  (setvar "HPANG" ~HA)
  (setvar "HPASSOC" ~HAS)
  (setvar "HPANNOTATIVE" ~HAN)
  (setvar "HPNAME" ~HN)
  (setvar "HPSCALE" ~HS)
  (setvar "HPLAYER" ~HL)
  ;(setvar "CMDECHO" ~CMD)
  (princ)
)


Met vriendelijke groet, HofCAD CSI.

PS Eigenlijk moeten de variabelen bij het afbreken van de functie mh door
een *error* functie terug gezet worden.
ACADcadabra

DavidDS

Bij de acad versie 2013 stopte ie bij de "_LA". Heb gewoon "LA" gezet en was opgelost.
Het is niet mijn bedoeling om commentaar te geven want ik ken er niet veel van.

Ik zal straks deze proberen.

Mercie

HofCAD

Citaat van: DavidDS op do 28 11 2013, 18:37:02
Bij de acad versie 2013 stopte ie bij de "_LA". Heb gewoon "LA" gezet en was opgelost.
Het is niet mijn bedoeling om commentaar te geven want ik ken er niet veel van.

Ik zal straks deze proberen.

Mercie
Beste DavidDS,

Mijn versie is getest op AutoCAD 2012!
Ik ga het op AutoCAD 2013 en 2014 uitproberen,
want van _LA zou zeer raar zijn.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

HofCAD

#6
Beste DavidDS,

Ik heb _LA getest in AutoCAD 2013 en 2014, en dit geeft bij mij
geen problemen.
Waarschijnlijk heb je -LA gebruikt in plaats van _LA!

Met vriendelijke groet, HofCAD CSI.

PS In de bijlage zit de Lisp met de error functie.
ACADcadabra

DavidDS

Geachte,

Dank u voor de oplossing, het werkt perfect. Ik zal idd iets verkeerd getypt hebben. Maar waarom lukte het dan wel zonder de "_". Is dit eigenlijk een verschil?

grtz
David

HofCAD

#8
Beste DavidDS,

_ De underscore is een AutoCAD-Conventie die de opdracht en
de opties internationaliseert.

Een onderstrepingsteken _(underscore)
Dit roept de Engelse versie van het commando aan.
Bijvoorbeeld, via _LINE kan de opdracht worden gegeven aan alle gelokaliseerde
(Duitse, Spaanse of Japanse versies) en Engelse releases van AutoCAD.

Een punt.(period)
Het oorspronkelijke commando wordt aangeroepen wanneer een commando werd geherdefinieerd.
Bijvoorbeeld,  als een gebruiker het LINE commando heeft geherdefinieerd.
(command "UNDEFINE" "LINE")
(defun c:LINE() (command "CIRCLE"))

In een dergelijk geval, kan men via _.LINE het oorspronkelijke LINE commando oproepen.

Een afbreekstreepje-(hyphen)
Dit roept de commandoregel versie van het commando aan (indien beschikbaar).
Bijvoorbeeld, _.-LAYER roept de commandoregel versie van het oorspronkelijke
commando LAYER in alle AutoCAD versies, onafhankelijk van de lokalisatie.

Met vriendelijke groet, HofCAD CSI.
ACADcadabra

DavidDS

Beste HofCAD,

Bedankt voor de uitleg.


Ps: de hatch lisp werkt snel en perfect. Thnx

mvg
david

FastFiber